<?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>227250</bug_id>
          
          <creation_ts>2021-06-22 03:30:55 -0700</creation_ts>
          <short_desc>Not all uses of AudioToolbox framework use soft linking</short_desc>
          <delta_ts>2021-06-28 05:29:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227381</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=227435</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>227208</dependson>
    
    <dependson>227434</dependson>
          <blocked>227110</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jean-Yves Avenard [:jya]">jean-yves.avenard</reporter>
          <assigned_to name="Jean-Yves Avenard [:jya]">jean-yves.avenard</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1771635</commentid>
    <comment_count>0</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-22 03:30:55 -0700</bug_when>
    <thetext>Noticed while working on bug 227205.

On iOS for some use of the AudioToolbox, soft-linking is used but not others.
Additionally, there are multiple definition of the macro to define some methods like AudioConverterNew where the macro to link it is used unnecessarily 4 times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771636</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-22 03:31:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/79606090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771643</commentid>
    <comment_count>2</comment_count>
      <attachid>431956</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-22 04:14:25 -0700</bug_when>
    <thetext>Created attachment 431956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771649</commentid>
    <comment_count>3</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-22 05:16:04 -0700</bug_when>
    <thetext>Depends on bug 227208 to build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771697</commentid>
    <comment_count>4</comment_count>
      <attachid>431956</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-06-22 10:01:39 -0700</bug_when>
    <thetext>Comment on attachment 431956
Patch

r=me once the bots are happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771931</commentid>
    <comment_count>5</comment_count>
      <attachid>432043</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-23 08:22:39 -0700</bug_when>
    <thetext>Created attachment 432043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771939</commentid>
    <comment_count>6</comment_count>
      <attachid>432047</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-23 08:29:46 -0700</bug_when>
    <thetext>Created attachment 432047
Patch

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772102</commentid>
    <comment_count>7</comment_count>
      <attachid>432102</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-23 16:13:10 -0700</bug_when>
    <thetext>Created attachment 432102
Patch

fix compilation on iOS/tvOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772115</commentid>
    <comment_count>8</comment_count>
      <attachid>432108</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-23 16:42:08 -0700</bug_when>
    <thetext>Created attachment 432108
Patch

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772127</commentid>
    <comment_count>9</comment_count>
      <attachid>432116</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-23 17:11:05 -0700</bug_when>
    <thetext>Created attachment 432116
Patch

Fix iOS compilation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772131</commentid>
    <comment_count>10</comment_count>
      <attachid>432119</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-23 17:27:05 -0700</bug_when>
    <thetext>Created attachment 432119
Patch

Fix tvOS compilation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772136</commentid>
    <comment_count>11</comment_count>
      <attachid>432119</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-06-23 17:39:09 -0700</bug_when>
    <thetext>Comment on attachment 432119
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:39
&gt; +// WTF_DECLARE_CF_TYPE_TRAIT(CMSampleBuffer);

This should be removed.

&gt; Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.mm:46
&gt; +// WTF_DECLARE_CF_TYPE_TRAIT(CMSampleBuffer);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772141</commentid>
    <comment_count>12</comment_count>
      <attachid>432121</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-23 18:06:42 -0700</bug_when>
    <thetext>Created attachment 432121
Patch

Apply comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772145</commentid>
    <comment_count>13</comment_count>
      <attachid>432122</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-23 18:29:11 -0700</bug_when>
    <thetext>Created attachment 432122
Patch

fix build #459</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772161</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-23 19:20:51 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WebKit/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772162</commentid>
    <comment_count>15</comment_count>
      <attachid>432127</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-23 19:25:48 -0700</bug_when>
    <thetext>Created attachment 432127
Patch

Fix changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772174</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-23 21:13:14 -0700</bug_when>
    <thetext>Committed r279208 (239094@main): &lt;https://commits.webkit.org/239094@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432127.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772723</commentid>
    <comment_count>17</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-06-25 10:18:45 -0700</bug_when>
    <thetext>I reverted this in https://commits.webkit.org/239167@main because it broke the Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772970</commentid>
    <comment_count>18</comment_count>
      <attachid>432363</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-27 19:17:54 -0700</bug_when>
    <thetext>Created attachment 432363
Patch

Re-ordered some definitions as they didn&apos;t exist on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772971</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-27 20:30:24 -0700</bug_when>
    <thetext>Committed r279322 (239198@main): &lt;https://commits.webkit.org/239198@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432363.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772973</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-06-27 22:04:40 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 227434</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772977</commentid>
    <comment_count>21</comment_count>
      <attachid>432365</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-27 22:29:27 -0700</bug_when>
    <thetext>Created attachment 432365
Patch

Turned out, those non-existing symbols are in use on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772983</commentid>
    <comment_count>22</comment_count>
      <attachid>432367</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-28 00:01:04 -0700</bug_when>
    <thetext>Created attachment 432367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772992</commentid>
    <comment_count>23</comment_count>
      <attachid>432372</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-28 01:49:54 -0700</bug_when>
    <thetext>Created attachment 432372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773001</commentid>
    <comment_count>24</comment_count>
      <attachid>432374</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-06-28 02:12:46 -0700</bug_when>
    <thetext>Created attachment 432374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773034</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-28 05:29:48 -0700</bug_when>
    <thetext>Committed r279335 (239204@main): &lt;https://commits.webkit.org/239204@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432374.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431956</attachid>
            <date>2021-06-22 04:14:25 -0700</date>
            <delta_ts>2021-06-23 08:22:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210622211423.patch</filename>
            <type>text/plain</type>
            <size>52006</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTUzMDZlMTYzNDRhOGRk
OGQ0YmVmOGEyMDljNmZjMjJhYTExZDFiMC4uMDU4MmNhYTJhYjFmYTBkOWQ1MmYzZGE5Y2ZlOWNj
ODFhM2U5NjIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTA2LTIyICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgTm90IGFsbCB1c2Ugb2Yg
QXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ugc29mdCBsaW5raW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyNTAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzc5NjA2MDkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVuaWZ5IEF1ZGlvVG9vbGJveCdzIG1ldGhvZHMgZGVmaW5pdGlvbiBhbmQgdGhl
aXIgdXNlLCBlbnN1cmluZyB0aGF0IHRoZXkKKyAgICAgICAgYXJlIGFsd2F5cyBzb2Z0LWxpbmtl
ZC4KKyAgICAgICAgVW5pZmllZCBidWlsZHMgYW5kIHRoZSBpbmNvbnNpc3RlbnQgdXNlIG9mIGV4
cGxpY2l0bHkgdXNpbmcgdGhlIFBBTCBuYW1lc3BhY2UKKyAgICAgICAgY2F1c2VkIHNvbWUgY2Fs
bHMgdG8gYmUgYW1iaWd1b3VzIGxlYWRpbmcgdG8gY29tcGlsYXRpb24gZXJyb3JzOyBzb21lCisg
ICAgICAgIGNvZGUgd291bGQgYWxzbyB1c2UgdGhlIHNvZnRsaW5rZWQgbWV0aG9kcyB3aGlsZSBv
dGhlcnMgY2FsbGVkIGludG8gdGhlIGZyYW1ld29yaworICAgICAgICBkaXJlY3RseS4KKyAgICAg
ICAgVG8gZ2V0IGFyb3VuZCB0aG9zZSB3ZSBlbnN1cmUgdGhhdCBhbnkgY2FsbCB0byBBdWRpb1Rv
b2xib3ggaXMgYWx3YXlzIHVzaW5nIHRoZSBmdWxseQorICAgICAgICByZXNvbHZlZCBQQUwgbmFt
ZS4KKyAgICAgICAgTm8gY2hhbmdlIGluIG9ic2VydmFibGUgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMpOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5l
ZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Zmlu
YWxpemVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJlcGFyZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjp1bnByZXBhcmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExp
c3RlbmVyOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlz
dGVuZXI6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmN1cnJlbnRNZWRpYVRpbWUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpzZXRDdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6dXBkYXRl
TGFzdFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6ZGVzdHJveUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBlcmZvcm1U
YXNrQXRNZWRpYVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
QXVkaW9TaGFyZWRVbml0Lm1tOgorCiAyMDIxLTA2LTIxICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5
YUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBtZXRob2QgaW4gQXVkaW9GaWxl
UmVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA1OWIyYTliYmQyYWU3NTFlMjY1MmVmMjY3ZWVj
NmFkNWQ5MDcxNWFiLi42MGUyYzUwNDYwNzYzZGZlZGJlZjRhMTc2OGViODc0ZjkzNjA3YTk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNi0yMiAgSmVhbi1ZdmVz
IEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlIG9mIEF1ZGlv
VG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg6IEFkZCBtZXRob2RzIHdob3NlIGRlZmluaXRpb25zIHdl
cmUgc2NhdHRlcmVkIGFjcm9zcworICAgICAgICB0aGUgY29kZS4KKyAgICAgICAgKiBwYWwvY29j
b2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jb2NvYS9NZWRpYVRv
b2xib3hTb2Z0TGluay5oOiBTYW1lIGFzIGFib3ZlLgorCiAyMDIxLTA2LTIwICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gUmVuYW1lIFdL
VmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXIgdG8gV0tRdWlja0xvb2tQcmV2aWV3Q29udHJv
bGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAyYmIxNDdlNTM1YzhjMGMxNzk3N2JiZWQ3ODdhYjBlOTAyNzljYmQw
Li4wZGNjMjZmYWYwMTJhYjM3MGViYzJiOTc1NzJkNTA0M2Y2ODNkN2IwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDIxLTA2LTIyICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5j
b20+CisKKyAgICAgICAgTm90IGFsbCB1c2Ugb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ug
c29mdCBsaW5raW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjcyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NjA2MDkwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOiBNYWtlIGNhbGwgdG8gQXVkaW9U
b29sYm94CisgICAgICAgIGNvbnNpc3RhbnRseSBwcmVmaXhlZCB3aXRoIFBBTCBuYW1lc3BhY2UK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6
IE1ha2UgY2FsbCB0byBBdWRpb1Rvb2xib3gKKyAgICAgICAgY29uc2lzdGFudGx5IHByZWZpeGVk
IHdpdGggUEFMIG5hbWVzcGFjZQorCiAyMDIxLTA2LTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gW1dlYktpdExlZ2FjeV0gTm9uLWFj
dGlvbmFibGUgIkxvb2sgVXAiIGFjdGlvbiBhcHBlYXJzIHdoZW4gcmlnaHQgY2xpY2tpbmcgaW1h
Z2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNv
ZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExp
bmsuY3BwCmluZGV4IDY3Yjc4ZjQ2YTc4MTE3ODg4ZjAwZDA4OTdkYmE1N2U3YWM1Mzg1MDIuLjQ4
YTlmZmIzMzJmNmRiNDdjNzQ5ZGZhMjcwYTk2MjkwZDAzMzBjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0yNiw5ICsy
NiwxMiBAQAogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAorI2luY2x1ZGUgPEF1ZGlvVG9vbGJv
eC9BdWRpb0NvbXBvbmVudC5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRl
ci5oPgorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDxBdWRp
b1Rvb2xib3gvQXVkaW9Gb3JtYXQuaD4KLQorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb1Vu
aXQuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KICNpbmNs
dWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94KQpAQCAtMzgsOCArNDEsMjUgQEAgU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHksIE9T
U3RhdHUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24q
IGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRl
ciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0
ZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5B
dWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUlu
dDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Qcm9wZXJ0eURhdGEpLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVy
dHlEYXRhKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVm
IGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQs
IFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3Bl
cnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0Nv
bnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNv
bnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0
cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERh
dGEsIG91dE91dHB1dERhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBB
dWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAo
QXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJDb21wbGV4
SW5wdXREYXRhUHJvYyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGluSW5wdXREYXRhUHJvY1VzZXJE
YXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1ZGlvQnVmZmVyTGlzdCogb3V0
T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogb3V0UGFja2V0RGVzY3Jp
cHRpb24pLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQcm9jLCBpbklucHV0RGF0YVBy
b2NVc2VyRGF0YSwgaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0T3V0cHV0RGF0YSwgb3V0UGFj
a2V0RGVzY3JpcHRpb24pKQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50RmV0Y2hT
ZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0QnVuZGxlUmVnaXN0
cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29s
Ym94Q29yZSwgQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVz
LCAoQ0ZEYXRhUmVmIGluQnVuZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlv
bnMpLCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1
ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRp
b0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZv
aWQgKmluQ2xpZW50RGF0YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmls
ZV9Xcml0ZVByb2MgaW5Xcml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVG
dW5jLCBBdWRpb0ZpbGVfU2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlE
IGluRmlsZVR5cGVIaW50LCBBdWRpb0ZpbGVJRCAqb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0
YSwgaW5SZWFkRnVuYywgaW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMs
IGluRmlsZVR5cGVIaW50LCBvdXRBdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAo
RXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVH
ZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4
dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRh
U2l6ZSwgdm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5
SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0
YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyICppb051bWJlckZy
YW1lcywgQXVkaW9CdWZmZXJMaXN0ICppb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVy
RnJhbWVzLCBpb0RhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRp
b1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmls
ZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQs
IFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwg
KGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9w
ZXJ0eURhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xi
b3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBp
bkZpbGVJRCwgQm9vbGVhbiBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVk
aW9GaWxlKSwgKGluRmlsZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxl
T3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxlUmVmKiBvdXRF
eHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0
LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRp
b0NvbXBvbmVudERlc2NyaXB0aW9uKiBpbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21w
b25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwg
QXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5Db21wb25lbnQsIG91dElu
c3RhbmNlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRp
b1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVs
ZW1lbnQgaW5FbGVtZW50LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0YVNpemUpLCAoaW5V
bml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdElu
aXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQg
aW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQs
IGNvbnN0IHZvaWQqIGluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBp
blNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCiAKICNlbmRpZiAvLyBVU0Uo
QVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRp
b1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xi
b3hTb2Z0TGluay5oCmluZGV4IDQ5ZTMyZTE3OTQwMzYzYjg0OTc3NDQzNWJkMjA5NWU2NGFiNDg4
MWIuLjcwYmNhODlkMGM4NzUwMTRkNGRjMzRkZmI4ODY1NjE3NjViZjQ5YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTI2LDEy
ICsyNiw0OCBAQAogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAorI2luY2x1ZGUgPENvcmVBdWRp
by9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCiB0eXBl
ZGVmIFVJbnQzMiBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQ7CiB0eXBlZGVmIFVJbnQzMiBBdWRp
b0Zvcm1hdFByb3BlcnR5SUQ7CiB0eXBlZGVmIHN0cnVjdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24gQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uOwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVl
QXVkaW9Db252ZXJ0ZXIqIEF1ZGlvQ29udmVydGVyUmVmOwordHlwZWRlZiBzdHJ1Y3QgQXVkaW9C
dWZmZXJMaXN0IEF1ZGlvQnVmZmVyTGlzdDsKK3R5cGVkZWYgT1NTdGF0dXMgKCpBdWRpb0NvbnZl
cnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKShBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVy
dGVyLAorICAgIFVJbnQzMiogaW9OdW1iZXJEYXRhUGFja2V0cywKKyAgICBBdWRpb0J1ZmZlckxp
c3QqIGlvRGF0YSwKKyAgICBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiogb3V0RGF0YVBh
Y2tldERlc2NyaXB0aW9uLAorICAgIHZvaWQqIGluVXNlckRhdGEpOworCit0eXBlZGVmIHN0cnVj
dCBPcGFxdWVFeHRBdWRpb0ZpbGUqIEV4dEF1ZGlvRmlsZVJlZjsKK3R5cGVkZWYgc3RydWN0IE9w
YXF1ZUF1ZGlvRmlsZUlEKiBBdWRpb0ZpbGVJRDsKK3R5cGVkZWYgVUludDMyIEF1ZGlvRmlsZVR5
cGVJRDsKK3R5cGVkZWYgVUludDMyIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQ7Cit0eXBlZGVmIE9T
U3RhdHVzICgqQXVkaW9GaWxlX1JlYWRQcm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEsCisg
ICAgU0ludDY0IGluUG9zaXRpb24sCisgICAgVUludDMyIHJlcXVlc3RDb3VudCwKKyAgICB2b2lk
KiBidWZmZXIsCisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7Cit0eXBlZGVmIE9TU3RhdHVzICgq
QXVkaW9GaWxlX1dyaXRlUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2
NCBpblBvc2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQsCisgICAgY29uc3Qgdm9pZCog
YnVmZmVyLAorICAgIFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlwZWRlZiBTSW50NjQgKCpBdWRp
b0ZpbGVfR2V0U2l6ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSk7Cit0eXBlZGVmIE9T
U3RhdHVzICgqQXVkaW9GaWxlX1NldFNpemVQcm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEs
CisgICAgU0ludDY0IGluU2l6ZSk7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0NvbXBvbmVu
dCogQXVkaW9Db21wb25lbnQ7Cit0eXBlZGVmIHN0cnVjdCBDb21wb25lbnRJbnN0YW5jZVJlY29y
ZCogQXVkaW9Db21wb25lbnRJbnN0YW5jZTsKK3R5cGVkZWYgQXVkaW9Db21wb25lbnRJbnN0YW5j
ZSBBdWRpb1VuaXQ7Cit0eXBlZGVmIHN0cnVjdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uIEF1
ZGlvQ29tcG9uZW50RGVzY3JpcHRpb247Cit0eXBlZGVmIFVJbnQzMiBBdWRpb1VuaXRQcm9wZXJ0
eUlEOwordHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0U2NvcGU7Cit0eXBlZGVmIFVJbnQzMiBBdWRp
b1VuaXRFbGVtZW50OwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBBdWRp
b1Rvb2xib3gpCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3hDb3JlKQpAQCAtNDQsOSArODAsNDIgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3QKICNkZWZp
bmUgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9D
b252ZXJ0ZXJTZXRQcm9wZXJ0eQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3gsIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Gb3Jt
YXRQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluU3BlY2lmaWVyU2l6ZSwgY29uc3Qg
dm9pZCogaW5TcGVjaWZpZXIsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQ
cm9wZXJ0eURhdGEpLCAoaW5Qcm9wZXJ0eUlELCBpblNwZWNpZmllclNpemUsIGluU3BlY2lmaWVy
LCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCiAjZGVmaW5lIEF1ZGlvRm9y
bWF0R2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvRm9ybWF0R2V0UHJvcGVy
dHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRp
b0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVy
UmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVk
aW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRh
KSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0
T3V0cHV0RGF0YSkpCisjZGVmaW5lIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIg
c29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bnZlcnRlckZpbGxDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGlu
QXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVByb2MgaW5JbnB1
dERhdGFQcm9jLCB2b2lkKiBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgVUludDMyKiBpb091dHB1
dERhdGFQYWNrZXRTaXplLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEsIEF1ZGlvU3Ry
ZWFtUGFja2V0RGVzY3JpcHRpb24qIG91dFBhY2tldERlc2NyaXB0aW9uKSwgKGluQXVkaW9Db252
ZXJ0ZXIsIGluSW5wdXREYXRhUHJvYywgaW5JbnB1dERhdGFQcm9jVXNlckRhdGEsIGlvT3V0cHV0
RGF0YVBhY2tldFNpemUsIG91dE91dHB1dERhdGEsIG91dFBhY2tldERlc2NyaXB0aW9uKSkKKyNk
ZWZpbmUgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlciBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcgorCiBTT0ZUX0xJTktfRlVOQ1RJT05f
TUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50
RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0QnVuZGxl
UmVnaXN0cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSkKICNkZWZpbmUgQXVkaW9D
b21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExpbmtBdWRpb1Rvb2xib3hDb3Jl
QXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMKIFNPRlRfTElOS19GVU5DVElP
Tl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21wb25l
bnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGluQnVuZGxl
UmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2RlZmluZSBBdWRpb0Nv
bXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlvVG9vbGJveENvcmVB
dWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucwogCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3RhdHVz
LCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQorI2RlZmluZSBBdWRp
b0ZpbGVDbG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxlQ2xvc2UKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVPcGVuV2l0
aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkKiBpbkNsaWVudERhdGEsIEF1ZGlvRmlsZV9SZWFk
UHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBBdWRpb0Zp
bGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9jIGluU2V0
U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxlSUQqIG91
dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5jLCBpbkdl
dFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9GaWxlKSkK
KyNkZWZpbmUgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mgc29mdExpbmtfQXVkaW9Ub29sYm94
X0F1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9zZSwgT1NTdGF0dXMsIChFeHRB
dWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRpb0ZpbGUpKQorI2RlZmluZSBF
eHRBdWRpb0ZpbGVEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVEaXNw
b3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0
QXVkaW9GaWxlR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVk
aW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBpb1By
b3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwg
aW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCisjZGVm
aW5lIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRp
b0ZpbGVHZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRp
b1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGlu
RXh0QXVkaW9GaWxlLCBVSW50MzIqIGlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlv
RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCisjZGVmaW5l
IEV4dEF1ZGlvRmlsZVJlYWQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZVJlYWQK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRp
b0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0Zp
bGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0
eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwg
aW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKKyNkZWZp
bmUgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlv
RmlsZVNldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlv
VG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywgKEF1ZGlvRmls
ZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxlUmVmKiBvdXRF
eHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVkaW9GaWxlKSkK
KyNkZWZpbmUgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9FeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENG
VVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwg
b3V0RXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlT3BlblVSTCBzb2Z0TGlua19B
dWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlT3BlblVSTAorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4dCwgQXVkaW9D
b21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVkaW9Db21wb25l
bnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQorI2RlZmluZSBB
dWRpb0NvbXBvbmVudEZpbmROZXh0IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbXBvbmVu
dEZpbmROZXh0CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBp
bkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5Db21w
b25lbnQsIG91dEluc3RhbmNlKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyBz
b2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldworU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFByb3Bl
cnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5J
RCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIHZv
aWQqIG91dERhdGEsIFVJbnQzMiogaW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUs
IGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5pdEdldFBy
b3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRHZXRQcm9wZXJ0eQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEluaXRp
YWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorI2RlZmluZSBB
dWRpb1VuaXRJbml0aWFsaXplIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRJbml0aWFs
aXplCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVk
aW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0
UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50
IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChpblVu
aXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKKyNkZWZp
bmUgQXVkaW9Vbml0U2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5pdFNl
dFByb3BlcnR5CisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCA2
NzRlNjQ5NGEwYThiNTk2OTAzZTNjYTVjZmI2YTIzZGRhYzM2MzhjLi5kNDQ0OTMxZWZkOGFlNTU2
MGI4YzFiMjdmMjJhZDkyZTc5MzQ4NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtNDEsNiArNDEsMTAgQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBN
ZWRpYVRvb2xib3gsIE1UX0dldFNob3UKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnROb3RpZmlj
YXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQp
CiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYgdGFwKSwgKHRhcCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlh
VG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChN
VEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3Mg
KmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVy
RnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0
LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBj
b25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyogY2FsbGJhY2tzLCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmKiB0
YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpLCBQQUxfRVhQT1JU
KQorCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFBsdWdpbkZv
cm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsu
aAppbmRleCBjN2RlMDJjZTYzYzJjMzAwZDk2NTRmNjY3MGJmYzEyNTAyMjkzNDRlLi4yNTVhNzY3
YjU1ZWVmNGU4ZWVkMTlkZWYyOTcxNzg0OTBiZTkzZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCkBAIC00MSw2ICs0MSwx
MyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9v
bGJveCwgTVRfR2V0U2hvdWxkUGxheUhEUlZpZAogCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UU3VwcG9ydE5vdGlmaWNhdGlvbl9T
aG91bGRQbGF5SERSVmlkZW9DaGFuZ2VkLCBDRlN0cmluZ1JlZikKIAorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0
U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKKyNk
ZWZpbmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlIHNvZnRMaW5rX01lZGlhVG9vbGJv
eF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1
ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQg
bnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENN
SXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxp
c3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKKyNkZWZp
bmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyBzb2Z0TGlua19NZWRpYVRvb2xi
b3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbworU09GVF9MSU5LX0ZVTkNUSU9O
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwg
KGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNkZWZpbmUgTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUgc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlCisKICNpZiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQogCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UUGx1Z2luRm9ybWF0
UmVhZGVyUHJvcGVydHlfRHVyYXRpb24sIENGU3RyaW5nUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwCmluZGV4IGZkM2QzZTAzYTAzZjA4MTA1MjEyODZiZDAyNmE5MTAxMTFkM2NjODQuLjVkNTZi
OWVlMWEwZDNkNjdhNzljMzA3NjFkMTM4MTVkN2MwNjQ0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2Nv
YS5jcHAKQEAgLTM2LDI1ICszNiwxMyBAQAogI2luY2x1ZGUgIkF1ZGlvRmlsZVJlYWRlci5oIgog
I2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNs
dWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDxDb3JlRm91
bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hT
b2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgogI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQotU09GVF9M
SU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRp
b0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkF1ZGlvRmlsZSksIChpbkF1ZGlv
RmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNr
cywgT1NTdGF0dXMsICh2b2lkICppbkNsaWVudERhdGEsIEF1ZGlvRmlsZV9SZWFkUHJvYyBpblJl
YWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBBdWRpb0ZpbGVfR2V0U2l6
ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9jIGluU2V0U2l6ZUZ1bmMs
IEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxlSUQgKm91dEF1ZGlvRmls
ZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5jLCBpbkdldFNpemVGdW5j
LCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9GaWxlKSkKLVNPRlRfTElO
SyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9G
aWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkKLVNPRlRfTElOSyhBdWRp
b1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmls
ZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQs
IFVJbnQzMiAqaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9wZXJ0eURhdGEpLCAoaW5F
eHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0
eURhdGEpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlUmVhZCwgT1NTdGF0
dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQzMiAqaW9OdW1iZXJGcmFt
ZXMsIEF1ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpb051bWJlckZy
YW1lcywgaW9EYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVNldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVk
aW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUs
IGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5
SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQotU09GVF9MSU5LKEF1ZGlv
VG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywgKEF1ZGlvRmls
ZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxlUmVmICpvdXRF
eHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVkaW9GaWxlKSkK
LVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5VUkwsIE9TU3RhdHVzLCAo
Q0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluVVJM
LCBvdXRFeHRBdWRpb0ZpbGUpKQotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBBdWRpb0J1ZmZlckxpc3QqIHRyeUNyZWF0ZUF1ZGlvQnVm
ZmVyTGlzdChzaXplX3QgbnVtYmVyT2ZCdWZmZXJzKQpAQCAtMTAzLDIyICs5MSwyMiBAQCBBdWRp
b0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcihjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0
YVNpemUpCiAgICAgOiBtX2RhdGEoZGF0YSkKICAgICAsIG1fZGF0YVNpemUoZGF0YVNpemUpCiB7
Ci0gICAgaWYgKEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMsIHJlYWRQcm9jLCAwLCBn
ZXRTaXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJyKQorICAgIGlmIChQQUw6
OkF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMsIHJlYWRQcm9jLCAwLCBnZXRTaXplUHJv
YywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEKG1fYXVkaW9GaWxlSUQsIGZhbHNlLCAm
bV9leHRBdWRpb0ZpbGVSZWYpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZVdy
YXBBdWRpb0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0QXVkaW9GaWxlUmVmKSAh
PSBub0VycikKICAgICAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwogfQogCiBBdWRpb0ZpbGVS
ZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIoKQogewogICAgIGlmIChtX2V4dEF1ZGlvRmlsZVJlZikK
LSAgICAgICAgRXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmlsZVJlZik7CisgICAgICAg
IFBBTDo6RXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmlsZVJlZik7CiAKICAgICBtX2V4
dEF1ZGlvRmlsZVJlZiA9IDA7CiAKICAgICBpZiAobV9hdWRpb0ZpbGVJRCkKLSAgICAgICAgQXVk
aW9GaWxlQ2xvc2UobV9hdWRpb0ZpbGVJRCk7CisgICAgICAgIFBBTDo6QXVkaW9GaWxlQ2xvc2Uo
bV9hdWRpb0ZpbGVJRCk7CiAKICAgICBtX2F1ZGlvRmlsZUlEID0gMDsKIH0KQEAgLTE1NSw3ICsx
NDMsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0
IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogCiAgICAgLy8gR2V0IGZpbGUncyBkYXRhIGZv
cm1hdAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZmlsZURhdGFGb3JtYXQpOwotICAgIGlm
IChFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmls
ZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQpICE9IG5v
RXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxl
UmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3JtYXQsICZzaXplLCAmbV9maWxl
RGF0YUZvcm1hdCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgc2l6
ZV90IG51bWJlck9mQ2hhbm5lbHMgPSBtX2ZpbGVEYXRhRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1l
OwpAQCAtMTYzLDcgKzE1MSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpj
cmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAgICAgLy8gTnVtYmVy
IG9mIGZyYW1lcwogICAgIFNJbnQ2NCBudW1iZXJPZkZyYW1lczY0ID0gMDsKICAgICBzaXplID0g
c2l6ZW9mKG51bWJlck9mRnJhbWVzNjQpOwotICAgIGlmIChFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0
eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVMZW5ndGhGcmFt
ZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIgfHwgbnVtYmVyT2ZGcmFtZXM2
NCA8PSAwKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVkaW9G
aWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZUxlbmd0aEZyYW1lcywgJnNpemUsICZu
dW1iZXJPZkZyYW1lczY0KSAhPSBub0VyciB8fCBudW1iZXJPZkZyYW1lczY0IDw9IDApCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgZG91YmxlIGZpbGVTYW1wbGVSYXRlID0gbV9maWxl
RGF0YUZvcm1hdC5tU2FtcGxlUmF0ZTsKQEAgLTE4NSw3ICsxNzMsNyBAQCBSZWZQdHI8QXVkaW9C
dXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4
VG9Nb25vKQogICAgIGlmIChzYW1wbGVSYXRlKQogICAgICAgICBtX2NsaWVudERhdGFGb3JtYXQu
bVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOwogCi0gICAgaWYgKEV4dEF1ZGlvRmlsZVNldFByb3Bl
cnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfQ2xpZW50RGF0YUZv
cm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZtX2NsaWVudERhdGFG
b3JtYXQpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZVNldFByb3BlcnR5KG1f
ZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfQ2xpZW50RGF0YUZvcm1hdCwg
c2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZtX2NsaWVudERhdGFGb3JtYXQp
ICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENoYW5nZSBudW1i
ZXJPZkZyYW1lczY0IHRvIGRlc3RpbmF0aW9uIHNhbXBsZS1yYXRlCkBAIC0yNDMsNyArMjMxLDcg
QEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1w
bGVSYXRlLCBib29sIG1peFRvTW9ubykKIAogICAgIC8vIFJlYWQgZnJvbSB0aGUgZmlsZSAob3Ig
aW4tbWVtb3J5IHZlcnNpb24pCiAgICAgVUludDMyIGZyYW1lc1RvUmVhZCA9IG51bWJlck9mRnJh
bWVzOwotICAgIGlmIChFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAmZnJhbWVz
VG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgeworICAgIGlmIChQQUw6OkV4dEF1ZGlvRmls
ZVJlYWQobV9leHRBdWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1ZmZlckxpc3QpICE9IG5v
RXJyKSB7CiAgICAgICAgIGRlc3Ryb3lBdWRpb0J1ZmZlckxpc3QoYnVmZmVyTGlzdCk7CiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oCmluZGV4IGI3Yjkx
NjNiNTZlMjZjMjljYWI4NGVlMjQ3NjllMjk3MTQxN2FmZmMuLjBiYmJiYTI3ODU3ZDk3OWVjYzY4
OGY4N2YwMzM5ZjY2NWVmNDI1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaApAQCAtMzEsMTAgKzMx
LDEyIEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCi0jaW5jbHVkZSA8QXVkaW9Ub29sYm94
L0F1ZGlvRmlsZS5oPgotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9FeHRlbmRlZEF1ZGlvRmlsZS5o
PgorI2luY2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAordXNpbmcgRXh0QXVkaW9GaWxlUmVmID0gc3RydWN0IE9wYXF1ZUV4dEF1ZGlv
RmlsZSo7Cit1c2luZyBBdWRpb0ZpbGVJRCA9IHN0cnVjdCBPcGFxdWVBdWRpb0ZpbGVJRCo7CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9CdXM7CkBAIC01OCw3ICs2MCw3IEBA
IHByaXZhdGU6CiAgICAgY29uc3Qgdm9pZCogbV9kYXRhID0geyBudWxscHRyIH07CiAgICAgc2l6
ZV90IG1fZGF0YVNpemUgPSB7IDAgfTsKIAotICAgIEF1ZGlvRmlsZUlEIG1fYXVkaW9GaWxlSUQg
PSB7IDAgfTsKKyAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0geyBudWxscHRyIH07CiAg
ICAgRXh0QXVkaW9GaWxlUmVmIG1fZXh0QXVkaW9GaWxlUmVmID0geyBudWxscHRyIH07CiAKICAg
ICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbV9maWxlRGF0YUZvcm1hdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVy
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuY3BwCmluZGV4IGZkZjY3NzU3ZDFiNDc3NjA4MDhiMTNmYjQzNGU0MGIzZGZk
MzBlMDQuLjRlOTA2NGQwYzZlOTMwODlhZTBlYWE2Zjk5OGVjZDY1MzczNWQxZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVy
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9T
YW1wbGVCdWZmZXJMaXN0LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlZlY3Rvck1h
dGguaCIKICNpbmNsdWRlIDxBY2NlbGVyYXRlL0FjY2VsZXJhdGUuaD4KICNpbmNsdWRlIDxBdWRp
b1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMjcyLDcgKzI3Myw3IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBzb3VyY2UsIHNpemVfdCBmCiAKICAg
ICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gaW5wdXRGb3JtYXQ7CiAgICAgVUludDMyIHBy
b3BlcnR5RGF0YVNpemUgPSBzaXplb2YoaW5wdXRGb3JtYXQpOwotICAgIEF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1E
ZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZpbnB1dEZvcm1hdCk7CisgICAgUEFMOjpB
dWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVu
dElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0eURhdGFTaXplLCAmaW5wdXRGb3JtYXQp
OwogICAgIEFTU0VSVChmcmFtZUNvdW50IDw9IHNvdXJjZS5tQnVmZmVyc1swXS5tRGF0YUJ5dGVT
aXplIC8gaW5wdXRGb3JtYXQubUJ5dGVzUGVyUGFja2V0KTsKIAogICAgIEF1ZGlvQ29udmVydGVy
RnJvbUFCTENvbnRleHQgY29udGV4dCB7IHNvdXJjZSwgZnJhbWVDb3VudCwgaW5wdXRGb3JtYXQu
bUJ5dGVzUGVyUGFja2V0IH07CkBAIC0yODAsNyArMjgxLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1w
bGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6
ZV90IGYKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
IG91dHB1dEZvcm1hdDsKICAgICBwcm9wZXJ0eURhdGFTaXplID0gc2l6ZW9mKG91dHB1dEZvcm1h
dCk7Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZv
dXRwdXRGb3JtYXQpOworICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0
ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3Bl
cnR5RGF0YVNpemUsICZvdXRwdXRGb3JtYXQpOwogCiAgICAgQVNTRVJUKENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbihvdXRwdXRGb3JtYXQpLm51bWJlck9mQ2hhbm5lbFN0cmVhbXMoKSA9PSBtX2J1
ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCkpOwogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBt
X2J1ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCk7ICsraSkgewpAQCAtMjkwLDcgKzI5MSw3IEBAIE9T
U3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJM
aXN0JiBzb3VyY2UsIHNpemVfdCBmCiAjZW5kaWYKIAogICAgIFVJbnQzMiBzYW1wbGVzQ29udmVy
dGVkID0gbV9zYW1wbGVDYXBhY2l0eTsKLSAgICBPU1N0YXR1cyBlcnIgPSBBdWRpb0NvbnZlcnRl
ckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ2FsbGJh
Y2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0LT5saXN0KCksIG51
bGxwdHIpOworICAgIE9TU3RhdHVzIGVyciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxl
eEJ1ZmZlcihjb252ZXJ0ZXIsIGF1ZGlvQ29udmVydGVyRnJvbUFCTENhbGxiYWNrLCAmY29udGV4
dCwgJnNhbXBsZXNDb252ZXJ0ZWQsIG1fYnVmZmVyTGlzdC0+bGlzdCgpLCBudWxscHRyKTsKICAg
ICBpZiAoIWVyciB8fCBlcnIgPT0ga1Jhbk91dE9mSW5wdXREYXRhU3RhdHVzKSB7CiAgICAgICAg
IG1fc2FtcGxlQ291bnQgPSBzYW1wbGVzQ29udmVydGVkOwogICAgICAgICByZXR1cm4gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVu
aXRBZGFwdG9ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRp
b091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAppbmRleCAyZTk2MzBmYjYwZjIyYjNlZTU2ZDI0MmQ3
MzA0MzQ4NmI4N2I1NjJmLi4yYjM0NmI2MGY0MGM5MDc4ZTM5NGZhMTg5MTZhMGY4MjU1NjU2NjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRw
dXRVbml0QWRhcHRvcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwCkBAIC0zMywxNSArMzMsNyBAQAogI2lm
IEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJB
dWRpb1Nlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQotU09GVF9MSU5L
X0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9u
ZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uICppbkRlc2MpLCAoaW5Db21wb25l
bnQsIGluRGVzYykpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBv
bmVudEluc3RhbmNlICpvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0QWRkUHJvcGVydHlMaXN0ZW5lciwgT1NT
dGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlv
VW5pdFByb3BlcnR5TGlzdGVuZXJQcm9jIGluUHJvYywgdm9pZCAqaW5Qcm9jVXNlckRhdGEpLCAo
aW5Vbml0LCBpbklELCBpblByb2MsIGluUHJvY1VzZXJEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQs
IEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9V
bml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQgKm91dERhdGEsIFVJbnQzMiAqaW9EYXRhU2l6ZSks
IChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkp
Ci1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywg
KEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1
ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5p
dFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVu
dCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQgKmluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5V
bml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjaW5j
bHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNTgsMTEgKzUwLDExIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29u
ZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVz
Yy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwog
ICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNr
ID0gMDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAg
Y29tcCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NF
UlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNl
TmV3KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVk
aW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CiAKICAgICBVSW50MzIgZmxhZyA9IDE7CkBAIC03NCwyMCArNjYsMjAgQEAgdm9p
ZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1wbGVS
YXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICAgICAgc2l6ZW9mKGZsYWcpKTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5p
dCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7
CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogICAgIC8vIFNldCByZW5kZXIgY2FsbGJhY2sKICAgICBB
VVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlucHV0LmlucHV0UHJvYyA9IGlucHV0
UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlzOwotICAgIHJlc3VsdCA9IEF1
ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJl
bmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlu
cHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3Bl
X0lucHV0LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsK
IAogICAgIC8vIFNldCBzdHJlYW0gZm9ybWF0CiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uIHN0cmVhbUZvcm1hdDsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbik7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9v
dXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOworICAgIHJlc3VsdCA9
IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVy
dHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVh
bUZvcm1hdCwgJnNpemUpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIGNvbnN0ZXhwciBp
bnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsKQEAgLTEwMSw3ICs5Myw3IEBAIHZv
aWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxl
UmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgc3RyZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1l
ID0gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKICAgICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFu
bmVsID0gYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0OwogCi0gICAgcmVzdWx0ID0gQXVkaW9V
bml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9y
bWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXpl
b2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1G
b3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNp
emVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7
CiAKICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJT
aXplKGtQcmVmZXJyZWRCdWZmZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRleCA5ODM5YjM3MGE3MTNiN2MxZDIzZDg0N2ZhODY1
MDVkNWFlOTc5YWIyLi5kZmY0ZmE0ZWRmMjY0YjQ1MmJmOGRhN2FmYWVmNGNiZDdhMDI3YjAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBA
IC00NiwyMiArNDYsMTMgQEAKICNpbXBvcnQgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2Vu
ZGlmCiAKKyNpbXBvcnQgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsuaD4KLQotU09GVF9MSU5LX0ZSQU1FV09SSyhNZWRpYVRvb2xib3gpCi1TT0ZU
X0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkKLQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwg
QXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZl
cnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0
IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0
RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEs
IG91dE91dHB1dERhdGEpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJO
ZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJj
ZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9u
Rm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VG
b3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKLQotU09GVF9M
SU5LKE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwg
KE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQotU09GVF9MSU5LKE1lZGlhVG9v
bGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1
ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9C
dWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZs
YWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJh
bWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0
aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoTWVkaWFU
b29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzICpjYWxs
YmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1By
b2Nlc3NpbmdUYXBSZWYgKnRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRh
cE91dCkpCisjaW1wb3J0IDxwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogc3RhdGljIGNvbnN0IGRv
dWJsZSBrUmluZ0J1ZmZlckR1cmF0aW9uID0gMTsKIAogY2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OlRhcFN0b3JhZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OlRhcFN0b3JhZ2U+IHsKQEAgLTczLDcgKzY0LDcgQEAgcHVi
bGljOgogCiBSZWZQdHI8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpjcmVhdGUoQVZQbGF5ZXJJdGVtICppdGVtKQogewotICAgIGlmICghY2Fu
TG9hZE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKCkpCisgICAgaWYgKCFQQUw6OmNhbkxvYWRf
TWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDKGl0ZW0pKTsKIH0KQEAgLTE1Miw3ICsxNDMsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1Rv
UHJvYwogICAgIG1fcmVhZENvdW50ICs9IGZyYW1lc1RvUHJvY2VzczsKIAogICAgIGlmIChtX2Nv
bnZlcnRlcikKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2Nv
bnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQo
KSk7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2Nv
bnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQo
KSk7CiB9CiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENsaWVudChBdWRp
b1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCkBAIC0yMjUsNyArMjE2LDcgQEAgdm9pZCBB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQoKQogICAgIH07CiAK
ICAgICBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAgPSBudWxscHRyOwotICAgIE9TU3RhdHVz
IHN0YXR1cyA9IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
ICZjYWxsYmFja3MsIDEsICZ0YXApOworICAgIE9TU3RhdHVzIHN0YXR1cyA9IFBBTDo6TVRBdWRp
b1Byb2Nlc3NpbmdUYXBDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwg
JnRhcCk7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBpZiAodGFwKQogICAg
ICAgICAgICAgQ0ZSZWxlYXNlKHRhcCk7CkBAIC0yNTgsMTQgKzI0OSwxNCBAQCB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjppbml0Q2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYgdGFwLCB2b2lkKgogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVD
YWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApCiB7CiAgICAgQVNTRVJUKHRhcCk7
Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihN
VEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CisgICAgVGFwU3RvcmFnZSogdGFw
U3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5n
VGFwR2V0U3RvcmFnZSh0YXApKTsKICAgICB0YXBTdG9yYWdlLT5kZXJlZigpOwogfQogCiB2b2lk
IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nl
c3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiAqcHJvY2Vzc2luZ0Zvcm1hdCkKIHsKICAgICBBU1NFUlQodGFwKTsK
LSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1U
QXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBT
dG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxv
Y2sgfTsKIApAQCAtMjc2LDcgKzI2Nyw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNCiB2b2lk
IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiB0YXApCiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSog
dGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cEdldFN0b3JhZ2UodGFwKSk7CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19j
YXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXAp
KTsKIAogICAgIExvY2tlciBsb2NrZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTI4Nyw3
ICsyNzgsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByZXBhcmVDYWxs
YmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDOjpwcm9jZXNzQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBD
TUl0ZW1Db3VudCBudW1iZXJGcmFtZXMsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgZmxhZ3Ms
IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJh
bWVzT3V0LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCkKIHsKICAgICBBU1NF
UlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3Rv
cmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9y
YWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1By
b2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0
b3JhZ2UtPmxvY2sgfTsKIApAQCAtMzE3LDcgKzMwOCw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakM6OnByZXBhcmUoQ01JdGVtQ291bnQgbWF4RnJhbWVzLCBjb25zdCBBdWRpb1N0
cmVhCiAKICAgICBpZiAoKm1fdGFwRGVzY3JpcHRpb24gIT0gKm1fb3V0cHV0RGVzY3JpcHRpb24p
IHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJSZWYgb3V0Q29udmVydGVyID0gbnVsbHB0cjsKLSAg
ICAgICAgQXVkaW9Db252ZXJ0ZXJOZXcobV90YXBEZXNjcmlwdGlvbi5nZXQoKSwgbV9vdXRwdXRE
ZXNjcmlwdGlvbi5nZXQoKSwgJm91dENvbnZlcnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252
ZXJ0ZXJOZXcobV90YXBEZXNjcmlwdGlvbi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQo
KSwgJm91dENvbnZlcnRlcik7CiAgICAgICAgIG1fY29udmVydGVyID0gb3V0Q29udmVydGVyOwog
ICAgIH0KIApAQCAtMzU3LDcgKzM0OCw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnByb2Nlc3MoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VuCiAgICAg
CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKICAgICBDTVRpbWVSYW5nZSByYW5nZU91
dDsKLSAgICBPU1N0YXR1cyBzdGF0dXMgPSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1
ZGlvKHRhcCwgbnVtYmVyT2ZGcmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsICZyYW5n
ZU91dCwgJml0ZW1Db3VudCk7CisgICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvKHRhcCwgbnVtYmVyT2ZGcmFtZXMsIGJ1ZmZlckxpc3RJ
bk91dCwgZmxhZ3NPdXQsICZyYW5nZU91dCwgJml0ZW1Db3VudCk7CiAgICAgaWYgKHN0YXR1cyAh
PSBub0VyciB8fCAhaXRlbUNvdW50KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQppbmRleCA1YTY5YWE2Nzk1MTg5Y2I0ZTA3NmQzMTk0NjlmOTk2NTA0ZmY5NDZj
Li43M2FkZWI5YmI3M2E3ODI4ZGY1YTNmNDg0YzVmOTBlMzMzZDI0MWIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC02Niw3ICs2Niw2IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDooTlNVUkwgKilzdG9yYWdlRGlyZWN0b3J5OwogQGVuZAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpTZWVrU3RhdGUgZW51bWVyYXRpb25WYWx1ZSkKIHsKQEAgLTExNiwxNSArMTE1LDE1IEBA
IHN0YXRpYyB2b2lkIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrKENNTm90
aWZpY2F0aW9uQ2VudGVyUmVmLCBjb25zCiAKIHZvaWQgRWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0
ZW5lcjo6c3RvcChDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogewotICAgIENNTm90aWZpY2F0aW9u
Q2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIo
KTsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRp
bWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGltZWJhc2VOb3RpZmljYXRp
b25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlKTsKKyAgICBDTU5vdGlmaWNhdGlvbkNl
bnRlclJlZiBuYyA9IFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50
ZXIoKTsKKyAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIobmMsIHRo
aXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBQQUw6OmtDTVRpbWVi
YXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSk7CiB9CiAKIEVm
ZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXIo
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDJiBjbGllbnQsIENNVGltZWJhc2VS
ZWYgdGltZWJhc2UpCiAgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQogewotICAg
IENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZh
dWx0TG9jYWxDZW50ZXIoKTsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5j
LCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGltZWJh
c2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAwKTsKKyAgICBD
TU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXRE
ZWZhdWx0TG9jYWxDZW50ZXIoKTsKKyAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlz
dGVuZXIobmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBQ
QUw6OmtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFz
ZSwgMCk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCkBAIC0x
NTcsNyArMTU2LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWEKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBERUJVR19MT0cobG9nU2l0ZUlk
ZW50aWZpZXIsICJzeW5jaHJvbml6ZXIgZmlyZWQgZm9yICIsIHRvTWVkaWFUaW1lKHRpbWUpLCAi
LCBzZWVraW5nID0gIiwgbV9zZWVraW5nLCAiLCBwZW5kaW5nID0gIiwgISFtX3BlbmRpbmdTZWVr
KTsKKyAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hyb25pemVyIGZp
cmVkIGZvciAiLCBQQUw6OnRvTWVkaWFUaW1lKHRpbWUpLCAiLCBzZWVraW5nID0gIiwgbV9zZWVr
aW5nLCAiLCBwZW5kaW5nID0gIiwgISFtX3BlbmRpbmdTZWVrKTsKIAogICAgICAgICBpZiAobV9z
ZWVraW5nICYmICFtX3BlbmRpbmdTZWVrKSB7CiAgICAgICAgICAgICBtX3NlZWtpbmcgPSBmYWxz
ZTsKQEAgLTIzOCwxMSArMjM3LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0CiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUoKQogewogICAg
IHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkKLSAgICAgICAg
JiYgaXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQotICAgICAgICAmJiBnZXRBVlN0cmVh
bURhdGFQYXJzZXJDbGFzcygpCi0gICAgICAgICYmIGdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5k
ZXJlckNsYXNzKCkKLSAgICAgICAgJiYgZ2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJvbml6
ZXJDbGFzcygpCi0gICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKGdldEFWU2FtcGxl
QnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3RvcihzZXRNdXRlZDopKTsKKyAgICAg
ICAgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpCisgICAgICAgICYmIFBB
TDo6Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKQorICAgICAgICAmJiBQQUw6OmdldEFWU2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCkKKyAgICAgICAgJiYgUEFMOjpnZXRBVlNhbXBs
ZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplckNsYXNzKCkKKyAgICAgICAgJiYgY2xhc3NfZ2V0SW5z
dGFuY2VNZXRob2QoUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpLCBA
c2VsZWN0b3Ioc2V0TXV0ZWQ6KSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpCkBAIC00MTcsNyArNDE2LDcgQEAgTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRpbWUoKSBj
b25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpj
dXJyZW50TWVkaWFUaW1lKCkgY29uc3QKIHsKLSAgICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGlt
ZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRp
bWViYXNlXSkpOworICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlh
VGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsK
ICAgICBpZiAoc3luY2hyb25pemVyVGltZSA8IE1lZGlhVGltZTo6emVyb1RpbWUoKSkKICAgICAg
ICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKICAgICBpZiAoc3luY2hyb25pemVyVGlt
ZSA8IG1fbGFzdFNlZWtUaW1lKQpAQCAtNDMwLDcgKzQyOSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRDdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNr
KE1lZGlhCiAgICAgbV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayk7CiAKICAgICBpZiAobV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKSB7Ci0gICAg
ICAgIG1fdGltZUNoYW5nZWRPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRQZXJpb2RpY1Rp
bWVPYnNlcnZlckZvckludGVydmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENNVGltZSB0aW1lKSB7CisgICAgICAgIG1fdGlt
ZUNoYW5nZWRPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZl
ckZvckludGVydmFsOlBBTDo6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSB1c2luZ0Jsb2NrOl4oQ01UaW1lIHRpbWUpIHsKICAgICAgICAgICAgIGlmICht
X2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2spCiAgICAgICAgICAgICAgICAgbV9jdXJyZW50
VGltZURpZENoYW5nZUNhbGxiYWNrKENNVElNRV9JU19OVU1FUklDKHRpbWUpID8gUEFMOjp0b01l
ZGlhVGltZSh0aW1lKSA6IE1lZGlhVGltZTo6emVyb1RpbWUoKSk7CiAgICAgICAgIH1dOwpAQCAt
NDgyLDcgKzQ4MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpzZWVrSW50ZXJuYWwoKQogICAgIGlmIChtX2xhc3RTZWVrVGltZS5oYXNEb3VibGVWYWx1ZSgp
KQogICAgICAgICBtX2xhc3RTZWVrVGltZSA9IE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZSht
X2xhc3RTZWVrVGltZS50b0RvdWJsZSgpLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwog
Ci0gICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGlt
ZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBNZWRpYVRpbWUg
c3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGlt
ZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklF
UiwgInNlZWtUaW1lID0gIiwgbV9sYXN0U2Vla1RpbWUsICIsIHN5bmNocm9uaXplclRpbWUgPSAi
LCBzeW5jaHJvbml6ZXJUaW1lKTsKIAogICAgIGJvb2wgZG9lc05vdFJlcXVpcmVTZWVrID0gc3lu
Y2hyb25pemVyVGltZSA9PSBtX2xhc3RTZWVrVGltZTsKQEAgLTU5OSw3ICs1OTgsNyBAQCBib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6dXBkYXRlTGFzdFBpeGVsQnVm
ZmVyKCkKICAgICBpZiAobV92aWRlb091dHB1dCkgewogICAgICAgICBDTVRpbWUgb3V0cHV0VGlt
ZTsKICAgICAgICAgaWYgKGF1dG8gcGl4ZWxCdWZmZXIgPSBhZG9wdENGKFttX3ZpZGVvT3V0cHV0
IGNvcHlQaXhlbEJ1ZmZlckZvclNvdXJjZVRpbWU6dG9DTVRpbWUoY3VycmVudE1lZGlhVGltZSgp
KSBzb3VyY2VUaW1lRm9yRGlzcGxheTomb3V0cHV0VGltZV0pKSB7Ci0gICAgICAgICAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVmZmVyIGZvdW5kIGZvciB0aW1lICIsIHRv
TWVkaWFUaW1lKG91dHB1dFRpbWUpKTsKKyAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJ
RVIsICJuZXcgcGl4ZWxidWZmZXIgZm91bmQgZm9yIHRpbWUgIiwgUEFMOjp0b01lZGlhVGltZShv
dXRwdXRUaW1lKSk7CiAgICAgICAgICAgICBtX2xhc3RQaXhlbEJ1ZmZlciA9IFdURk1vdmUocGl4
ZWxCdWZmZXIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTgwOSw3
ICs4MDgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZGVz
dHJveUxheWVyKCkKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBDTVRpbWViYXNlR2V0VGltZShb
bV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKKyAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBQQUw6
OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOwogICAgIFttX3N5
bmNocm9uaXplciByZW1vdmVSZW5kZXJlcjptX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQo
KSBhdFRpbWU6Y3VycmVudFRpbWUgd2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCl7CiAgICAg
ICAgIC8vIE5vLW9wLgogICAgIH1dOwpAQCAtMTAxOCw3ICsxMDE3LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmZsdXNoUGVuZGluZ1NpemVDaGFuZ2VzKCkK
ICNpZiBIQVZFKEFWU1RSRUFNU0VTU0lPTikKIEFWU3RyZWFtU2Vzc2lvbiogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKCkKIHsKLSAgICBpZiAoIWdl
dEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgfHwgIVtQQUw6OmdldEFWU3RyZWFtU2Vzc2lvbkNsYXNz
KCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRXaXRoU3RvcmFnZURp
cmVjdG9yeUF0VVJMOildKQorICAgIGlmICghUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygp
IHx8ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkKICAgICAg
ICAgcmV0dXJuIG5pbDsKIAogICAgIGlmICghbV9zdHJlYW1TZXNzaW9uKSB7CkBAIC0xMjE3LDcg
KzEyMTYsNyBAQCBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogICAgIGlmIChpdGVy
ID09IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hy
b25pemVyIHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWVi
YXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9zeW5jaHJvbml6
ZXIgcmVtb3ZlUmVuZGVyZXI6YXVkaW9SZW5kZXJlciBhdFRpbWU6Y3VycmVudFRpbWUgd2l0aENv
bXBsZXRpb25IYW5kbGVyOl4oQk9PTCl7CiAgICAgICAgIC8vIE5vLW9wLgogICAgIH1dOwpAQCAt
MTMwMSw3ICsxMzAwLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICBpZiAobV9wZXJm
b3JtVGFza09ic2VydmVyKQogICAgICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3ZlVGltZU9ic2Vy
dmVyOm1fcGVyZm9ybVRhc2tPYnNlcnZlci5nZXQoKV07CiAKLSAgICBtX3BlcmZvcm1UYXNrT2Jz
ZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpA
W1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeeworICAgIG1fcGVyZm9ybVRhc2tPYnNlcnZl
ciA9IFttX3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05T
VmFsdWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7CiAgICAg
fV07CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCmluZGV4IGFh
N2ZmMDg3NTA1NDI1ODJmMWVmOTE2N2E4MWU2ZmI1YTU0OGYxNTIuLjI4ZTFmNDRhMWIzZGY3ODBj
MjA3N2NlYzFkZTAyZTExYmI1MmY2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCkBA
IC00NCwxMiArNDQsOSBAQAogI2ltcG9ydCA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+
CiAjaW1wb3J0IDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KIAorI2ltcG9ydCA8cGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KIAotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi0KLVNPRlRfTElOSyhB
dWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91
dEF1ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBv
dXRBdWRpb0NvbnZlcnRlcikpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggNDI3OTY5YzI4MjExOGFjM2MzZDc3MDgzZWFiODJkOTVm
ZDBhYmVmZi4uMTcxZDljYTQ4NDkxNWQ3YWY0ZWVhZDY5NzA5OTkxZTUwNGQ0Mjc5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29j
b2EubW0KQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlv
Q29tcG9uZW50UmVnaXN0cmF0aW9ucygpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAot
ICAgIGlmICghaXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxv
YWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9u
cygpKQorICAgIGlmICghUEFMOjppc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUo
KSB8fCAhUEFMOjpjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRGZXRjaFNl
cnZlclJlZ2lzdHJhdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZB
VUxULCAwKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkgbXV0YWJsZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpp
bmRleCA2NmExOWU3M2E5ZWI1NjRkY2NlMDc3N2RjMzIwMGU0YzBiYzkzYzYwLi44YWNjM2QwYThh
YjFjY2Q0YjNmZWNhZDYwYjNhNmJjM2FlNjQzMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEzOTIsNyArMTM5Miw3IEBA
IHZvaWQgV2ViUHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyhjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAot
ICAgIGlmICghaXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxv
YWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9u
cygpKQorICAgIGlmICghUEFMOjppc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUo
KSB8fCAhUEFMOjpjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNl
cnZlclJlZ2lzdHJhdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZWdpc3Ry
YXRpb25zID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YS5k
YXRhKCksIGRhdGEuc2l6ZSgpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432043</attachid>
            <date>2021-06-23 08:22:39 -0700</date>
            <delta_ts>2021-06-23 08:29:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210624012236.patch</filename>
            <type>text/plain</type>
            <size>309530</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTUzMDZlMTYzNDRhOGRk
OGQ0YmVmOGEyMDljNmZjMjJhYTExZDFiMC4uNzY1YzU1OWM5ODcxZGU3ZDJjNjRiNzVlMWU1YjJi
MDViZDY0Y2NlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlIG9m
IEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgVW5pZnkgQXVkaW9Ub29sYm94LCBDb3JlTWVkaWEsIFZpZGVvVG9vbGJveCBhbmQg
TWVkaWFUb29sYm94J3MgbWV0aG9kCisgICAgICAgIGRlZmluaXRpb25zIGFuZCB0aGVpciB1c2Us
IGVuc3VyaW5nIHRoYXQgdGhleSBhcmUgYWx3YXlzIHNvZnQtbGlua2VkLgorICAgICAgICBVbmlm
aWVkIGJ1aWxkcyBhbmQgdGhlIGluY29uc2lzdGVudCB1c2Ugb2YgZXhwbGljaXRseSB1c2luZyB0
aGUgUEFMIG5hbWVzcGFjZQorICAgICAgICBjYXVzZWQgc29tZSBjYWxscyB0byBiZSBhbWJpZ3Vv
dXMgbGVhZGluZyB0byBjb21waWxhdGlvbiBlcnJvcnM7IHNvbWUKKyAgICAgICAgY29kZSB3b3Vs
ZCBhbHNvIHVzZSB0aGUgc29mdGxpbmtlZCBtZXRob2RzIHdoaWxlIG90aGVycyBjYWxsZWQgaW50
byB0aGUgZnJhbWV3b3JrcworICAgICAgICBkaXJlY3RseS4KKyAgICAgICAgVG8gZ2V0IGFyb3Vu
ZCB0aG9zZSB3ZSBlbnN1cmUgdGhhdCBhbnkgY2FsbHMgdG8gQXVkaW9Ub29sYm94IG9yIENvcmVN
ZWRpYSBpcyBhbHdheXMgdXNpbmcKKyAgICAgICAgdGhlIGZ1bGx5IHJlc29sdmVkIFBBTCBuYW1l
LgorICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgYHVzaW5nIG5hbWVzcGFjZSBQQUw7YCBzdGF0
ZW1lbnRzIHdoZXJldmVyIGFwcGxpY2FibGUuCisgICAgICAgIE5vIGNoYW5nZSBpbiBvYnNlcnZh
YmxlIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0ZpbGVSZWFkZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3ApOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW06CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3Vy
ZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9T
YW1wbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnBy
ZXBhcmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
SW1hZ2VHZW5lcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwbGF0Zm9ybU1pblRpbWVTZWVrYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6c3RvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
aXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRD
aGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNlZWtJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRl
c3Ryb3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OnZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJl
Zj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0
ZUltYWdlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6cHJl
c2VudGF0aW9uVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmRlY29kZVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkdXJhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OnNpemVJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpkb2Vz
Q01TYW1wbGVCdWZmZXJIYXZlU3luY0luZm8pOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBs
ZUJ1ZmZlclJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudE5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpD
OjpwcmVzZW50YXRpb25TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6OmlzRGl2aXNhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6aXNIb21vZ2VuZW91cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZl
ckFuZFNldEFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhblNldE1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNr
RGF0YTo6Y29uc3VtZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1l
RnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1
ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQ01Db2xvclByaW1hcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9DTVRy
YW5zZmVyRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01ZQ2JDUk1hdHJp
eCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVj
Q29uZmlndXJhdGlvblJlY29yZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFp
dDxDTVNhbXBsZUJ1ZmZlclJlZj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29t
cHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0VmlkZW9G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1
dG9tYXRpY0RlcXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50YXRpb25UaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RHVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVmZmVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnVwZGF0
ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWth
YmxlUmFuZ2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0
dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dX
YXRlclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm9jZXNzU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29t
cHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNz
ZXRXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjph
cHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXApOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRp
b1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y29tcGxldGVGZXRjaERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpyZXN1bWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZp
bmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZp
ZGVvQ29tcHJlc3Npb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OnZ0UHJvZmlsZUxldmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1w
bGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkxvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZyYW1lRHVyYXRpb25Gb3JGcmFtZVJhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJlc2V0cyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNl
Q2xvY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNl
dHVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNv
bmZpZ3VyZU1pY3JvcGhvbmVQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpD
b3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW06CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbToKKwogMjAyMS0wNi0yMSAgSmVhbi1Z
dmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbWV0
aG9kIGluIEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNTliMmE5YmJkMmFl
NzUxZTI2NTJlZjI2N2VlYzZhZDVkOTA3MTVhYi4uMDU2MmJiYzQ3OTJkNjU4YzNiMzZmMTU1NWUw
YjFiNjc3OGMzZjlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEt
MDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBOb3Qg
YWxsIHVzZSBvZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAg
ICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaDogQWRkIG1ldGhvZHMgd2hvc2Ug
ZGVmaW5pdGlvbnMgd2VyZSBzY2F0dGVyZWQgYWNyb3NzCisgICAgICAgIHRoZSBjb2RlLgorICAg
ICAgICAqIHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFs
L2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmg6IFNhbWUgYXMgYWJvdmUuCisgICAgICAgICog
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9U
b29sYm94U29mdExpbmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kcworICAgICAgICAqIHBhbC9jZi9D
b3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg6IEFkZCBtaXNzaW5nIG1ldGhvZHMKKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQg
bWlzc2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAg
ICAgICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBh
bC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIw
MjEtMDYtMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXSBSZW5hbWUgV0tWaXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlciB0byBXS1F1
aWNrTG9va1ByZXZpZXdDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJiYjE0N2U1MzVjOGMwYzE3OTc3
YmJlZDc4N2FiMGU5MDI3OWNiZDAuLjk1ZWFmMGRkMmI5MjZmZWRiY2VjZTJkZmYxMzNiODc1ZGJm
MzY1YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDYtMjMgIEplYW4tWXZlcyBB
dmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBOb3QgYWxsIHVzZSBvZiBBdWRpb1Rv
b2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
Nzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMp
OgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBl
ZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAoV2ViS2l0
Ojp3cmFwcGVyU3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBwZXJWVGFibGUpOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRlcjo6Y29weVByb3BlcnR5KToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxl
Qnl0ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlh
U2FtcGxlQ3Vyc29yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L01lZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5k
QXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEv
Y29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisKIDIwMjEtMDYtMjEg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09T
XSBbV2ViS2l0TGVnYWN5XSBOb24tYWN0aW9uYWJsZSAiTG9vayBVcCIgYWN0aW9uIGFwcGVhcnMg
d2hlbiByaWdodCBjbGlja2luZyBpbWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCA2
YTgyM2Q2MWFkMTAxMDMyYmJlMTk0YTYyYjViNjE1NmQyM2NhYjEyLi4wOWMyZWEzMjljMmMwY2E2
ZWU2ZjdiYTNhMmM0NGFkZjgzNDhlNWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC01
Myw4ICs1Myw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKLQogI2lmICFVU0UoTElCV0VCUlRDKQogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ+IGNyZWF0ZU5vUGVlckNvbm5lY3Rpb25CYWNrZW5kKFJUQ1BlZXJDb25u
ZWN0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9R
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCA0MDBmOWI4ZDE2YjU5M2I0
ODVlMDBjN2Y3OGY1OWRlOThkYzM3ZDlmLi43NDk5NGUyYzUxMDBlY2FiYTYxNTkwZmIxMTgwYWEw
YmMzN2IwZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
bHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBAIC01OCw3ICs1OCw2IEBACiAj
aW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhWYWx1ZUluQ29udGV4dChpZCwgSlNDb250ZXh0
ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDViMTM1YjM5YTVhMGExZDgw
MWJlNjg3OGZiZGZmNjc2NmMyZThhY2UuLmYxYzJhZjMzYzVmYTJhYjZmYzUxNjY5OTgzZmE3MGU3
Njk2NDAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTM3LDggKzM3LDYg
QEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbmNsdWRlICJDb3Jl
VmlkZW9Tb2Z0TGluay5oIgogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIHN0cmVhbURl
c2NyaXB0aW9uKHNpemVfdCBzYW1wbGVSYXRlLCBzaXplX3QgY2hhbm5lbENvdW50KQpAQCAtNzEs
NyArNjksNyBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyhBdWRp
b0J1cyYgYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBt
X2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCkpOworICAgIENNVGltZSBzdGFydFRpbWUgPSBQ
QUw6OkNNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9jdXJyZW50U2V0dGluZ3Muc2FtcGxl
UmF0ZSgpKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoc3RhcnRUaW1l
KTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJhbWVzOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCmluZGV4IDY3
Yjc4ZjQ2YTc4MTE3ODg4ZjAwZDA4OTdkYmE1N2U3YWM1Mzg1MDIuLjMzM2FhMjI0YzcxYTc1MGNk
OWEwZjY5Zjc4M2RkMDE1OTc1MTBhYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0yNiwyMCArMjYsNDYgQEAKIAogI2lm
IFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db21wb25l
bnQuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KKyNpbmNsdWRl
IDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlv
Rm9ybWF0Lmg+Ci0KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Vbml0Lmg+CisjaW5jbHVk
ZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8d3RmL1NvZnRM
aW5raW5nLmg+CiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCkKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgUEFMX0VYUE9SVCkKIAorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJ
bmZvLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlv
Q29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogb3V0U2l6ZSwgQm9vbGVh
biogb3V0V3JpdGFibGUpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBvdXRTaXpl
LCBvdXRXcml0YWJsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Zvcm1hdFBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXplLCBjb25zdCB2b2lk
KiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3Bl
cnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5TcGVjaWZpZXIsIGlv
UHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMs
IChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlv
Q29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0
aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRGlzcG9zZSwgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyKSwgKGluQXVkaW9Db252ZXJ0
ZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5B
dWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUlu
dDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Qcm9wZXJ0eURhdGEpLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVy
dHlEYXRhKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVm
IGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQs
IFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3Bl
cnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0Nv
bnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNv
bnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0
cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERh
dGEsIG91dE91dHB1dERhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBB
dWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAo
QXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJDb21wbGV4
SW5wdXREYXRhUHJvYyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGluSW5wdXREYXRhUHJvY1VzZXJE
YXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1ZGlvQnVmZmVyTGlzdCogb3V0
T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogb3V0UGFja2V0RGVzY3Jp
cHRpb24pLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQcm9jLCBpbklucHV0RGF0YVBy
b2NVc2VyRGF0YSwgaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0T3V0cHV0RGF0YSwgb3V0UGFj
a2V0RGVzY3JpcHRpb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRp
b1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBjaSks
IChjaSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9PdXRwdXRVbml0U3RvcCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9u
ZW50SW5zdGFuY2VEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgaW5J
bnN0YW5jZSksIChpbkluc3RhbmNlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudENvcHlOYW1lLCBPU1N0YXR1cywgKEF1ZGlv
Q29tcG9uZW50IGluQ29tcG9uZW50LCBDRlN0cmluZ1JlZiogb3V0TmFtZSksIChpbkNvbXBvbmVu
dCwgb3V0TmFtZSkpCisKIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21wb25lbnRGZXRjaFNlcnZl
clJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmKiBvdXRCdW5kbGVSZWdpc3RyYXRp
b25zKSwgKG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBdWRpb1Rvb2xib3hD
b3JlLCBBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChD
RkRhdGFSZWYgaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgKGluQnVuZGxlUmVnaXN0cmF0aW9ucyks
IFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkF1ZGlvRmls
ZSksIChpbkF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1
ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCAq
aW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dy
aXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMs
IEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5G
aWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBp
blJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5G
aWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9zZSwgT1NTdGF0dXMsIChFeHRB
dWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRpb0ZpbGUpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVk
aW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiAqaW9Qcm9wZXJ0eURhdGFTaXpl
LCB2b2lkICpvdXRQcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwg
aW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVz
LCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBVSW50MzIgKmlvTnVtYmVyRnJhbWVz
LCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFt
ZXMsIGlvRGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVm
IGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUlu
dDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCAqaW5Qcm9wZXJ0eURhdGEpLCAoaW5F
eHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5
RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
RXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluRmls
ZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxlUmVmICpvdXRFeHRBdWRpb0Zp
bGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVkaW9GaWxlKSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVu
VVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1
ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKKworU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50RmluZE5leHQsIEF1
ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIGNvbnN0IEF1ZGlvQ29t
cG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChpbkNvbXBvbmVudCwgaW5EZXNjKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRp
b0NvbXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFu
Y2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5p
dFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVu
dCBpbkVsZW1lbnQsIHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9EYXRhU2l6ZSksIChpblVuaXQs
IGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0SW5pdGlh
bGl6ZSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwgKGluVW5pdCkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0U2V0UHJvcGVy
dHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklE
LCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgY29u
c3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2Nv
cGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKIAogI2VuZGlmIC8vIFVTRShBVkZP
VU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9v
bGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNv
ZnRMaW5rLmgKaW5kZXggNDllMzJlMTc5NDAzNjNiODQ5Nzc0NDM1YmQyMDk1ZTY0YWI0ODgxYi4u
Zjc0YjE0MDdlMDA3Yjc1MTlkZGM3ODY4ZDIzNTA0ZDU5MmZjMDJlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaApAQCAtMjYsMjcgKzI2
LDEwOCBAQAogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAorI2luY2x1ZGUgPENvcmVBdWRpby9D
b3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCiB0eXBlZGVm
IFVJbnQzMiBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQ7CiB0eXBlZGVmIFVJbnQzMiBBdWRpb0Zv
cm1hdFByb3BlcnR5SUQ7CiB0eXBlZGVmIHN0cnVjdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24gQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uOwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVk
aW9Db252ZXJ0ZXIqIEF1ZGlvQ29udmVydGVyUmVmOwordHlwZWRlZiBzdHJ1Y3QgQXVkaW9CdWZm
ZXJMaXN0IEF1ZGlvQnVmZmVyTGlzdDsKK3R5cGVkZWYgT1NTdGF0dXMgKCpBdWRpb0NvbnZlcnRl
ckNvbXBsZXhJbnB1dERhdGFQcm9jKShBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVy
LAorICAgIFVJbnQzMiogaW9OdW1iZXJEYXRhUGFja2V0cywKKyAgICBBdWRpb0J1ZmZlckxpc3Qq
IGlvRGF0YSwKKyAgICBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiogb3V0RGF0YVBhY2tl
dERlc2NyaXB0aW9uLAorICAgIHZvaWQqIGluVXNlckRhdGEpOworCit0eXBlZGVmIHN0cnVjdCBP
cGFxdWVFeHRBdWRpb0ZpbGUqIEV4dEF1ZGlvRmlsZVJlZjsKK3R5cGVkZWYgc3RydWN0IE9wYXF1
ZUF1ZGlvRmlsZUlEKiBBdWRpb0ZpbGVJRDsKK3R5cGVkZWYgVUludDMyIEF1ZGlvRmlsZVR5cGVJ
RDsKK3R5cGVkZWYgVUludDMyIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQ7Cit0eXBlZGVmIE9TU3Rh
dHVzICgqQXVkaW9GaWxlX1JlYWRQcm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEsCisgICAg
U0ludDY0IGluUG9zaXRpb24sCisgICAgVUludDMyIHJlcXVlc3RDb3VudCwKKyAgICB2b2lkKiBi
dWZmZXIsCisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVk
aW9GaWxlX1dyaXRlUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBp
blBvc2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQsCisgICAgY29uc3Qgdm9pZCogYnVm
ZmVyLAorICAgIFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlwZWRlZiBTSW50NjQgKCpBdWRpb0Zp
bGVfR2V0U2l6ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSk7Cit0eXBlZGVmIE9TU3Rh
dHVzICgqQXVkaW9GaWxlX1NldFNpemVQcm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEsCisg
ICAgU0ludDY0IGluU2l6ZSk7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0NvbXBvbmVudCog
QXVkaW9Db21wb25lbnQ7Cit0eXBlZGVmIHN0cnVjdCBDb21wb25lbnRJbnN0YW5jZVJlY29yZCog
QXVkaW9Db21wb25lbnRJbnN0YW5jZTsKK3R5cGVkZWYgQXVkaW9Db21wb25lbnRJbnN0YW5jZSBB
dWRpb1VuaXQ7Cit0eXBlZGVmIHN0cnVjdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uIEF1ZGlv
Q29tcG9uZW50RGVzY3JpcHRpb247Cit0eXBlZGVmIFVJbnQzMiBBdWRpb1VuaXRQcm9wZXJ0eUlE
OwordHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0U2NvcGU7Cit0eXBlZGVmIFVJbnQzMiBBdWRpb1Vu
aXRFbGVtZW50OwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rv
b2xib3gpCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3hD
b3JlKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJS
ZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJ
RCwgVUludDMyKiBvdXRTaXplLCBCb29sZWFuKiBvdXRXcml0YWJsZSksIChpbkF1ZGlvQ29udmVy
dGVyLCBpblByb3BlcnR5SUQsIG91dFNpemUsIG91dFdyaXRhYmxlKSkKKyNkZWZpbmUgQXVkaW9D
b252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8gc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHlJbmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Nv
bnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Q
cm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlE
YXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXpl
LCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5IHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5CiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcs
IE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZv
cm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9y
bWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3Jt
YXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKICNkZWZpbmUgQXVk
aW9Db252ZXJ0ZXJOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyTmV3CitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0
ZXIpLCAoaW5BdWRpb0NvbnZlcnRlcikpCisjZGVmaW5lIEF1ZGlvQ29udmVydGVyRGlzcG9zZSBz
b2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJEaXNwb3NlCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJTZXRQcm9w
ZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRp
b0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFT
aXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblBy
b3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQogI2RlZmluZSBB
dWRpb0NvbnZlcnRlclNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZl
cnRlclNldFByb3BlcnR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Zvcm1hdFBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXplLCBjb25zdCB2b2lk
KiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3Bl
cnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5TcGVjaWZpZXIsIGlv
UHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUgQXVkaW9Gb3JtYXRH
ZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYg
aW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1
ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAo
aW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRw
dXREYXRhKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcgorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVy
dGVyRmlsbENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRp
b0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyBpbklucHV0RGF0
YVByb2MsIHZvaWQqIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0
YVBhY2tldFNpemUsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1Q
YWNrZXREZXNjcmlwdGlvbiogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5BdWRpb0NvbnZlcnRl
ciwgaW5JbnB1dERhdGFQcm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgaW9PdXRwdXREYXRh
UGFja2V0U2l6ZSwgb3V0T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRpb24pKQorI2RlZmlu
ZSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9B
dWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQsIE9TU3RhdHVzLCAo
QXVkaW9Vbml0IGNpKSwgKGNpKSkKKyNkZWZpbmUgQXVkaW9PdXRwdXRVbml0U3RhcnQgc29mdExp
bmtfQXVkaW9Ub29sYm94X0F1ZGlvT3V0cHV0VW5pdFN0YXJ0CitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RvcCwgT1NTdGF0
dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorI2RlZmluZSBBdWRpb091dHB1dFVuaXRTdG9wIHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb091dHB1dFVuaXRTdG9wCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZURp
c3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbkluc3RhbmNlKSwgKGlu
SW5zdGFuY2UpKQorI2RlZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudENvcHlO
YW1lLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBDRlN0cmluZ1JlZiog
b3V0TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisjZGVmaW5lIEF1ZGlvQ29tcG9uZW50
Q29weU5hbWUgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50Q29weU5hbWUKKwog
U09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3hD
b3JlLCBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChD
RkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAob3V0QnVuZGxlUmVnaXN0cmF0aW9u
cykpCiAjZGVmaW5lIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zIHNvZnRM
aW5rQXVkaW9Ub29sYm94Q29yZUF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25z
CiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eENvcmUsIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywg
KENGRGF0YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVSZWdpc3RyYXRpb25z
KSkKICNkZWZpbmUgQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExp
bmtBdWRpb1Rvb2xib3hDb3JlQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMK
IAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
RmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxlKSwgKGluQXVkaW9G
aWxlKSkKKyNkZWZpbmUgQXVkaW9GaWxlQ2xvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
RmlsZUNsb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCogaW5DbGllbnRE
YXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBp
bldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmls
ZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhp
bnQsIEF1ZGlvRmlsZUlEKiBvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5j
LCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhp
bnQsIG91dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzIHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcworU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bv
c2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVk
aW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlRGlzcG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfRXh0QXVkaW9GaWxlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1
ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3Bl
cnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEp
LCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQ
cm9wZXJ0eURhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSBzb2Z0TGlua19B
dWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywg
KEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyKiBpb051bWJlckZyYW1lcywg
QXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVz
LCBpb0RhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVSZWFkIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9FeHRBdWRpb0ZpbGVSZWFkCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9G
aWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJ
RCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Qcm9wZXJ0eURhdGEp
LCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblBy
b3BlcnR5RGF0YSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5IHNvZnRMaW5rX0F1
ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCwg
T1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldyaXRpbmcsIEV4
dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZvcldyaXRpbmcs
IG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCBz
b2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlECitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlT3Bl
blVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxlUmVmKiBvdXRFeHRB
dWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEV4dEF1ZGlvRmls
ZU9wZW5VUkwgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZU9wZW5VUkwKKworU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9u
ZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQs
IGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChpbkNvbXBvbmVudCwg
aW5EZXNjKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRGaW5kTmV4dCBzb2Z0TGlua19BdWRpb1Rv
b2xib3hfQXVkaW9Db21wb25lbnRGaW5kTmV4dAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVz
LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UqIG91
dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCisjZGVmaW5lIEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2VOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50SW5z
dGFuY2VOZXcKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94
LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRp
b1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVs
ZW1lbnQgaW5FbGVtZW50LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0YVNpemUpLCAoaW5V
bml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQorI2Rl
ZmluZSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0
R2V0UHJvcGVydHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAo
aW5Vbml0KSkKKyNkZWZpbmUgQXVkaW9Vbml0SW5pdGlhbGl6ZSBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9Vbml0SW5pdGlhbGl6ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29w
ZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGluRGF0YSwgVUludDMy
IGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwg
aW5EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5pdFNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9BdWRpb1VuaXRTZXRQcm9wZXJ0eQorCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAK
aW5kZXggMmI3YmEzNDk5NjlkM2I4YjMyZTVlY2JkNjg4YmI0ZjE4MGJkNDA0Zi4uNzE0NTUzYzgz
NmYzY2ExNGIzOWQ2YjdiNjg0NGM0ZDAzZDAxNWZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUg
PENvcmVNZWRpYS9DTUJ1ZmZlclF1ZXVlLmg+CiAjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRl
by5oPgogI2VuZGlmCiAKQEAgLTQ3LDYgKzQ4LDggQEAgU09GVF9MSU5LX0ZSQU1FV09SS19GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tC
dWZmZXJDb3B5RGF0YUJ5dGVzLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlU291cmNl
QnVmZmVyLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgdm9pZCogZGVz
dGluYXRpb24pLCAodGhlU291cmNlQnVmZmVyLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGRl
c3RpbmF0aW9uKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aCwgc2l6
ZV90LCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lk
KiBzb3VyY2VCeXRlcywgQ01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90
IG9mZnNldEludG9EZXN0aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMs
IGRlc3RpbmF0aW9uQnVmZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSwgT1NTdGF0dXMsIChD
TUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRo
ZUJ1ZmZlciwgc2l6ZV90IG9mZnNldCwgc2l6ZV90KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90
KiB0b3RhbExlbmd0aE91dCwgY2hhcioqIGRhdGFQb2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zm
c2V0LCBsZW5ndGhBdE9mZnNldE91dCwgdG90YWxMZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9u
YXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQpAQCAtMTA0LDkgKzEw
Nyw5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJHZXRE
ZWZhdWx0TG9jYWxDZW50ZXIsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCAodm9pZCksICgpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIsIE9TU3RhdHVzLCAo
Q01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ01O
b3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9uLCBj
b25zdCB2b2lkKiBvYmplY3QsIFVJbnQzMiBmbGFncyksIChjZW50ZXIsIGxpc3RlbmVyLCBjYWxs
YmFjaywgbm90aWZpY2F0aW9uLCBvYmplY3QsIGZsYWdzKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlm
aWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2Vu
dGVyUmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJh
Y2sgY2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0
KSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCksIFBB
TF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJl
YWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2Fs
bGJhY2ssIHZvaWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51
bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGlt
aW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3Qg
KnNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9y
LCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFS
ZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWlu
Z0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxl
U2l6ZUFycmF5LCBzQnVmT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNv
cHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVm
LCBzYnVmQ29weU91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0
aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxl
QnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmll
cywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVC
dWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpLCBQQUxfRVhQ
T1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwg
Q01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNr
LCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0Fy
cmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1w
bGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0
YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlS
ZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRy
aWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVB
cnJheSwgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgQ01TYW1wbGVCdWZmZXJSZWYqIHNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1
ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdU
aW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZl
clJlZiBvcmlnaW5hbFNCdWYsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNv
bnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVy
UmVmKiBzQnVmQ29weU91dCksIChhbGxvY2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGlt
aW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIHNCdWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAo
YWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywg
c0J1Zk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZl
ciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYg
aW1hZ2VCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVh
ZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZj
b24sIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3Qg
Q01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1w
bGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0
YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBz
YW1wbGVUaW1pbmcsIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJHZXREZWNvZGVUaW1lU3RhbXAsIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAo
c2J1ZiksIFBBTF9FWFBPUlQpCkBAIC0xMTYsMTQgKzExOSwxNCBAQCBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJH
ZXRQcmVzZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24sIENNVGltZSwgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJH
ZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5LCBDRkFycmF5UmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQm9vbGVh
biBjcmVhdGVJZk5lY2Vzc2FyeSksIChzYnVmLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFBBTF9FWFBP
UlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBD
TVNhbXBsZVRpbWluZ0luZm8gKnRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCAqdGltaW5nQXJy
YXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJy
YXlPdXQsIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWlu
Z0luZm8qIHRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCogdGltaW5nQXJyYXlFbnRyaWVzTmVl
ZGVkT3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWlu
Z0FycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lQ29udmVydFNjYWxl
LCBDTVRpbWUsIChDTVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2NhbGUsIENNVGltZVJvdW5k
aW5nTWV0aG9kIG1ldGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1ldGhvZCksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUsIHNpemVfdCwgKENNU2FtcGxl
QnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXRE
YXRhQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNQmxvY2tCdWZm
ZXJSZWYgYnVmZmVyKSwgKHNidWYsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01HZXRBdHRhY2ht
ZW50LCBDRlR5cGVSZWYsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1Jl
ZiBrZXksIENNQXR0YWNobWVudE1vZGUqIGF0dGFjaG1lbnRNb2RlT3V0KSwgKHRhcmdldCwga2V5
LCBhdHRhY2htZW50TW9kZU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TZXRBdHRhY2htZW50LCB2b2lk
LCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5cGVS
ZWYgdmFsdWUsIENNQXR0YWNobWVudE1vZGUgYXR0YWNobWVudE1vZGUpLCAodGFyZ2V0LCBrZXks
IHZhbHVlLCBhdHRhY2htZW50TW9kZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01SZW1vdmVBdHRhY2htZW50
LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5KSwg
KHRhcmdldCwga2V5KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNs
b2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0
ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJD
bG9jaywgdGltZWJhc2VPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFz
dGVyQ2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVm
IG1hc3RlckNsb2NrLCBDTVRpbWViYXNlUmVmKiB0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1h
c3RlckNsb2NrLCB0aW1lYmFzZU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdldFRpbWUs
IENNVGltZSwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNVGltZWJhc2VHZXRSYXRlLCBGbG9hdDY0LCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSks
ICh0aW1lYmFzZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFJhdGUsIE9TU3RhdHVzLCAo
Q01UaW1lYmFzZVJlZiB0aW1lYmFzZSwgRmxvYXQ2NCByYXRlKSwgKHRpbWViYXNlLCByYXRlKSwg
UEFMX0VYUE9SVCkKQEAgLTE0NCwxMSArMTQ3LDEzIEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFu
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUVucXVldWUsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1
ZSwgQ01CdWZmZXJSZWYgYnVmZmVyKSwgKHF1ZXVlLCBidWZmZXIpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QnVmZmVyUXVldWVJc0VtcHR5LCBCb29sZWFuLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChx
dWV1ZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50LCBDTUl0ZW1D
b3VudCwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENN
QnVmZmVyQ2FsbGJhY2tzICosICgpLCAoKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0
Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNr
cyosICgpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRp
b25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAsIENN
VGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlciwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1
ZXVlLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiByZWZjb24s
IENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIGNvbmRpdGlvbiwgQ01UaW1lIHRpbWUsIENN
QnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgY2FsbGJh
Y2ssIHJlZmNvbiwgY29uZGl0aW9uLCB0aW1lLCB0cmlnZ2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkLCBPU1N0
YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJh
Y2sgdHJpZ2dlckNhbGxiYWNrLCB2b2lkKiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJp
Z2dlckNvbmRpdGlvbiB0cmlnZ2VyQ29uZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmlnZ2VyVGhyZXNo
b2xkLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUs
IHRyaWdnZXJDYWxsYmFjaywgdHJpZ2dlclJlZmNvbiwgdHJpZ2dlckNvbmRpdGlvbiwgdHJpZ2dl
clRocmVzaG9sZCwgdHJpZ2dlclRva2VuT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVl
TWFya0VuZE9mRGF0YSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVl
KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVm
ZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0
YWNobWVudEtleV9Eb05vdERpc3BsYXksIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVNh
bXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYywgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCkBAIC0x
NjgsMzggKzE3Myw0MCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbAogCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VO
b3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQsIENGU3RyaW5nUmVmLCBQQUxf
RVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRp
b24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiAqLCAoQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2ssIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0dXJlQWxsb2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9j
aywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFsbG9jYXRvclJlZiBibG9ja0FsbG9jYXRvciwgY29u
c3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNlKiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6
ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIENNQmxvY2tCdWZmZXJGbGFncyBm
bGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc3RydWN0dXJlQWxsb2Nh
dG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5ndGgsIGJsb2NrQWxsb2NhdG9yLCBjdXN0b21CbG9j
a1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBmbGFncywgYmxvY2tCdWZmZXJPdXQp
LCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFp
bmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90
ICpidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0T3V0
LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0
b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBD
TUJsb2NrQnVmZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5l
ZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0
b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBP
UlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1
ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QqIGJ1ZmZlckxp
c3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3RPdXQsIHNpemVfdCBi
dWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxv
Y2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZm
ZXJSZWYqIGJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBi
dWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1l
bW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldE51bVNhbXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZm
ZXJGb3JSYW5nZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxl
QnVmZmVyUmVmIHNidWYsIENGUmFuZ2Ugc2FtcGxlUmFuZ2UsIENNU2FtcGxlQnVmZmVyUmVmKiBz
QnVmT3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2FtcGxlUmFuZ2UsIHNCdWZPdXQpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVfdCog
c2l6ZUFycmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIChz
YnVmLCBzaXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNOZWVk
ZWRPdXQpLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJs
b2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZl
ck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQgKm1ha2VE
YXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24s
IENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVh
bVBhY2tldERlc2NyaXB0aW9uICpwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVm
ICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJl
YWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1T
YW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpLCBQQUxfRVhQT1JU
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFs
bG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxh
Z3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0
QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRh
dGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlD
YWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24s
IENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51
bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0
aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1h
a2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRT
LCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBs
ZXMsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0
RGVzY3JpcHRpb24qIHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBs
ZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBu
dW1TYW1wbGVzLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIHBhY2tldERlc2NyaXB0aW9ucywgc2Ft
cGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZl
ckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
Q0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1l
bW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogYnVm
ZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9y
LCBmbGFncywgYnVmZmVyTGlzdCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXRPdXRw
dXRQcmVzZW50YXRpb25UaW1lU3RhbXAsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgQ01UaW1lIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzYnVmLCBvdXRwdXRQcmVz
ZW50YXRpb25UaW1lU3RhbXApLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJl
YWR5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBP
UlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVt
Q291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBz
YW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0
IHNpemVfdCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVy
T3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBs
ZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVT
aXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzYW1wbGVCdWZmZXJPdXQpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwg
c2l6ZV90IGxheW91dFNpemUsIGNvbnN0IEF1ZGlvQ2hhbm5lbExheW91dCogbGF5b3V0LCBzaXpl
X3QgbWFnaWNDb29raWVTaXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5
UmVmIGV4dGVuc2lvbnMsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChh
bGxvY2F0b3IsIGFzYmQsIGxheW91dFNpemUsIGxheW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdp
Y0Nvb2tpZSwgZXh0ZW5zaW9ucywgb3V0RGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIGRlc2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSwgUEFM
X0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9y
bWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrLCBDTUNsb2NrUmVmLCAodm9pZCksICgpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNQ2xvY2tHZXRUaW1lLCBDTVRpbWUsIChDTUNsb2NrUmVmIGNsb2NrKSwgKGNsb2Nr
KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1
cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVSQ0FM
TF9OT0VTQ0FQRSBjYWxsYmFjaykoIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01J
dGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQgKnJlZmNvbiksIChzYnVmLCBjYWxs
YmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVh
Y2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF4g
Q01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBD
TUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBP
U1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCogcmVmY29uKSwg
dm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pLCBQQUxfRVhQT1JUKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5k
bGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQpKSwgKHNidWYsIGhhbmRsZXIpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3Rl
Y3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IsIENGU3RyaW5n
UmVmLCBQQUxfRVhQT1JUKQogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2Nr
T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGNs
b2NrT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBDTVRpbWUsIChDTVRpbWUgdGlt
ZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1p
bmltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1l
MiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUsIEJvb2xlYW4sIChDTVRp
bWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFuZ2UsIHRpbWUpLCBQQUxfRVhQT1JUKQog
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSwgUEFMX0VYUE9SVCkKLSNlbmRpZiAvLyBQTEFU
Rk9STShJT1NfRkFNSUxZKQogCiAjaWYgUExBVEZPUk0oTUFDKQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9j
a0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVm
IGRldmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQs
IGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENN
Q2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCksIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UsIHZvaWQqLCAoQ01CYXNl
T2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CYXNl
T2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJh
c2VPYmplY3QpLCAoYmFzZU9iamVjdCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01EZXJpdmVkT2JqZWN0Q3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01CYXNlVlRh
YmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwgQ01CYXNlT2JqZWN0UmVmKiBiYXNl
T2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFzc0lELCBiYXNlT2JqZWN0KSwgUEFMX0VY
UE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaApp
bmRleCA4OGY3Y2Q3YmE5OGRmZjljZGZjYWYxNTgxZTg2Y2ZjY2IyMTAzZGJkLi5iOWU5MTFjYzVk
MGQ5MDhjNmRhNDA2ZDU1ZWQyNjkwNDkzZTUzM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC01MSw2ICs1MSwxMCBAQCBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgsIHNpemVfdAogI2RlZmluZSBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aCBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRl
cywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VCeXRlcywgQ01CbG9ja0J1ZmZlclJlZiBk
ZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldEludG9EZXN0aW5hdGlvbiwgc2l6ZV90IGRh
dGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0aW9uQnVmZmVyLCBvZmZzZXRJbnRvRGVz
dGluYXRpb24sIGRhdGFMZW5ndGgpKQogI2RlZmluZSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFC
eXRlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVy
QXNzdXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIp
LCAodGhlQnVmZmVyKSkKKyNkZWZpbmUgQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5IHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0
YVBvaW50ZXIsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIsIHNpemVfdCBv
ZmZzZXQsIHNpemVfdCogbGVuZ3RoQXRPZmZzZXRPdXQsIHNpemVfdCogdG90YWxMZW5ndGhPdXQs
IGNoYXIqKiBkYXRhUG9pbnRlck91dCksICh0aGVCdWZmZXIsIG9mZnNldCwgbGVuZ3RoQXRPZmZz
ZXRPdXQsIHRvdGFsTGVuZ3RoT3V0LCBkYXRhUG9pbnRlck91dCkpCisjZGVmaW5lIENNQmxvY2tC
dWZmZXJHZXREYXRhUG9pbnRlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERh
dGFQb2ludGVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMsIENGRGljdGlvbmFyeVJlZiwgKENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01Gb3JtYXREZXNjcmlw
dGlvbkdldEV4dGVuc2lvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25H
ZXRFeHRlbnNpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAodm9pZCksICgpKQpAQCAtNjMs
NiArNjcsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLAogI2RlZmluZSBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mbwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHksIEJvb2xlYW4sIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckRhdGFJc1JlYWR5IHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckRhdGFJc1JlYWR5CitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYg
ZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01J
dGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywg
Y29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCogc2FtcGxlU2l6ZUFycmF5LCBDTVNh
bXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwg
Zm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNh
bXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBz
YW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5IHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5CiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lQ29udmVydFNjYWxlLCBDTVRpbWUs
IChDTVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2NhbGUsIENNVGltZVJvdW5kaW5nTWV0aG9k
IG1ldGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1ldGhvZCkpCiAjZGVmaW5lIENNVGltZUNv
bnZlcnRTY2FsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQ29udmVydFNjYWxlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lQWRkLCBDTVRpbWUs
IChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQpAQCAtODcsMjkg
KzkzLDI5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVRpbWVSYW5nZUVxdWFsLCBCb29sZWFuLCAoQ01UaW1lCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2Ft
cGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcywgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMg
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlw
dGlvbkV4dGVuc2lvbkF0b21zKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMywgQ0ZT
dHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1h
dERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19E
Q0lfUDMoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9Q
MyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1Az
KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2Rl
ZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAo
KQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAg
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIw
MjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1LCBDRlN0cmluZ1JlZikKLSNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xv
clByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSgpCisjZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1IGdldF9Db3JlTWVkaWFf
a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdl
VmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3Jt
YXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbygpCisjZGVmaW5lIGtDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvIGdldF9Db3JlTWVkaWFfa0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8oKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lU
VV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCgpCisjZGVmaW5lIGtD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwIGdldF9Db3JlTWVk
aWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAoKQogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRywgQ0ZTdHJpbmdSZWYpCi0jZGVm
aW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVf
Ul8yMTAwX0hMRygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xp
bmVhciwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9u
X2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5z
ZmVyRnVuY3Rpb25fTGluZWFyKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9MaW5lYXIoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8y
MDg0X1BRLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEg
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNj
cmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSgpCisjZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRIGdldF9Db3Jl
TWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRf
UFEoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSwgQ0ZTdHJpbmdS
ZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9TTVBURV9TVF80MjhfMSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJp
eF9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9D
b3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25Z
Q2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Z
Q2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90
ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01Gb3Jt
YXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQgZ2V0
X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50
T3JpZ2luYWxGb3JtYXQoKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdC
LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NN
Rm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fc1JHQigpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9zUkdCIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X3NSR0IoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTVRl
eHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCBnZXRfQ29yZU1lZGlhX2tDTVRleHRNYXJrdXBBbGln
bm1lbnRUeXBlX0VuZCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfTWlkZGxlLCBDRlN0cmluZ1JlZikKQEAg
LTE1MSw3ICsxNTcsNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0LAogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbnZhbGlkLCBDTVRpbWUpCiAj
ZGVmaW5lIGtDTVRpbWVJbnZhbGlkIGdldF9Db3JlTWVkaWFfa0NNVGltZUludmFsaWQoKQogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVaZXJvLCBD
TVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVaZXJvIFBBTDo6Z2V0X0NvcmVNZWRpYV9rQ01UaW1lWmVy
bygpCisjZGVmaW5lIGtDTVRpbWVaZXJvIGdldF9Db3JlTWVkaWFfa0NNVGltZVplcm8oKQogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2
ZUluZmluaXR5LCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5IGdldF9D
b3JlTWVkaWFfa0NNVGltZVBvc2l0aXZlSW5maW5pdHkoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGltZVJhbmdl
KTsKQEAgLTE2OSwxMyArMTc1LDEzIEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyLCBPCiAjZGVmaW5l
IENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90
aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyLCBPU1N0
YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVu
ZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNh
dGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0KSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBu
b3RpZmljYXRpb24sIG9iamVjdCkpCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3Zl
TGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlz
dGVuZXIKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENN
QmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVm
ZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFr
ZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50
cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVt
Q291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5
LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRh
dGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3Jt
YXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxl
VGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZP
dXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01C
bG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZm
ZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtl
RGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRy
aWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXks
IENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0
YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1h
dERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVU
aW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91
dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlckNyZWF0ZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmICpz
YnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNv
cHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVm
LCBzYnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5Ci1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5l
d1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVm
ZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywg
Y29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZm
ZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRl
Q29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
TVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWlu
Z0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENN
U2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChhbGxvY2F0b3IsIG9yaWdpbmFsU0J1Ziwg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIHNCdWZDb3B5T3V0KSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZwotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9y
LCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGlt
aW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdlQnVmZmVy
LCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWlu
ZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwg
Zm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdl
QnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZl
clJlZiBpbWFnZUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURh
dGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFk
eVJlZmNvbiwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBj
b25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYq
IHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBkYXRhUmVhZHksIG1h
a2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRp
b24sIHNhbXBsZVRpbWluZywgc2FtcGxlQnVmZmVyT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJD
cmVhdGVGb3JJbWFnZUJ1ZmZlcgpAQCAtMTkzLDcgKzE5OSw3IEBAIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNl
bnRhdGlvCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0
YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlv
blRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSwgQ0ZBcnJheVJlZiwgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3JlYXRlSWZOZWNlc3NhcnkpLCAoc2J1Ziwg
Y3JlYXRlSWZOZWNlc3NhcnkpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFj
aG1lbnRzQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0
YWNobWVudHNBcnJheQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01T
YW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQgKnRpbWluZ0FycmF5
RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5
T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRp
bWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdBcnJheU91dCwgQ01J
dGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJh
eUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpKQog
I2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFRv
dGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUgc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplCkBAIC0yMDUsNyArMjExLDcgQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2V0QXR0YWNo
bWVudCwgdm9pZCwgKENNQXR0YWNobWUKICNkZWZpbmUgQ01TZXRBdHRhY2htZW50IHNvZnRMaW5r
X0NvcmVNZWRpYV9DTVNldEF0dGFjaG1lbnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRC
ZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFyZ2V0LCBrZXkpKQogI2RlZmlu
ZSBDTVJlbW92ZUF0dGFjaG1lbnQgc29mdExpbmtfQ29yZU1lZGlhX0NNUmVtb3ZlQXR0YWNobWVu
dAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJh
c2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWViYXNlUmVmICp0aW1lYmFzZU91dCks
IChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJD
bG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFz
dGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVy
Q2xvY2ssIHRpbWViYXNlT3V0KSkKICNkZWZpbmUgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJD
bG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jawog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VH
ZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSkKICNk
ZWZpbmUgQ01UaW1lYmFzZUdldFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VHZXRU
aW1lCkBAIC0yMjcsNyArMjMzLDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG8KICNkZWZpbmUg
Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlh
dGVseQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZUNvcHlBc0RpY3Rpb25hcnksIENGRGljdGlvbmFyeVJlZiwgKENNVGltZSB0aW1lLCBDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IpLCAodGltZSwgYWxsb2NhdG9yKSkKICNkZWZpbmUgQ01UaW1lQ29w
eUFzRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQ29weUFzRGljdGlvbmFyeQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uUmVmICpvdXREZXNjKSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERl
c2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIs
IG91dERlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFn
ZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zLCBDTVZpZGVvRGltZW5z
aW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Rlc2MpLCAodmlkZW9EZXNj
KSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucwpAQCAtMjQ5
LDE1ICsyNTUsMTggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwgQ01JdGUKICNkZWZpbmUgQ01CdWZmZXJR
dWV1ZUdldEJ1ZmZlckNvdW50IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0QnVm
ZmVyQ291bnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVm
ZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0Rmly
c3RQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVH
ZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNh
bXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzICosICgpLCAoKSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2Fs
bGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyos
ICgpLCAoKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2Ft
cGxlQnVmZmVycyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0Zv
clVuc29ydGVkU2FtcGxlQnVmZmVycwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAsIENN
VGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmluZSBDTUJ1ZmZl
clF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1
ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyLCBP
U1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2Fs
bGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRp
b24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJp
Z2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBjb25kaXRpb24sIHRpbWUs
IHRyaWdnZXJUb2tlbk91dCkpCisjZGVmaW5lIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlciBz
b2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxU
cmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBx
dWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2FsbGJhY2ssIHZvaWQq
IHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIHRyaWdnZXJDb25k
aXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVyUXVldWVUcmlnZ2Vy
VG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxiYWNrLCB0cmlnZ2Vy
UmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0cmlnZ2VyVG9rZW5P
dXQpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXJXaXRoSW50ZWdlclRocmVz
aG9sZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aElu
dGVnZXJUaHJlc2hvbGQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVl
UmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEg
c29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhCi0KK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0RHVy
YXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQorI2RlZmlu
ZSBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVl
dWVHZXREdXJhdGlvbgogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBDRlN0cmluZ1JlZikKICNk
ZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkgZ2V0X0NvcmVNZWRpYV9r
Q01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5j
LCBDRlN0cmluZ1JlZikKQEAgLTI5NSw0NCArMzA0LDQ2IEBAIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUJ1ZmZlckF0
dGFjCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVP
dXQpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRl
c2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
YyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFz
aWNEZXNjcmlwdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2ssIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0dXJlQWxsb2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9j
aywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFsbG9jYXRvclJlZiBibG9ja0FsbG9jYXRvciwgY29u
c3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNlKiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6
ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIENNQmxvY2tCdWZmZXJGbGFncyBm
bGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc3RydWN0dXJlQWxsb2Nh
dG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5ndGgsIGJsb2NrQWxsb2NhdG9yLCBjdXN0b21CbG9j
a1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBmbGFncywgYmxvY2tCdWZmZXJPdXQp
KQogI2RlZmluZSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1
ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxp
c3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYg
YmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwg
dWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYgKmJsb2NrQnVmZmVyT3V0KSwgKHNidWYs
IGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwg
YmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVm
ZmVyT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVO
ZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxp
c3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJl
ZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiog
YmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxp
c3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxs
b2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdl
dEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVy
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0ZW1Db3VudCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYp
LCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0Umlj
aGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0SXRlbSAqLCAoQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0Umlj
aGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0SXRlbSosIChDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCBzb2Z0TGlua19Db3JlTWVkaWFf
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdAogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ29w
eVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVC
dWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91
dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENN
SXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVfdCogc2l6ZUFycmF5T3V0LCBDTUl0ZW1D
b3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCBzaXplQXJyYXlFbnRyaWVz
LCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNOZWVkZWRPdXQpKQogI2RlZmluZSBDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVTaXplQXJyYXkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3Jp
cHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZl
clJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0
YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkICptYWtlRGF0YVJlYWR5
UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXRE
ZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91
dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywg
c2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVmT3V0KSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0
aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxl
QnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCog
bWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlw
dGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlv
U3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZm
ZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24s
IG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCkpCiAjZGVm
aW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0
aW9ucwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwg
Q0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0
IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2NhdG9y
LCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHBy
ZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiog
cGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwg
KGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHBy
ZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQp
KQorI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3Jp
cHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlX
aXRoUGFja2V0RGVzY3JpcHRpb25zCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlz
dCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVm
U3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50
MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0KSwgKHNidWYsIGJi
dWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0
KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlz
dCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlv
QnVmZmVyTGlzdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5IHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERhdGFSZWFkeQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJl
c2VudGF0aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENN
VGltZSBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0
aW9uVGltZVN0YW1wKSkKKyNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50YXRp
b25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJl
c2VudGF0aW9uVGltZVN0YW1wCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBh
c2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQs
IHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rp
b25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNj
KSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUs
IG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNjKSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01DbG9ja1JlZiwgKHZvaWQpLCAoKSkKLSNkZWZp
bmUgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sgIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0
SG9zdFRpbWVDbG9jaworI2RlZmluZSBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jayBzb2Z0TGlua19D
b3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0VGltZSwgQ01UaW1lLCAoQ01DbG9ja1Jl
ZiBjbG9jayksIChjbG9jaykpCi0jZGVmaW5lIENNQ2xvY2tHZXRUaW1lICBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01DbG9ja0dldFRpbWUKKyNkZWZpbmUgQ01DbG9ja0dldFRpbWUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9O
T0VTQ0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1D
b3VudCBpbmRleCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVmY29uKSwgKHNidWYsIGNhbGxiYWNr
LCByZWZjb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJh
Y2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZv
aWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSkKICNk
ZWZpbmUgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBs
ZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXiBDTVNBTVBM
RUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRlbUNv
dW50KSksIChzYnVmLCBoYW5kbGVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF5DTVNBTVBMRUJVRkZFUkNB
TExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChz
YnVmLCBoYW5kbGVyKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2Ft
cGxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1w
bGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xv
Y2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFs
bG9jYXRvciwgY2xvY2tPdXQpKQogI2RlZmluZSBDTUF1ZGlvQ2xvY2tDcmVhdGUgc29mdExpbmtf
Q29yZU1lZGlhX0NNQXVkaW9DbG9ja0NyZWF0ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwg
Q01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiAjZGVmaW5lIENNVGltZU1heGltdW0gc29m
dExpbmtfQ29yZU1lZGlhX0NNVGltZU1heGltdW0KQEAgLTM0NCwxOCArMzU1LDE2IEBAIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUNvbnRh
aW5zVGltZSwgQm9vbGVhbiwKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogI2RlZmluZSBrQ01UaW1lSW5kZWZp
bml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRlKCkKIAotI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0KICNpZiBQTEFURk9STShNQUMpCiAKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9T
U3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQs
IENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCkp
Ci0jZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSAgc29mdExpbmtfQ29yZU1lZGlhX0NN
QXVkaW9EZXZpY2VDbG9ja0NyZWF0ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiogY2xv
Y2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSkKKyNkZWZpbmUgQ01BdWRp
b0RldmljZUNsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRGV2aWNlQ2xvY2tD
cmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJh
c2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9i
amVjdCksIChiYXNlT2JqZWN0KSkKLSNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3Jh
Z2UgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UK
KyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Ugc29mdExpbmtfQ29yZU1lZGlh
X0NNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VW
VGFibGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCkpCi0jZGVm
aW5lIENNQmFzZU9iamVjdEdldFZUYWJsZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VP
YmplY3RHZXRWVGFibGUKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0VlRhYmxlIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRPYmplY3RDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFibGUqIHZUYWJsZSwgQ01CYXNl
Q2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIGJhc2VPYmplY3QpLCAoYWxsb2NhdG9y
LCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3QpKQotI2RlZmluZSBDTURlcml2ZWRPYmplY3RD
cmVhdGUgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCisjZGVm
aW5lIENNRGVyaXZlZE9iamVjdENyZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVkT2Jq
ZWN0Q3JlYXRlCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggZjUxY2JiYjE2
NjYzYjgxZWNlMjAxZThhZDU3MjVjMjUxMjFmNTZmYi4uNzJmNDExNGVlYWFkZjYyMGNlMzcwMjMw
OTk0NzY2YjQ4Yzc5NWIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9W
aWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9W
aWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTM0LDEzICszNCwxOSBAQCBTT0ZUX0xJTktfRlJB
TUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBWaWRlb1Rvb2xib3gsIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSwgQ0ZTdHJpbmdSZWYpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24sIENGU3RyaW5nUmVm
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVy
dHlLZXlfQXZlcmFnZUJpdFJhdGUsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJv
ZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Uo
UEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFy
ZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRf
QmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1Jf
U09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9M
ZXZlbCwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZp
ZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3RyaW5n
UmVmKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwg
VlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBj
b2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9u
YXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJl
c3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxs
YmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVm
KiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2Rl
Y1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMs
IGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tS
ZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1l
cywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBDTVRpbWUgY29t
cGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzZXNzaW9uLCBjb21wbGV0ZVVudGls
UHJlc2VudGF0aW9uVGltZVN0YW1wKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lLCBPU1N0YXR1
cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENWSW1hZ2VCdWZmZXJSZWYgaW1h
Z2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSBkdXJhdGlvbiwg
Q0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGllcywgdm9pZCogc291cmNlRnJhbWVSZWZjb24s
IFZURW5jb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAoc2Vzc2lvbiwgaW1hZ2VCdWZmZXIs
IHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24sIGZyYW1lUHJvcGVydGllcywgc291cmNl
RnJhbWVSZWZjb24sIGluZm9GbGFnc091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVG
cmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNz
aW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBW
VENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUsIHZvaWQsIChWVENvbXByZXNzaW9uU2Vzc2lv
blJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJveCwgVlRSZXN0cmljdFZpZGVv
RGVjb2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0cmljdGlvbnMgcmVzdHJpY3Rp
b25GbGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dlZENvZGVjVHlwZUxpc3QsIENN
SXRlbUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0cmljdGlvbkZsYWdzLCBhbGxv
d2VkQ29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgUEFMX0VYUE9SVCkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGlu
ay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCmlu
ZGV4IGVjMGZmMDFjYzFmZTFhMjEwNmNjN2E3ZjAyZThjODRiN2RkMGRhODQuLjYwYThmZjM3NDJk
NDk2MTA3YjE0ZmFjN2M0MTM3M2FiYzZkNjk0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTM3LDkgKzM3LDIwIEBAIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lv
blByb3BlcnR5S2V5X01heEtlCiAjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4
S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24oKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQogI2RlZmluZSBrVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X1JlYWxUaW1lIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9S
ZWFsVGltZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJv
eCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgQ0ZTdHJpbmdSZWYp
CisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUgZ2V0X1Zp
ZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlKCkKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwoKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlv
bl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLCBDRlN0cmluZ1JlZikKICNk
ZWZpbmUga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJh
dGVkVmlkZW9FbmNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNh
dGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyKCkKK1NPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2
NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2
ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2
ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVs
LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2
ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCgp
CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJv
ZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRQ
cm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2Zp
bGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsKCkKKwogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9T
U3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90
IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNv
ZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmli
dXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Np
b25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZD
b24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxs
b2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBz
b3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRw
dXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkp
CiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlIHNvZnRMaW5rX1ZpZGVvVG9vbGJv
eF9WVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZQpAQCAtNDksNiArNjAsOCBAQCBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Np
b25FbmNvZGVGcmFtZQogI2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lIHNv
ZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNl
c3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKICNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Np
b25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Np
b25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlLCB2
b2lkLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKKyNkZWZp
bmUgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9W
VENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUKIAogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9G
QUlMX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUUmVzdHJpY3RWaWRlb0RlY29kZXJz
LCBPU1N0YXR1cywgKFZUVmlkZW9EZWNvZGVyUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uRmxhZ3Ms
IGNvbnN0IENNVmlkZW9Db2RlY1R5cGUqIGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBDTUl0ZW1Db3Vu
dCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCAocmVzdHJpY3Rpb25GbGFncywgYWxsb3dlZENvZGVj
VHlwZUxpc3QsIGFsbG93ZWRDb2RlY1R5cGVDb3VudCkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggNjc0ZTY0
OTRhMGE4YjU5NjkwM2UzY2E1Y2ZiNmEyM2RkYWMzNjM4Yy4uZDQ0NDkzMWVmZDhhZTU1NjBiOGMx
YjI3ZjIyYWQ5MmU3OTM0ODVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKQEAgLTQxLDYgKzQxLDEwIEBAIFNPRlRf
TElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFU
b29sYm94LCBNVF9HZXRTaG91CiAKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBrTVRTdXBwb3J0Tm90aWZpY2F0aW9u
X1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRh
cCksICh0YXApKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBNZWRpYVRvb2xi
b3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8sIE9TU3RhdHVzLCAoTVRBdWRp
b1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1iZXJGcmFtZXMsIEF1ZGlvQnVm
ZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFn
c091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01JdGVtQ291bnQgKm51bWJlckZyYW1l
c091dCksICh0YXAsIG51bWJlckZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgdGlt
ZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlM
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3Qg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3Np
bmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0
KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSwgUEFMX0VYUE9SVCkKKwog
I2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCiAKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBrTVRQbHVnaW5Gb3JtYXRS
ZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKaW5k
ZXggYzdkZTAyY2U2M2MyYzMwMGQ5NjU0ZjY2NzBiZmMxMjUwMjI5MzQ0ZS4uMjU1YTc2N2I1NWVl
ZjRlOGVlZDE5ZGVmMjk3MTc4NDkwYmU5M2YxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaApAQCAtNDEsNiArNDEsMTMgQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gs
IE1UX0dldFNob3VsZFBsYXlIRFJWaWQKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnROb3RpZmljYXRpb25fU2hvdWxk
UGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYpCiAKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3Jh
Z2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKSwgKHRhcCkpCisjZGVmaW5l
IE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSBzb2Z0TGlua19NZWRpYVRvb2xib3hfTVRB
dWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywg
T1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJl
ckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1D
b3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5P
dXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCisjZGVmaW5lIE1U
QXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8gc29mdExpbmtfTWVkaWFUb29sYm94X01U
QXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8KK1NPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENy
ZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Q
cm9jZXNzaW5nVGFwQ2FsbGJhY2tzKiBjYWxsYmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3Jl
YXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYqIHRhcE91dCksIChhbGxv
Y2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwQ3JlYXRlIHNvZnRMaW5rX01lZGlhVG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcENy
ZWF0ZQorCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFBsdWdpbkZvcm1hdFJlYWRl
clByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDU1MjRlZWM1NTg3ZDFlOTE3MGVmOWYxNDkyY2MwN2RlMjVjODBlYzcuLmM1NjJiZTc2MzVl
YTZhMTU4NDA4MzNhYmMyZTE5MTAxMGNjMzE3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMzUwLDcgKzM1MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChEb2N1bWVudCk7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Ci11c2lu
ZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdURjo6VW5pY29kZTsKIAogc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRlcHRoID0gMjE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDlmNTU2MDgwMmJhYzMyYmI0OTll
Yzk3YzliMGFlMzJlMTFjNjIxYzcuLjg1MGNkZTcyNzBmMGQ2MWRjMjU0NDljMWRhODlhNDlhMWFm
NDM2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0x
MDksNyArMTA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoSFRNTENhbnZhc0VsZW1lbnQpOwogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogLy8gVGhlc2UgdmFsdWVzIGNvbWUgZnJvbSB0aGUg
V2hhdFdHL1czQyBIVE1MIHNwZWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAppbmRleCBlMDUxNmE0YWYyNWQyYjVhNGQ0OTRjZTQzNTA5Njg0MTQxYjY3ZDllLi42YWMy
ZGZiOWRkNjRmMGYzZmMwZDBlZjVmYzUxMTU5MWQyNWYwYmFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE5MCw4ICsxOTAsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MTWVkaWFFbGVtZW50KTsK
IAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIGNvbnN0IFNlY29uZHMgU2Vla1JlcGVh
dERlbGF5IHsgMTAwX21zIH07CiBzdGF0aWMgY29uc3QgZG91YmxlIFNlZWtUaW1lID0gMC4yOwog
c3RhdGljIGNvbnN0IFNlY29uZHMgU2NhblJlcGVhdERlbGF5IHsgMS41X3MgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNv
Y29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJl
YWRlckNvY29hLmNwcAppbmRleCBmZDNkM2UwM2EwM2YwODEwNTIxMjg2YmQwMjZhOTEwMTExZDNj
Yzg0Li41ZDU2YjllZTFhMGQzZDY3YTc5YzMwNzYxZDEzODE1ZDdjMDY0NGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2Nv
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxl
UmVhZGVyQ29jb2EuY3BwCkBAIC0zNiwyNSArMzYsMTMgQEAKICNpbmNsdWRlICJBdWRpb0ZpbGVS
ZWFkZXIuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CiAjaW5jbHVk
ZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDxwYWwvY2YvQXVk
aW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4K
ICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
IAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+
Ci0KLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29sYm94KQotU09GVF9MSU5LKEF1ZGlvVG9v
bGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUp
LCAoaW5BdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3Blbldp
dGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVh
ZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9G
aWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNl
dFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpv
dXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5H
ZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkp
Ci1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywg
KEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCi1TT0ZU
X0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChF
eHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Q
cm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCAqb3V0UHJvcGVydHlE
YXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwg
b3V0UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJl
YWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBVSW50MzIgKmlv
TnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwg
aW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRp
b0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0Zp
bGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0
eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwg
aW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKLVNPRlRf
TElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMs
IChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmls
ZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1
ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBP
U1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmls
ZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gQXVkaW9CdWZmZXJMaXN0KiB0cnlDcmVh
dGVBdWRpb0J1ZmZlckxpc3Qoc2l6ZV90IG51bWJlck9mQnVmZmVycykKQEAgLTEwMywyMiArOTEs
MjIgQEAgQXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIoY29uc3Qgdm9pZCogZGF0YSwg
c2l6ZV90IGRhdGFTaXplKQogICAgIDogbV9kYXRhKGRhdGEpCiAgICAgLCBtX2RhdGFTaXplKGRh
dGFTaXplKQogewotICAgIGlmIChBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyh0aGlzLCByZWFk
UHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmlsZUlEKSAhPSBub0VycikKKyAg
ICBpZiAoUEFMOjpBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwg
Z2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmlsZUlEKSAhPSBub0VycikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRChtX2F1ZGlvRmlsZUlE
LCBmYWxzZSwgJm1fZXh0QXVkaW9GaWxlUmVmKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRB
dWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQobV9hdWRpb0ZpbGVJRCwgZmFsc2UsICZtX2V4dEF1ZGlv
RmlsZVJlZikgIT0gbm9FcnIpCiAgICAgICAgIG1fZXh0QXVkaW9GaWxlUmVmID0gMDsKIH0KIAog
QXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKCkKIHsKICAgICBpZiAobV9leHRBdWRp
b0ZpbGVSZWYpCi0gICAgICAgIEV4dEF1ZGlvRmlsZURpc3Bvc2UobV9leHRBdWRpb0ZpbGVSZWYp
OworICAgICAgICBQQUw6OkV4dEF1ZGlvRmlsZURpc3Bvc2UobV9leHRBdWRpb0ZpbGVSZWYpOwog
CiAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwogCiAgICAgaWYgKG1fYXVkaW9GaWxlSUQpCi0g
ICAgICAgIEF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOworICAgICAgICBQQUw6OkF1ZGlv
RmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwogCiAgICAgbV9hdWRpb0ZpbGVJRCA9IDA7CiB9CkBA
IC0xNTUsNyArMTQzLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0
ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKIAogICAgIC8vIEdldCBmaWxl
J3MgZGF0YSBmb3JtYXQKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtX2ZpbGVEYXRhRm9ybWF0
KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtF
eHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlRGF0YUZvcm1hdCwgJnNpemUsICZtX2ZpbGVEYXRhRm9y
bWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4
dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6
ZSwgJm1fZmlsZURhdGFGb3JtYXQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzID0gbV9maWxlRGF0YUZvcm1hdC5tQ2hhbm5l
bHNQZXJGcmFtZTsKQEAgLTE2Myw3ICsxNTEsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmls
ZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAg
IC8vIE51bWJlciBvZiBmcmFtZXMKICAgICBTSW50NjQgbnVtYmVyT2ZGcmFtZXM2NCA9IDA7CiAg
ICAgc2l6ZSA9IHNpemVvZihudW1iZXJPZkZyYW1lczY0KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxl
R2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxl
TGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVzNjQpICE9IG5vRXJyIHx8IG51bWJl
ck9mRnJhbWVzNjQgPD0gMCkKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSht
X2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVMZW5ndGhGcmFtZXMs
ICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIgfHwgbnVtYmVyT2ZGcmFtZXM2NCA8
PSAwKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRvdWJsZSBmaWxlU2FtcGxlUmF0
ZSA9IG1fZmlsZURhdGFGb3JtYXQubVNhbXBsZVJhdGU7CkBAIC0xODUsNyArMTczLDcgQEAgUmVm
UHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRl
LCBib29sIG1peFRvTW9ubykKICAgICBpZiAoc2FtcGxlUmF0ZSkKICAgICAgICAgbV9jbGllbnRE
YXRhRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsKIAotICAgIGlmIChFeHRBdWRpb0Zp
bGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0Ns
aWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pLCAmbV9j
bGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVTZXRQ
cm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0NsaWVudERh
dGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pLCAmbV9jbGllbnRE
YXRhRm9ybWF0KSAhPSBub0VycikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBD
aGFuZ2UgbnVtYmVyT2ZGcmFtZXM2NCB0byBkZXN0aW5hdGlvbiBzYW1wbGUtcmF0ZQpAQCAtMjQz
LDcgKzIzMSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMo
ZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAKICAgICAvLyBSZWFkIGZyb20gdGhl
IGZpbGUgKG9yIGluLW1lbW9yeSB2ZXJzaW9uKQogICAgIFVJbnQzMiBmcmFtZXNUb1JlYWQgPSBu
dW1iZXJPZkZyYW1lczsKLSAgICBpZiAoRXh0QXVkaW9GaWxlUmVhZChtX2V4dEF1ZGlvRmlsZVJl
ZiwgJmZyYW1lc1RvUmVhZCwgYnVmZmVyTGlzdCkgIT0gbm9FcnIpIHsKKyAgICBpZiAoUEFMOjpF
eHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAmZnJhbWVzVG9SZWFkLCBidWZmZXJM
aXN0KSAhPSBub0VycikgewogICAgICAgICBkZXN0cm95QXVkaW9CdWZmZXJMaXN0KGJ1ZmZlckxp
c3QpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaApp
bmRleCBiN2I5MTYzYjU2ZTI2YzI5Y2FiODRlZTI0NzY5ZTI5NzE0MTdhZmZjLi4wYmJiYmEyNzg1
N2Q5NzllY2M2ODhmODdmMDMzOWY2NjVlZjQyNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKQEAg
LTMxLDEwICszMSwxMiBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAotI2luY2x1ZGUgPEF1
ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRB
dWRpb0ZpbGUuaD4KKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKK3VzaW5nIEV4dEF1ZGlvRmlsZVJlZiA9IHN0cnVjdCBPcGFx
dWVFeHRBdWRpb0ZpbGUqOwordXNpbmcgQXVkaW9GaWxlSUQgPSBzdHJ1Y3QgT3BhcXVlQXVkaW9G
aWxlSUQqOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvQnVzOwpAQCAtNTgs
NyArNjAsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHZvaWQqIG1fZGF0YSA9IHsgbnVsbHB0ciB9
OwogICAgIHNpemVfdCBtX2RhdGFTaXplID0geyAwIH07CiAKLSAgICBBdWRpb0ZpbGVJRCBtX2F1
ZGlvRmlsZUlEID0geyAwIH07CisgICAgQXVkaW9GaWxlSUQgbV9hdWRpb0ZpbGVJRCA9IHsgbnVs
bHB0ciB9OwogICAgIEV4dEF1ZGlvRmlsZVJlZiBtX2V4dEF1ZGlvRmlsZVJlZiA9IHsgbnVsbHB0
ciB9OwogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1fZmlsZURhdGFGb3JtYXQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091
dHB1dFVuaXRBZGFwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCmluZGV4IDQ3ODc1MDcyYTc4NmVkNjg2YzFkNDAx
ZTgyZTYyNTljYTIzYzU0YjYuLjE0OGIwNTVkYmVjODk0M2VhNWFhYzY4ZTY4NThkZTdkMGI4MjMx
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
T3V0cHV0VW5pdEFkYXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNp
ZiBFTkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRM
aW5rLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6
QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCkBAIC0z
OSwxMiArNDEsMTIgQEAgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRh
cHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCiBBdWRpb091dHB1dFVuaXRBZGFwdG9y
Ojp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcigpCiB7CiAgICAgaWYgKG1fb3V0cHV0VW5pdCkKLSAg
ICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9vdXRwdXRVbml0KTsKKyAgICAg
ICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX291dHB1dFVuaXQpOwogfQog
CiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCgpCiB7Ci0gICAgYXV0byBy
ZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1dFVuaXQpOworICAgIGF1dG8gcmVz
dWx0ID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1dFVuaXQpOwogICAgIGlmIChy
ZXN1bHQgIT0gbm9FcnIpCiAgICAgICAgIFdURkxvZ0Fsd2F5cygiRVJST1I6IEF1ZGlvT3V0cHV0
VW5pdFN0YXJ0KCkgY2FsbCBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlbGQiLCBzdGF0aWNfY2Fz
dDxsb25nPihyZXN1bHQpKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNTIsNyArNTQsNyBAQCBP
U1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCgpCiAKIE9TU3RhdHVzIEF1ZGlv
T3V0cHV0VW5pdEFkYXB0b3I6OnN0b3AoKQogewotICAgIHJldHVybiBBdWRpb091dHB1dFVuaXRT
dG9wKG1fb3V0cHV0VW5pdCk7CisgICAgcmV0dXJuIFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcCht
X291dHB1dFVuaXQpOwogfQogCiAvLyBEZWZhdWx0T3V0cHV0VW5pdCBjYWxsYmFjawpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZm
ZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyTGlzdC5jcHAKaW5kZXggZmRmNjc3NTdkMWI0Nzc2MDgwOGIxM2ZiNDM0ZTQwYjNk
ZmQzMGUwNC4uNGU5MDY0ZDBjNmU5MzA4OWFlMGVhYTZmOTk4ZWNkNjUzNzM1ZDFlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZm
ZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b1NhbXBsZUJ1ZmZlckxpc3QuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiVmVjdG9y
TWF0aC5oIgogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxlcmF0ZS5oPgogI2luY2x1ZGUgPEF1
ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgorI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xi
b3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0yNzIsNyArMjczLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJM
aXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKIAog
ICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBpbnB1dEZvcm1hdDsKICAgICBVSW50MzIg
cHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihpbnB1dEZvcm1hdCk7Ci0gICAgQXVkaW9Db252ZXJ0
ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVh
bURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlucHV0Rm9ybWF0KTsKKyAgICBQQUw6
OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJy
ZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZpbnB1dEZvcm1h
dCk7CiAgICAgQVNTRVJUKGZyYW1lQ291bnQgPD0gc291cmNlLm1CdWZmZXJzWzBdLm1EYXRhQnl0
ZVNpemUgLyBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpOwogCiAgICAgQXVkaW9Db252ZXJ0
ZXJGcm9tQUJMQ29udGV4dCBjb250ZXh0IHsgc291cmNlLCBmcmFtZUNvdW50LCBpbnB1dEZvcm1h
dC5tQnl0ZXNQZXJQYWNrZXQgfTsKQEAgLTI4MCw3ICsyODEsNyBAQCBPU1N0YXR1cyBBdWRpb1Nh
bXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBz
aXplX3QgZgogI2lmICFMT0dfRElTQUJMRUQKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24gb3V0cHV0Rm9ybWF0OwogICAgIHByb3BlcnR5RGF0YVNpemUgPSBzaXplb2Yob3V0cHV0Rm9y
bWF0KTsKLSAgICBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29u
dmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwg
Jm91dHB1dEZvcm1hdCk7CisgICAgUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNvbnZl
cnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJv
cGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CiAKICAgICBBU1NFUlQoQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uKG91dHB1dEZvcm1hdCkubnVtYmVyT2ZDaGFubmVsU3RyZWFtcygpID09IG1f
YnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKSk7CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8
IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKTsgKytpKSB7CkBAIC0yOTAsNyArMjkxLDcgQEAg
T1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZl
ckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNlbmRpZgogCiAgICAgVUludDMyIHNhbXBsZXNDb252
ZXJ0ZWQgPSBtX3NhbXBsZUNhcGFjaXR5OwotICAgIE9TU3RhdHVzIGVyciA9IEF1ZGlvQ29udmVy
dGVyRmlsbENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRpb0NvbnZlcnRlckZyb21BQkxDYWxs
YmFjaywgJmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBtX2J1ZmZlckxpc3QtPmxpc3QoKSwg
bnVsbHB0cik7CisgICAgT1NTdGF0dXMgZXJyID0gUEFMOjpBdWRpb0NvbnZlcnRlckZpbGxDb21w
bGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ2FsbGJhY2ssICZjb250
ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0LT5saXN0KCksIG51bGxwdHIpOwog
ICAgIGlmICghZXJyIHx8IGVyciA9PSBrUmFuT3V0T2ZJbnB1dERhdGFTdGF0dXMpIHsKICAgICAg
ICAgbV9zYW1wbGVDb3VudCA9IHNhbXBsZXNDb252ZXJ0ZWQ7CiAgICAgICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1w
bGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IGU1ZWM0Nzc3ODU4MWE3YWNmMGU3MjU1MzMzZjll
MjY5NDFjNDcyZDEuLmQyYjVhYzQ1ZjMwZmQ0YTNhZjUxYjQyMGRlMzc2NDliMTE1MWMyMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxl
RGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTQyLDcgKzQyLDYgQEAKICNpbXBvcnQgPHBhbC9j
Zi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogUmVmPEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZT4gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoc2l6ZV90IG1heGltdW1TYW1wbGVD
b3VudCwgTG9nZ2VySGVscGVyJiBsb2dnZXJIZWxwZXIsIHNpemVfdCB3YWl0VG9TdGFydEZvclB1
c2hDb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCmluZGV4IDg5ZWNlZWQ2MWNiMTliZmQ3ZDQyMGM3
NzhhYWExMjBhYzM1NmRiZmQuLjMwZGViMmU0Yzc0MWRmNTQ4OGIzOGY1ZWQ1OWVlYmU1YTAyODli
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1
ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgPHBh
bC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBu
YW1lc3BhY2UgUEFMOwogCiBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChj
b25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCkKICAgICA6IG1fYnl0ZXNQZXJG
cmFtZShmb3JtYXQuYnl0ZXNQZXJGcmFtZSgpKQpAQCAtMTE2LDcgKzExNSw3IEBAIFdlYkF1ZGlv
QnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZm9ybWF0LCBDCiAgICAgICAgIHJldHVybjsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYg
YnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9FcnIgPT0gQ01TYW1wbGVCdWZmZXJHZXRBdWRp
b0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1wbGVCdWZmZXIsIG51bGxwdHIs
IG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6ZSwga0NGQWxsb2NhdG9yU3lz
dGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NNU2FtcGxlQnVmZmVyRmxh
Z19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50LCAmYnVmZmVyKSkKKyAgICBp
ZiAobm9FcnIgPT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRh
aW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwgbnVsbHB0ciwgbV9jYW5vbmljYWxMaXN0Lmdl
dCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ0ZBbGxv
Y2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJGbGFnX0F1ZGlvQnVmZmVyTGlzdF9B
c3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpKQogICAgICAgICBtX2Jsb2NrQnVmZmVyID0g
YWRvcHRDRihidWZmZXIpOwogCiAgICAgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9T
LmNwcAppbmRleCAyZTk2MzBmYjYwZjIyYjNlZTU2ZDI0MmQ3MzA0MzQ4NmI4N2I1NjJmLi5mODkx
MDdmZmIxYzNmNTNiZTMxOWFhMzg2ODE0Nzc0YmI0ZDI3YTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFk
YXB0b3JJT1MuY3BwCkBAIC0zMywxNSArMzMsNyBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pICYm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKLSNpbmNs
dWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xi
b3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRp
b0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBv
bmVudERlc2NyaXB0aW9uICppbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCi1TT0ZUX0xJ
TksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1
ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlICpvdXRJbnN0
YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0QWRkUHJvcGVydHlMaXN0ZW5lciwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5V
bml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFByb3BlcnR5TGlzdGVuZXJQ
cm9jIGluUHJvYywgdm9pZCAqaW5Qcm9jVXNlckRhdGEpLCAoaW5Vbml0LCBpbklELCBpblByb2Ms
IGluUHJvY1VzZXJEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQg
aW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQs
IHZvaWQgKm91dERhdGEsIFVJbnQzMiAqaW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2Nv
cGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29s
Ym94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAo
aW5Vbml0KSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBP
U1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVk
aW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZv
aWQgKmluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBp
bkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9v
bGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsMTUgKzUwLDE1
IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJl
U2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5jb21wb25lbnRNYW51ZmFjdHVy
ZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAgIGRlc2MuY29tcG9uZW50Rmxh
Z3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0gMDsKLSAgICBjb21wID0gQXVk
aW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAgY29tcCA9IFBBTDo6QXVkaW9Db21w
b25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQoY29tcCk7CiAKLSAgICBPU1N0
YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGNvbXAsICZtX291dHB1dFVu
aXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBVSW50
MzIgZmxhZyA9IDE7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRV
bml0LAorICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0
LAogICAgICAgICBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sCiAgICAgICAgIGtB
dWRpb1VuaXRTY29wZV9PdXRwdXQsCiAgICAgICAgIDAsCkBAIC03NCwyMCArNjYsMjAgQEAgdm9p
ZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1wbGVS
YXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICAgICAgc2l6ZW9mKGZsYWcpKTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5p
dCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7
CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogICAgIC8vIFNldCByZW5kZXIgY2FsbGJhY2sKICAgICBB
VVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlucHV0LmlucHV0UHJvYyA9IGlucHV0
UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlzOwotICAgIHJlc3VsdCA9IEF1
ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJl
bmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlu
cHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3Bl
X0lucHV0LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsK
IAogICAgIC8vIFNldCBzdHJlYW0gZm9ybWF0CiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uIHN0cmVhbUZvcm1hdDsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbik7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9v
dXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOworICAgIHJlc3VsdCA9
IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVy
dHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVh
bUZvcm1hdCwgJnNpemUpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIGNvbnN0ZXhwciBp
bnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsKQEAgLTEwMSw3ICs5Myw3IEBAIHZv
aWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxl
UmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgc3RyZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1l
ID0gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKICAgICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFu
bmVsID0gYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0OwogCi0gICAgcmVzdWx0ID0gQXVkaW9V
bml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9y
bWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXpl
b2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1G
b3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNp
emVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7
CiAKICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJT
aXplKGtQcmVmZXJyZWRCdWZmZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcApp
bmRleCBjOGVkM2VmNzhjOGM2YTNiMWUwNzBjYjQ0MDU5NjlhZGE0YWMzZGEyLi43MTRjY2U4ODYy
NTc1MTg2MWQ1ZTJiODUxMzEzYTg5ZDA0MTJlYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1hYy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JN
YWMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1
ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+CisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9v
bGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDgsMjEgKzQ5LDIx
IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJl
U2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5jb21wb25lbnRNYW51ZmFjdHVy
ZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAgIGRlc2MuY29tcG9uZW50Rmxh
Z3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0gMDsKLSAgICBjb21wID0gQXVk
aW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAgY29tcCA9IFBBTDo6QXVkaW9Db21w
b25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQoY29tcCk7CiAKLSAgICBPU1N0
YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGNvbXAsICZtX291dHB1dFVu
aXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1
bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0gUEFM
OjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQp
OwogCiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1
Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0gaW5wdXRQcm9jOwogICAgIGlucHV0Lmlu
cHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHko
bV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRp
b1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0
ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9w
ZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmlucHV0
LCBzaXplb2YoaW5wdXQpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICAvLyBTZXQgc3Ry
ZWFtIGZvcm1hdApAQCAtNzksNyArODAsNyBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6
OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAg
IHN0cmVhbUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7
CiAgICAgc3RyZWFtRm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9IGJpdHNQZXJCeXRlICogYnl0ZXNQ
ZXJGbG9hdDsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5p
dCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0
LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbikpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRV
bml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5w
dXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKaW5kZXggYTUzMzMyY2Y3ZGJkNjQ2
NmY0NGY1NzZkMWNkN2FkZTc2MTUwYWE0Zi4uNzg0NzRkOGU1YTVhYzA3MDM1MzM1OTkwY2RkZjhh
ZmNkODA1NjE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVk
aWFVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmNwcApAQCAtMzMsMTMgKzMzLDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25S
ZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1h
Z2ljQ29va2llKQogewogICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0
IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3Jp
cHRpb24oKS5kZXNjcmlwdGlvbik7CiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXQg
PSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbWFn
aWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgYXV0byBl
cnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIG1hZ2ljQ29va2llU2l6ZSwgbWFn
aWNDb29raWUsIG51bGxwdHIsICZmb3JtYXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBM
T0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTUsMTQgKzUzLDE0IEBAIFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmIGRhCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIGZvcm1hdC5nZXQoKSwg
c2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZmZXIpOworICAgIGF1dG8gZXJy
b3IgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25z
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBm
b3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsK
ICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1
ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVkIC0gJWQiLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2Ft
cGxlQnVmZmVyKTsKIAotICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJv
bUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlz
dCgpKTsKKyAgICBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1
ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9j
YXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgp
KTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBs
ZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAppbmRleCA1N2NmMjlkMGQ3N2U2Nzg4OWJk
Y2VmZDQwNTg1MTI5ZWQxMmE0NTU1Li42NGUzMGJjMjkzY2E4ZjkzODg0ODhmMTQ4ODUwNmM1N2Jl
MGE1MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1v
dGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiQ29yZVZp
ZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIAogc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiB0cmFuc2ZlckJH
UkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCiB7
CkBAIC05MCw3ICs4OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVt
b3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYgc2FtcGxlCiB7CiAgICAgQVNTRVJU
KHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxl
QnVmZmVyVHlwZSk7CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXRJ
bWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIp
OworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZm
ZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBp
ZiAoIWltYWdlQnVmZmVyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiUmVt
b3RlVmlkZW9TYW1wbGU6OmNyZWF0ZTogQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlciByZXR1
cm5lZCBudWxscHRyIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmluZGV4IDk4MzliMzcwYTcxM2I3
YzFkMjNkODQ3ZmE4NjUwNWQ1YWU5NzlhYjIuLmRmZjRmYTRlZGYyNjRiNDUyYmY4ZGE3YWZhZWY0
Y2JkN2EwMjdiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMubW0KQEAgLTQ2LDIyICs0NiwxMyBAQAogI2ltcG9ydCA8d3RmL1N0cmluZ1ByaW50
U3RyZWFtLmg+CiAjZW5kaWYKIAorI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5r
Lmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKE1lZGlh
VG9vbGJveCkKLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29sYm94KQotCi1TT0ZUX0xJTkso
QXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBD
TUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJM
aXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVz
LCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBB
dWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24q
IGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRl
ciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0
ZXIpKQotCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0
b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKSwgKHRhcCkpCi1TT0ZU
X0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvLCBP
U1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVtYmVy
RnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRpb1Byb2Nlc3Np
bmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENNSXRlbUNv
dW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxpc3RJbk91
dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKLVNPRlRfTElOS19N
QVlfRkFJTChNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0YXR1
cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdUYXBD
YWxsYmFja3MgKmNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdzIGZs
YWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiAqdGFwT3V0KSwgKGFsbG9jYXRvciwgY2FsbGJh
Y2tzLCBmbGFncywgdGFwT3V0KSkKKyNpbXBvcnQgPHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0
TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiBz
dGF0aWMgY29uc3QgZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRpb24gPSAxOwogCiBjbGFzcyBBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFwU3RvcmFnZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFwU3RvcmFnZT4gewpAQCAtNzMs
NyArNjQsNyBAQCBwdWJsaWM6CiAKIFJlZlB0cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4g
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShBVlBsYXllckl0ZW0gKml0ZW0pCiB7
Ci0gICAgaWYgKCFjYW5Mb2FkTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoKSkKKyAgICBpZiAo
IVBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMoaXRlbSkpOwogfQpAQCAtMTUyLDcgKzE0Myw3IEBAIHZvaWQg
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBz
aXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgbV9yZWFkQ291bnQgKz0gZnJhbWVzVG9Qcm9jZXNzOwog
CiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21w
bGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG1fbGlzdC5nZXQo
KSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21w
bGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG1fbGlzdC5nZXQo
KSwgbV9saXN0LmdldCgpKTsKIH0KIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIGNsaWVudCkKQEAgLTIyNSw3ICsy
MTYsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRl
ZCgpCiAgICAgfTsKIAogICAgIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCA9IG51bGxwdHI7
Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwgJnRhcCk7CisgICAgT1NTdGF0dXMgc3RhdHVz
ID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAm
Y2FsbGJhY2tzLCAxLCAmdGFwKTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAg
IGlmICh0YXApCiAgICAgICAgICAgICBDRlJlbGVhc2UodGFwKTsKQEAgLTI1OCwxNCArMjQ5LDE0
IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmluaXRDYWxsYmFjayhNVEF1ZGlv
UHJvY2Vzc2luZ1RhcFJlZiB0YXAsIHZvaWQqCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpmaW5hbGl6ZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsKICAg
ICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8
VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBU
YXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRB
dWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogICAgIHRhcFN0b3JhZ2UtPmRlcmVm
KCk7CiB9CiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxsYmFj
ayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG1heEZyYW1lcywgY29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICpwcm9jZXNzaW5nRm9ybWF0KQogewogICAg
IEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxU
YXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRh
cFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1
ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsg
dGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0yNzYsNyArMjY3LDcgQEAgdm9pZCBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVm
IHRhcCwgQ00KIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxi
YWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAg
ICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVk
aW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9y
YWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBH
ZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sg
fTsKIApAQCAtMjg3LDcgKzI3OCw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHZvaWQgQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3NDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBGbGFncyBmbGFncywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIENNSXRlbUNv
dW50ICpudW1iZXJGcmFtZXNPdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0
KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0
aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkp
OworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4o
UEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIg
bG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0zMTcsNyArMzA4LDcgQEAgdm9pZCBB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0ZW1Db3VudCBtYXhGcmFtZXMs
IGNvbnN0IEF1ZGlvU3RyZWEKIAogICAgIGlmICgqbV90YXBEZXNjcmlwdGlvbiAhPSAqbV9vdXRw
dXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZlcnRlclJlZiBvdXRDb252ZXJ0ZXIg
PSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5ldyhtX3RhcERlc2NyaXB0aW9uLmdl
dCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsKKyAgICAgICAg
UEFMOjpBdWRpb0NvbnZlcnRlck5ldyhtX3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERl
c2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBv
dXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0zNTcsNyArMzQ4LDcgQEAgdm9pZCBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2VzcyhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENN
SXRlbUNvdW4KICAgICAKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwogICAgIENNVGlt
ZVJhbmdlIHJhbmdlT3V0OwotICAgIE9TU3RhdHVzIHN0YXR1cyA9IE1UQXVkaW9Qcm9jZXNzaW5n
VGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBm
bGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBQ
QUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1l
cywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKICAg
ICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8ICFpdGVtQ291bnQpCiAgICAgICAgIHJldHVybjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYTc2ZTEwYTBlNjI4ZTA1ZGVhMTYxZDI1NmMxMDI3
ODc4ZTAwNzkwYS4uMDk2MGQ0MjhjMTgxZGI1NzAyZWZjNjk5ZjQxZGFlYTJlNzFmMTljNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yMzIsNyArMjMyLDYgQEAgc3RydWN0IExvZ0FyZ3Vt
ZW50PEFWUGxheWVyVGltZUNvbnRyb2xTdGF0dXM+IHsKIH07IC8vIG5hbWVzcGFjZSBXVEYKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIE5TQXJy
YXkgKmFzc2V0TWV0YWRhdGFLZXlOYW1lcygpOwogc3RhdGljIE5TQXJyYXkgKml0ZW1LVk9Qcm9w
ZXJ0aWVzKCk7CkBAIC01ODIsOCArNTgxLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCiAKICAgICBbbV9pbWFnZUdlbmVy
YXRvci5nZXQoKSBzZXRBcGVydHVyZU1vZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVN
b2RlQ2xlYW5BcGVydHVyZV07CiAgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGll
c1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtOllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0
KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUJlZm9yZTprQ01UaW1lWmVyb107Ci0gICAgW21f
aW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUFmdGVyOmtDTVRp
bWVaZXJvXTsKKyAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9s
ZXJhbmNlQmVmb3JlOlBBTDo6a0NNVGltZVplcm9dOworICAgIFttX2ltYWdlR2VuZXJhdG9yLmdl
dCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjpQQUw6OmtDTVRpbWVaZXJvXTsKIH0K
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95Q29udGV4
dFZpZGVvUmVuZGVyZXIoKQpAQCAtNjcxLDcgKzY3MCw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRTdGFydERhdGUoKSBjb25zdAogICAgIGlmICgh
ZGF0ZSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKIAotICAgIGRv
dWJsZSBjdXJyZW50VGltZSA9IENNVGltZUdldFNlY29uZHMoW21fYXZQbGF5ZXJJdGVtIGN1cnJl
bnRUaW1lXSkgKiAxMDAwOworICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lR2V0
U2Vjb25kcyhbbV9hdlBsYXllckl0ZW0gY3VycmVudFRpbWVdKSAqIDEwMDA7CiAKICAgICAvLyBS
b3VuZGluZyBkdWUgdG8gc2Vjb25kIG9mZnNldCBlcnJvciB3aGVuIHN1YnRyYWN0aW5nLgogICAg
IHJldHVybiBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUocm91bmQoZGF0ZSAtIGN1cnJlbnRU
aW1lKSk7CkBAIC0xMDg4LDcgKzEwODcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKICNlbmRpZgogCiAgICAgQVNTRVJUKCFtX2N1
cnJlbnRUaW1lT2JzZXJ2ZXIpOwotICAgIG1fY3VycmVudFRpbWVPYnNlcnZlciA9IFttX2F2UGxh
eWVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6Q01UaW1lTWFrZSgxLCAxMCkg
cXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOlt0aGlzXSAoQ01UaW1l
IHRpbWUpIHsKKyAgICBtX2N1cnJlbnRUaW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRQZXJp
b2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOlBBTDo6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOlt0aGlzXSAoQ01UaW1lIHRpbWUp
IHsKICAgICAgICAgY3VycmVudE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKHRp
bWUpKTsKICAgICB9XTsKIApAQCAtMTQyMSw3ICsxNDIwLDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdAogICAg
ICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCiAgICAgaWYgKCFtX3dhbGxDbG9j
a0F0Q2FjaGVkQ3VycmVudFRpbWUpCi0gICAgICAgIGN1cnJlbnRNZWRpYVRpbWVEaWRDaGFuZ2Uo
dG9NZWRpYVRpbWUoW21fYXZQbGF5ZXJJdGVtLmdldCgpIGN1cnJlbnRUaW1lXSkpOworICAgICAg
ICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKFBBTDo6dG9NZWRpYVRpbWUoW21fYXZQbGF5ZXJJ
dGVtLmdldCgpIGN1cnJlbnRUaW1lXSkpOwogICAgIEFTU0VSVChtX3dhbGxDbG9ja0F0Q2FjaGVk
Q3VycmVudFRpbWUpOwogCiAgICAgYXV0byBpdGVtVGltZSA9IG1fY2FjaGVkQ3VycmVudE1lZGlh
VGltZTsKQEAgLTE0NjYsOCArMTQ2NSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0CiAgICAg
Q01UaW1lIGNtQWZ0ZXIgPSBQQUw6OnRvQ01UaW1lKHBvc2l0aXZlVG9sZXJhbmNlKTsKIAogICAg
IC8vIFtBVlBsYXllckl0ZW0gc2Vla1RvVGltZV0gd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYg
dG9sZXJhbmNlQmVmb3JlIGlzIG5lZ2F0aXZlLgotICAgIGlmIChDTVRpbWVDb21wYXJlKGNtQmVm
b3JlLCBrQ01UaW1lWmVybykgPCAwKQotICAgICAgICBjbUJlZm9yZSA9IGtDTVRpbWVaZXJvOwor
ICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoY21CZWZvcmUsIFBBTDo6a0NNVGltZVplcm8pIDwg
MCkKKyAgICAgICAgY21CZWZvcmUgPSBQQUw6OmtDTVRpbWVaZXJvOwogICAgIAogICAgIGF1dG8g
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAKQEAgLTE1ODQsNiArMTU4Myw4IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0UGl0Y2hDb3JyZWN0aW9u
QWxnb3JpdGhtKE1lZGlhUGxheWVyCiAKIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5n
ZXM+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtQnVmZmVyZWRU
aW1lUmFuZ2VzKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOworCiAgICAgYXV0
byB0aW1lUmFuZ2VzID0gbWFrZVVuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CiAKICAgICBp
ZiAoIW1fYXZQbGF5ZXJJdGVtKQpAQCAtMTU5MiwxMyArMTU5MywxNSBAQCBzdGQ6OnVuaXF1ZV9w
dHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwbGF0Zm9ybQogICAgIGZvciAoTlNWYWx1ZSAqdGhpc1JhbmdlVmFsdWUgaW4gbV9jYWNoZWRM
b2FkZWRSYW5nZXMuZ2V0KCkpIHsKICAgICAgICAgQ01UaW1lUmFuZ2UgdGltZVJhbmdlID0gW3Ro
aXNSYW5nZVZhbHVlIENNVGltZVJhbmdlVmFsdWVdOwogICAgICAgICBpZiAoQ01USU1FUkFOR0Vf
SVNfVkFMSUQodGltZVJhbmdlKSAmJiAhQ01USU1FUkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkK
LSAgICAgICAgICAgIHRpbWVSYW5nZXMtPmFkZChQQUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5z
dGFydCksIFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSkpOwor
ICAgICAgICAgICAgdGltZVJhbmdlcy0+YWRkKFBBTDo6dG9NZWRpYVRpbWUodGltZVJhbmdlLnN0
YXJ0KSwgUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkp
KTsKICAgICB9CiAgICAgcmV0dXJuIHRpbWVSYW5nZXM7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1pblRpbWVTZWVrYWJsZSgpIGNv
bnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGlmICghbV9jYWNoZWRTZWVr
YWJsZVJhbmdlcyB8fCAhW21fY2FjaGVkU2Vla2FibGVSYW5nZXMgY291bnRdKQogICAgICAgICBy
ZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCkBAIC0xNjE5LDYgKzE2MjIsOCBAQCBNZWRp
YVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1l
U2Vla2FibGUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAogeworICAgIHVzaW5nIG5h
bWVzcGFjZSBQQUw7CisKICAgICBpZiAoIW1fY2FjaGVkU2Vla2FibGVSYW5nZXMpCiAgICAgICAg
IG1fY2FjaGVkU2Vla2FibGVSYW5nZXMgPSBbbV9hdlBsYXllckl0ZW0gc2Vla2FibGVUaW1lUmFu
Z2VzXTsKIApAQCAtMTYzMSw3ICsxNjM2LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKICAgICAg
ICAgaWYgKCFDTVRJTUVSQU5HRV9JU19WQUxJRCh0aW1lUmFuZ2UpIHx8IENNVElNRVJBTkdFX0lT
X0VNUFRZKHRpbWVSYW5nZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAg
ICAgIE1lZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWVSYW5nZUdl
dEVuZCh0aW1lUmFuZ2UpKTsKKyAgICAgICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CiAgICAgICAgIGlm
IChtYXhUaW1lU2Vla2FibGUgPCBlbmRPZlJhbmdlKQogICAgICAgICAgICAgbWF4VGltZVNlZWth
YmxlID0gZW5kT2ZSYW5nZTsKICAgICB9CkBAIC0xNjQwLDYgKzE2NDUsOCBAQCBNZWRpYVRpbWUg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2Fi
bGUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2Ug
UEFMOworCiAgICAgaWYgKCFtX2NhY2hlZExvYWRlZFJhbmdlcykKICAgICAgICAgcmV0dXJuIE1l
ZGlhVGltZTo6emVyb1RpbWUoKTsKIApAQCAtMTY0OSw3ICsxNjU2LDcgQEAgTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgp
IGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSB8fCBD
TVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUo
Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CisgICAgICAgIE1lZGlhVGltZSBlbmRPZlJh
bmdlID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkp
OwogICAgICAgICBpZiAobWF4VGltZUxvYWRlZCA8IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBt
YXhUaW1lTG9hZGVkID0gZW5kT2ZSYW5nZTsKICAgICB9CkBAIC0xODAxLDcgKzE4MDgsNyBAQCBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZQogICAgIE1vbm90b25pY1RpbWUgc3RhcnQgPSBNb25vdG9u
aWNUaW1lOjpub3coKTsKIAogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldE1heGltdW1T
aXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiByYXdJ
bWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRpbWU6
Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJyb3I6bmls
XSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9pbWFn
ZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFnZUF0VGltZTpQQUw6OkNNVGltZU1ha2VXaXRoU2Vj
b25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOwogICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JT
cGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSkpOwogCiAgICAgSU5GT19M
T0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGltYWdlIHRvb2sgIiwgKE1vbm90b25pY1RpbWU6
Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7CkBAIC0xOTg3LDcgKzE5OTQsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFN0b3BMb2FkaW5nUmVxdWVzdChB
VkFzc2V0UmVzb3VyY2VMbwogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1l
d29ya0F2YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7CisgICAg
cmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBQQUw6Omlz
Q29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoY29uc3QgTWVk
aWFUaW1lJiB0aW1lVmFsdWUpIGNvbnN0CkBAIC0zMjMzLDkgKzMyNDAsOSBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUoY29u
c3QgUmV0YWluUHRyPAogICAgICAgICBmb3IgKEFWTWV0YWRhdGFJdGVtICppdGVtIGluIGdyb3Vw
Lml0ZW1zKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8QVZNdXRhYmxlTWV0YWRhdGFJdGVtPiBp
dGVtQ29weSA9IGFkb3B0TlMoW2l0ZW0gbXV0YWJsZUNvcHldKTsKICAgICAgICAgICAgIGlmICgh
Q01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgpLnRpbWUpKQotICAgICAgICAgICAgICAgIGl0
ZW1Db3B5LmdldCgpLnRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUs
IE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7CisgICAgICAgICAgICAgICAgaXRlbUNvcHku
Z2V0KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGdyb3VwU3RhcnRUaW1lLCBN
ZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwogICAgICAgICAgICAgaWYgKCFDTVRJTUVfSVNf
VkFMSUQoaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24pKQotICAgICAgICAgICAgICAgIGl0ZW1Db3B5
LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7CisgICAgICAgICAgICAg
ICAgaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24gPSBQQUw6OnRvQ01UaW1lKGdyb3VwRHVyYXRpb24p
OwogICAgICAgICAgICAgW2dyb3VwQ29weSBhZGRPYmplY3Q6aXRlbUNvcHkuZ2V0KCldOwogICAg
ICAgICB9CiAKQEAgLTMyNzcsNyArMzI4NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAK
ICAgICAgICAgTWVkaWFUaW1lIGVuZCA9IE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUo
KTsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGl0ZW0uZHVyYXRpb247Ci0gICAgICAgIGlmIChD
TVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIENNVGltZUdldFNlY29uZHMoZHVyYXRpb24pID4g
MC4wMDEpCisgICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIFBBTDo6Q01U
aW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkKICAgICAgICAgICAgIGVuZCA9IHN0YXJ0
ICsgUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7CiAKICAgICAgICAgQXRvbVN0cmluZyB0eXBl
ID0gbnVsbEF0b20oKTsKQEAgLTM0NTYsNyArMzQ2Myw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9u
PHZvCiAgICAgaWYgKG1fdGltZU9ic2VydmVyKQogICAgICAgICBbbV9hdlBsYXllciByZW1vdmVU
aW1lT2JzZXJ2ZXI6bV90aW1lT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAgbV90aW1lT2JzZXJ2ZXIg
PSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUg
dmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAgbV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBh
ZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1l
OlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVz
aW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7CiAgICAgfV07CiAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNWE2OWFhNjc5NTE4OWNiNGUwNzZkMzE5
NDY5Zjk5NjUwNGZmOTQ2Yy4uNzNhZGViOWJiNzNhNzgyOGRmNWEzZjQ4NGM1ZjkwZTMzM2QyNDFi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNjYsNyArNjYsNiBAQCAtIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KE5TVVJMICopc3RvcmFnZURp
cmVjdG9yeTsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0YXRlIGVudW1lcmF0aW9uVmFsdWUpCiB7CkBAIC0x
MTYsMTUgKzExNSwxNSBAQCBzdGF0aWMgdm9pZCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5n
ZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgY29ucwogCiB2b2lkIEVmZmVjdGl2
ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3AoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKIHsKLSAg
ICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVm
YXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5l
cihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRp
bWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSk7CisgICAg
Q01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0
RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92
ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFj
aywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGlt
ZWJhc2UpOwogfQogCiBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyYgY2xp
ZW50LCBDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAgIDogbV9jbGllbnQobWFrZVdlYWtQdHIo
Y2xpZW50KSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IENNTm90aWZpY2F0
aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50
ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2Fs
bGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1l
YmFzZSwgMCk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZp
Y2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFMOjpDTU5vdGlmaWNh
dGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNo
YW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRl
Q2hhbmdlZCwgdGltZWJhc2UsIDApOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXll
ciogcGxheWVyKQpAQCAtMTU3LDcgKzE1Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhCiAg
ICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgREVC
VUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hyb25pemVyIGZpcmVkIGZvciAiLCB0b01l
ZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIs
ICEhbV9wZW5kaW5nU2Vlayk7CisgICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwg
InN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFMOjp0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vl
a2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CiAK
ICAgICAgICAgaWYgKG1fc2Vla2luZyAmJiAhbV9wZW5kaW5nU2VlaykgewogICAgICAgICAgICAg
bV9zZWVraW5nID0gZmFsc2U7CkBAIC0yMzgsMTEgKzIzNywxMSBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmlzQXZh
aWxhYmxlKCkKIHsKICAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWls
YWJsZSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkKLSAgICAg
ICAgJiYgZ2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKQotICAgICAgICAmJiBnZXRBVlNhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCi0gICAgICAgICYmIGdldEFWU2FtcGxlQnVmZmVy
UmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQotICAgICAgICAmJiBjbGFzc19nZXRJbnN0YW5jZU1l
dGhvZChnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpLCBAc2VsZWN0b3Ioc2V0
TXV0ZWQ6KSk7CisgICAgICAgICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUo
KQorICAgICAgICAmJiBQQUw6OmdldEFWU3RyZWFtRGF0YVBhcnNlckNsYXNzKCkKKyAgICAgICAg
JiYgUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCisgICAgICAgICYm
IFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJvbml6ZXJDbGFzcygpCisgICAgICAg
ICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1Jl
bmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11dGVkOikpOwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxT
dHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKQpAQCAtNDE3LDcgKzQxNiw3
IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmR1cmF0
aW9uTWVkaWFUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiB7Ci0gICAgTWVkaWFUaW1l
IHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKFtt
X3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGlt
ZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6
ZXIgdGltZWJhc2VdKSk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAgICAgaWYg
KHN5bmNocm9uaXplclRpbWUgPCBtX2xhc3RTZWVrVGltZSkKQEAgLTQzMCw3ICs0MjksNyBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVE
aWRDaGFuZ2VDYWxsYmFjayhNZWRpYQogICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAgICAgaWYgKG1fY3VycmVudFRpbWVEaWRDaGFuZ2VD
YWxsYmFjaykgewotICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6
ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBx
dWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkg
eworICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVy
aW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVl
OmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENNVGltZSB0aW1lKSB7CiAg
ICAgICAgICAgICBpZiAobV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKQogICAgICAgICAg
ICAgICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhDTVRJTUVfSVNfTlVNRVJJQyh0
aW1lKSA/IFBBTDo6dG9NZWRpYVRpbWUodGltZSkgOiBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwog
ICAgICAgICB9XTsKQEAgLTQ4Miw3ICs0ODEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFsKCkKICAgICBpZiAobV9sYXN0U2Vla1RpbWUu
aGFzRG91YmxlVmFsdWUoKSkKICAgICAgICAgbV9sYXN0U2Vla1RpbWUgPSBNZWRpYVRpbWU6OmNy
ZWF0ZVdpdGhEb3VibGUobV9sYXN0U2Vla1RpbWUudG9Eb3VibGUoKSwgTWVkaWFUaW1lOjpEZWZh
dWx0VGltZVNjYWxlKTsKIAotICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0
b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7
CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSkpOwogICAgIElORk9f
TE9HKExPR0lERU5USUZJRVIsICJzZWVrVGltZSA9ICIsIG1fbGFzdFNlZWtUaW1lLCAiLCBzeW5j
aHJvbml6ZXJUaW1lID0gIiwgc3luY2hyb25pemVyVGltZSk7CiAKICAgICBib29sIGRvZXNOb3RS
ZXF1aXJlU2VlayA9IHN5bmNocm9uaXplclRpbWUgPT0gbV9sYXN0U2Vla1RpbWU7CkBAIC01OTks
NyArNTk4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVw
ZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAgaWYgKG1fdmlkZW9PdXRwdXQpIHsKICAgICAgICAg
Q01UaW1lIG91dHB1dFRpbWU7CiAgICAgICAgIGlmIChhdXRvIHBpeGVsQnVmZmVyID0gYWRvcHRD
RihbbV92aWRlb091dHB1dCBjb3B5UGl4ZWxCdWZmZXJGb3JTb3VyY2VUaW1lOnRvQ01UaW1lKGN1
cnJlbnRNZWRpYVRpbWUoKSkgc291cmNlVGltZUZvckRpc3BsYXk6Jm91dHB1dFRpbWVdKSkgewot
ICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIm5ldyBwaXhlbGJ1ZmZlciBmb3Vu
ZCBmb3IgdGltZSAiLCB0b01lZGlhVGltZShvdXRwdXRUaW1lKSk7CisgICAgICAgICAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVmZmVyIGZvdW5kIGZvciB0aW1lICIsIFBB
TDo6dG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOwogICAgICAgICAgICAgbV9sYXN0UGl4ZWxCdWZm
ZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CkBAIC04MDksNyArODA4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigpCiAgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01U
aW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1
cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJh
c2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3ZlUmVuZGVyZXI6bV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuZ2V0KCkgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxl
cjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAgLTEwMTgsNyArMTAxNyw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpmbHVzaFBlbmRp
bmdTaXplQ2hhbmdlcygpCiAjaWYgSEFWRShBVlNUUkVBTVNFU1NJT04pCiBBVlN0cmVhbVNlc3Np
b24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbigp
CiB7Ci0gICAgaWYgKCFnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIHx8ICFbUEFMOjpnZXRBVlN0
cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihp
bml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkKKyAgICBpZiAoIVBBTDo6Z2V0QVZTdHJl
YW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBpbnN0
YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5
QXRVUkw6KV0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBpZiAoIW1fc3RyZWFtU2Vzc2lv
bikgewpAQCAtMTIxNyw3ICsxMjE2LDcgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19F
TkQKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGltZSBjdXJyZW50VGltZSA9IENNVGltZWJhc2VH
ZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOworICAgIENNVGltZSBjdXJyZW50VGlt
ZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CiAg
ICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRlcmVyOmF1ZGlvUmVuZGVyZXIgYXRUaW1lOmN1
cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1v
cC4KICAgICB9XTsKQEAgLTEzMDEsNyArMTMwMCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248
CiAgICAgaWYgKG1fcGVyZm9ybVRhc2tPYnNlcnZlcikKICAgICAgICAgW21fc3luY2hyb25pemVy
IHJlbW92ZVRpbWVPYnNlcnZlcjptX3BlcmZvcm1UYXNrT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAg
bV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZEJvdW5kYXJ5VGltZU9i
c2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6dG9DTVRpbWUodGltZSld
XSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKKyAgICBtX3Bl
cmZvcm1UYXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2
ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTpQQUw6OnRvQ01UaW1lKHRpbWUp
XV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CiAgICAgICAg
IHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLm1tCmluZGV4IGUxYWQxMDJiYjk4MWJmMzc0ZTZiZDkzN2MwYzZlMmE4N2Y0MGYxNWYuLjU1
YjUwMGM1N2U5M2ViYmE0OTZhZTc0MTZmZDVkZjc4ZDdiOTQ1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENH
LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXIuaCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCiAjaW1wb3J0
ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCkBAIC0xMjEsNyArMTIyLDYgQEAgLSAodm9pZClv
YnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9i
amVjdCBjaGFuZ2U6KE4KIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aXNB
dmFpbGFibGUoKQogewotICAgIHJldHVybiBpc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJs
ZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgZ2V0QVZTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJDbGFzcygpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJh
bWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgp
ICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMo
SGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKQpAQCAtMjMw
LDcgKzIzMCw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uCiBzdGF0aWMgaW5saW5lIENHQWZm
aW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgoTWVkaWFTYW1wbGUmIHNhbXBs
ZSkKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBzYW1wbGUucGxhdGZv
cm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXI7Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIpKTsKICAgICBzaXplX3Qgd2lkdGggPSBDVlBp
eGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwogICAgIHNpemVfdCBoZWlnaHQgPSBDVlBp
eGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKICAgICBpZiAoIXdpZHRoIHx8ICFoZWln
aHQpCkBAIC05NjAsNyArOTYwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCkKICAgICBpZiAoIW1faW1hZ2VQYWlu
dGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHBp
eGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUo
KS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNh
bXBsZUJ1ZmZlcikpOwogICAgIG1faW1hZ2VQYWludGVyLmNnSW1hZ2UgPSBOYXRpdmVJbWFnZTo6
Y3JlYXRlKG1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyLT5jcmVhdGVJbWFnZUZy
b21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXggMmY0OTgzODc2NWQzYzk0NDFiNjliYjk1MThi
M2IxZjlhODc5NTA5Yi4uN2JmNDJkNGU3ZDdjY2IyOGFjYWYzOTA4MDg5ZTE1MWM0MjRkN2Y5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMzYs
OSArMzYsMTEgQEAKICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0IDxwYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQotV1RGX0RF
Q0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBXVEZfREVDTEFSRV9DRl9U
WVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgV1RGOjpDRlR5
cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJlZj4geworICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQg
dHlwZUlEKHZvaWQpIHsgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsgfQor
fTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02NywzNSArNjksMzUgQEAgUmVmUHRyPE1l
ZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZShQ
aXhlbEJ1ZmZlciYmIHAKICAgICBBU1NFUlRfVU5VU0VEKHN0YXR1cywgIXN0YXR1cyk7CiAKICAg
ICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb25SYXcgPSBudWxs
cHRyOwotICAgIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdl
QnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXRE
ZXNjcmlwdGlvblJhdyk7CisgICAgc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVy
LmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb25SYXcpOwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAg
ICBhdXRvIGZvcm1hdERlc2NyaXB0aW9uID0gYWRvcHRDRihmb3JtYXREZXNjcmlwdGlvblJhdyk7
CiAKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2FtcGxlVGltaW5nSW5mb3JtYXRpb24gPSB7IGtD
TVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52YWxpZCwga0NNVGltZUludmFsaWQgfTsKKyAgICBDTVNh
bXBsZVRpbWluZ0luZm8gc2FtcGxlVGltaW5nSW5mb3JtYXRpb24gPSB7IFBBTDo6a0NNVGltZUlu
dmFsaWQsIFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6a0NNVGltZUludmFsaWQgfTsKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJSYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9
IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1w
bGVUaW1pbmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1ZmZlclJhdyk7CisgICAgc3RhdHVzID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCAmc2Ft
cGxlVGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVCdWZmZXJSYXcpOwogICAgIEFTU0VSVCghc3Rh
dHVzKTsKICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyUmF3KTsK
IAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOworICAgIENGQXJy
YXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4
IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgaSA8IGNv
dW50OyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9
IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFs
dWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5
LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1l
bnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZC
b29sZWFuVHJ1ZSk7CiAgICAgfQogICAgIHJldHVybiBjcmVhdGUoc2FtcGxlQnVmZmVyLmdldCgp
KTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0aW9uVGltZSgp
IGNvbnN0CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFBy
ZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAgYXV0byB0aW1lU3RhbXAg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2Ft
cGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQodGltZVN0YW1wKSkKLSAgICAg
ICAgdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9z
YW1wbGUuZ2V0KCkpOworICAgICAgICB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0
b01lZGlhVGltZSh0aW1lU3RhbXApOwogfQogCiBNZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpD
OjpkZWNvZGVUaW1lKCkgY29uc3QKIHsKLSAgICBhdXRvIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVm
ZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKKyAgICBhdXRvIHRpbWVTdGFt
cCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkp
OwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQogICAgICAgICByZXR1cm4g
cHJlc2VudGF0aW9uVGltZSgpOwogICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFt
cCk7CkBAIC0xMDMsMTUgKzEwNSwxNSBAQCBNZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpk
ZWNvZGVUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVyYXRp
b24oKSBjb25zdAogewotICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1
dER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01U
SU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAgICAgICBkdXJhdGlvbiA9IENNU2FtcGxlQnVm
ZmVyR2V0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOworICAgICAgICBkdXJhdGlvbiA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7CiAgICAgcmV0dXJuIFBB
TDo6dG9NZWRpYVRpbWUoZHVyYXRpb24pOwogfQogCiBzaXplX3QgTWVkaWFTYW1wbGVBVkZPYmpD
OjpzaXplSW5CeXRlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0VG90
YWxTYW1wbGVTaXplKG1fc2FtcGxlLmdldCgpKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBsZS5nZXQoKSk7CiB9CiAKIFBsYXRmb3JtU2Ft
cGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxhdGZvcm1TYW1wbGUoKQpAQCAtMTIyLDIzICsxMjQs
MjMgQEAgUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1wbGVBVkZPYmpDOjpwbGF0Zm9ybVNhbXBsZSgp
CiAKIHVpbnQzMl90IE1lZGlhU2FtcGxlQVZGT2JqQzo6dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0
CiB7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+
KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsKKyAgICBhdXRv
IHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7CiAgICAgcmV0dXJuIENWUGl4
ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwogfQogCiBzdGF0aWMgYm9v
bCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYg
YXR0YWNobWVudERpY3QpCiB7Ci0gICAgcmV0dXJuICFDRkRpY3Rpb25hcnlDb250YWluc0tleShh
dHRhY2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jKTsKKyAgICByZXR1
cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBs
ZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7CiB9CiAKIHN0YXRpYyBib29sIGRvZXNDTVNhbXBsZUJ1
ZmZlckhhdmVTeW5jSW5mbyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiB7Ci0gICAgcmV0dXJu
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsK
KyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXko
c2FtcGxlLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21B
Y2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAgIENGQXJyYXlSZWYgYXR0YWNo
bWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBm
YWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNo
bWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIApAQCAtMTUxLDEyICsxNTMsMTIgQEAg
c3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGUpCiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlz
cGxheWluZyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCiB7Ci0gICAgcmV0dXJuIENG
RGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRhY2htZW50
S2V5X0RvTm90RGlzcGxheSk7CisgICAgcmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0
dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsK
IH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlck5vbkRpc3BsYXlpbmcoQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlKQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZB
cnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2ht
ZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKQEAgLTE4NiwxMSArMTg4LDExIEBAIE1lZGlhU2FtcGxlOjpT
YW1wbGVGbGFncyBNZWRpYVNhbXBsZUFWRk9iakM6OmZsYWdzKCkgY29uc3QKIAogRmxvYXRTaXpl
IE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0
Rm9ybWF0RGVzY3JpcHRpb24obV9zYW1wbGUuZ2V0KCkpOwotICAgIGlmIChDTUZvcm1hdERlc2Ny
aXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVfVmlk
ZW8pCisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3NhbXBsZS5nZXQoKSk7CisgICAg
aWYgKFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlv
bikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQogICAgICAgICByZXR1cm4gRmxvYXRTaXplKCk7CiAg
ICAgCi0gICAgcmV0dXJuIEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVz
ZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7CisgICAg
cmV0dXJuIEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRh
dGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKIH0KIAogdm9p
ZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKQEAgLTIw
MSwxMiArMjAzLDEyIEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0CiB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5
KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogewogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9
IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKKyAgICBpZiAobm9F
cnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBs
ZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCiAgICAgICAgIHJldHVybjsKICAgICAK
ICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGlt
aW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwg
dGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0
ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVy
bjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWluZyA6IHRpbWluZ0luZm9BcnJheSkgewpAQCAt
MjE1LDcgKzIxNyw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBz
QnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiAgICAgfQogICAgIAogICAgIENNU2FtcGxlQnVm
ZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRl
bUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKKyAgICBpZiAobm9F
cnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5k
YXRhKCksICZuZXdTYW1wbGUpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUg
PSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0yMjQsMTIgKzIyNiwxMiBAQCB2b2lkIE1lZGlhU2Ft
cGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQog
dm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RGOjpNZWRpYVRp
bWUgJnByZXNlbnRhdGlvblRpbWVzdGFtcCwgY29uc3QgV1RGOjpNZWRpYVRpbWUgJmRlY29kZVRp
bWVzdGFtcCkKIHsKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIGlmIChub0Vy
ciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQo
KSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxw
dHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgVmVjdG9yPENNU2Ft
cGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93
KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5k
YXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0lu
Zm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgZm9y
IChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZvQXJyYXkpIHsKQEAgLTIzOCw3ICsyNDAsNyBAQCB2
b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGlt
ZSAmcHJlc2VudGF0aW9uVGltZXN0YQogICAgIH0KICAgICAKICAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdp
dGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3Vu
dCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCisgICAgaWYgKG5vRXJyICE9
IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCAmbmV3U2FtcGxlKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fc2FtcGxlID0gYWRv
cHRDRihuZXdTYW1wbGUpOwpAQCAtMjQ2LDEwICsyNDgsMTAgQEAgdm9pZCBNZWRpYVNhbXBsZUFW
Rk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRp
bWVzdGEKIAogYm9vbCBNZWRpYVNhbXBsZUFWRk9iakM6OmlzRGl2aXNhYmxlKCkgY29uc3QKIHsK
LSAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAx
KQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQo
KSkgPT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlU2l6ZUFycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9
PSBrQ01TYW1wbGVCdWZmZXJFcnJvcl9CdWZmZXJIYXNOb1NhbXBsZVNpemVzKQorICAgIGlmIChQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBu
dWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVCdWZmZXJFcnJvcl9CdWZmZXJIYXNOb1NhbXBs
ZVNpemVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI2
MiwxNyArMjY0LDE3IEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVk
aWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZShjCiAKICAgICBDRkluZGV4IHNh
bXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lID0gMDsKIAotICAgIENNU2FtcGxlQnVmZmVyQ2Fs
bEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5nZXQoKSwgWyZdIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAtPiBPU1N0YXR1cyB7Ci0gICAgICAgIGF1dG8g
dGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
c2FtcGxlQnVmZmVyKTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNh
bXBsZShtX3NhbXBsZS5nZXQoKSwgWyZdIChDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIs
IENNSXRlbUNvdW50KSAtPiBPU1N0YXR1cyB7CisgICAgICAgIGF1dG8gdGltZVN0YW1wID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZm
ZXIpOwogICAgICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAg
ICAgIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNh
bXBsZUJ1ZmZlcik7CisgICAgICAgICAgICB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CiAKICAgICAgICAgaWYgKHVz
ZUVuZFRpbWUgPT0gVXNlRW5kVGltZTo6VXNlKSB7Ci0gICAgICAgICAgICBhdXRvIGR1cmF0aW9u
ID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOworICAgICAg
ICAgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlv
bihzYW1wbGVCdWZmZXIpOwogICAgICAgICAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKGR1cmF0
aW9uKSkKLSAgICAgICAgICAgICAgICBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRp
b24oc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwogCi0gICAgICAgICAgICBpZiAoUEFM
Ojp0b01lZGlhVGltZShDTVRpbWVBZGQodGltZVN0YW1wLCBkdXJhdGlvbikpID4gcHJlc2VudGF0
aW9uVGltZSkKKyAgICAgICAgICAgIGlmIChQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lQWRk
KHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+IHByZXNlbnRhdGlvblRpbWUpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIDE7CiAgICAgICAgIH0gZWxzZSBpZiAoUEFMOjp0b01lZGlhVGltZSh0aW1lU3Rh
bXApID49IHByZXNlbnRhdGlvblRpbWUpCiAgICAgICAgICAgICByZXR1cm4gMTsKQEAgLTI4Mywx
OSArMjg1LDE5IEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFT
YW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZShjCiAgICAgaWYgKCFzYW1wbGVzQmVm
b3JlUHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgdGhpcyB9Owog
Ci0gICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQgPSBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBs
ZXMobV9zYW1wbGUuZ2V0KCkpOworICAgIENNSXRlbUNvdW50IHNhbXBsZUNvdW50ID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChzYW1w
bGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSA+PSBzYW1wbGVDb3VudCkKICAgICAgICAgcmV0dXJu
IHsgdGhpcywgbnVsbHB0ciB9OwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQmVm
b3JlID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdlQmVmb3JlID0gQ0ZSYW5nZU1ha2UoMCwg
c2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUpOwotICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNv
cHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQo
KSwgcmFuZ2VCZWZvcmUsICZyYXdTYW1wbGVCZWZvcmUpICE9IG5vRXJyKQorICAgIGlmIChQQUw6
OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9yZSwgJnJhd1NhbXBsZUJlZm9yZSkgIT0gbm9F
cnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJlZm9yZSA9IGFkb3B0Q0YocmF3U2FtcGxlQmVmb3Jl
KTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUFmdGVyID0gbnVsbHB0cjsKICAg
ICBDRlJhbmdlIHJhbmdlQWZ0ZXIgPSBDRlJhbmdlTWFrZShzYW1wbGVzQmVmb3JlUHJlc2VudGF0
aW9uVGltZSwgc2FtcGxlQ291bnQgLSBzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSk7Ci0g
ICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9
IG5vRXJyKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJh
bmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUFmdGVyLCAmcmF3
U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4geyBudWxscHRyLCBudWxscHRy
IH07CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzYW1wbGVBZnRlciA9IGFkb3B0
Q0YocmF3U2FtcGxlQWZ0ZXIpOwogCkBAIC0zMDUsMTMgKzMwNywxMyBAQCBzdGQ6OnBhaXI8UmVm
UHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlhU2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpD
OjpkaXZpZGUoYwogUmVmPE1lZGlhU2FtcGxlPiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZU5v
bkRpc3BsYXlpbmdDb3B5KCkgY29uc3QKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1w
bGVCdWZmZXIgPSAwOwotICAgIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7CisgICAgUEFMOjpDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCks
ICZuZXdTYW1wbGVCdWZmZXIpOwogICAgIEFTU0VSVChuZXdTYW1wbGVCdWZmZXIpOwogCi0gICAg
Q0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5KG5ld1NhbXBsZUJ1ZmZlciwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRh
Y2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJy
YXkobmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBD
RkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7ICsraSkgewogICAgICAgICBDRk11dGFi
bGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURp
Y3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkp
OwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0
YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgQ0ZEaWN0
aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9E
b05vdERpc3BsYXksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiAKICAgICByZXR1cm4gTWVkaWFT
YW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRvcHRDRihuZXdTYW1wbGVCdWZmZXIpLmdldCgpLCBtX2lk
KTsKQEAgLTMyNiw3ICszMjgsNyBAQCBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVk
aWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhKCkgY29uc3QKICAgICBDRkRpY3Rpb25h
cnlTZXRWYWx1ZShjb25mb3JtZXJPcHRpb25zLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9y
bWF0VHlwZUtleSwgaW1hZ2VGb3JtYXROdW1iZXIuZ2V0KCkpOwogICAgIFBpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1YgcGl4ZWxCdWZmZXJDb25mb3JtZXIoY29uZm9ybWVyT3B0aW9ucy5nZXQoKSk7CiAK
LSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01T
YW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4
ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsKICAgICBhdXRvIHJnYmFQaXhlbEJ1
ZmZlciA9IHBpeGVsQnVmZmVyQ29uZm9ybWVyLmNvbnZlcnQocGl4ZWxCdWZmZXIpOwogICAgIGF1
dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhyZ2JhUGl4ZWxCdWZmZXIu
Z2V0KCksIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFkT25seSk7CiAgICAgQVNTRVJUKHN0YXR1cyA9
PSBub0Vycik7CkBAIC0zNDMsMTAgKzM0NSwxMCBAQCBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRB
cnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhKCkgY29uc3QKIAogc3Rh
dGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRz
QXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVm
ZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIsIHRydWUpOwog
ICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50c0Fy
cmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMg
PSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVl
QXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZh
bHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVs
eSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2ht
ZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NG
Qm9vbGVhblRydWUpOwogICAgIH0KIH0KIApAQCAtMzU3LDcgKzM1OSw3IEBAIHZvaWQgTWVkaWFT
YW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxl
KQogCiBib29sIE1lZGlhU2FtcGxlQVZGT2JqQzo6aXNIb21vZ2VuZW91cygpIGNvbnN0CiB7Ci0g
ICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVB
dHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzg1LDcgKzM4Nyw3IEBAIFZlY3RvcjxSZWY8TWVk
aWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVv
dXNTYW1wbGVzCiB7CiAgICAgdXNpbmcgU2FtcGxlVmVjdG9yID0gVmVjdG9yPFJlZjxNZWRpYVNh
bXBsZUFWRk9iakM+PjsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7
CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCksIHRydWUpOwogICAgIGlmICgh
YXR0YWNobWVudHNBcnJheSkKICAgICAgICAgcmV0dXJuIFNhbXBsZVZlY3Rvcjo6ZnJvbShtYWtl
UmVmKCp0aGlzKSk7CiAKQEAgLTQxOCw3ICs0MjAsNyBAQCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxl
QVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxl
cwogICAgIHNhbXBsZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyYW5nZXMuc2l6ZSgpKTsKICAg
ICBmb3IgKGF1dG8mIHJhbmdlIDogcmFuZ2VzKSB7CiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVm
IHJhd1NhbXBsZSA9IG51bGxwdHI7Ci0gICAgICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1w
bGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFu
Z2UsICZyYXdTYW1wbGUpICE9IG5vRXJyIHx8ICFyYXdTYW1wbGUpCisgICAgICAgIGlmIChQQUw6
OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1NhbXBsZSkgIT0gbm9FcnIgfHwgIXJhd1Nh
bXBsZSkKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIHNhbXBsZXMudW5jaGVja2Vk
QXBwZW5kKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKGFkb3B0Q0YocmF3U2FtcGxlKS5nZXQo
KSwgbV9pZCkpOwogICAgIH0KQEAgLTQzMiwyNCArNDM0LDI0IEBAIFJldGFpblB0cjxDTVNhbXBs
ZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZlckFuZFNldEFz
RGlzcGxhCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGF1dG8gc3Rh
dHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAg
ICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHJldGFpbmVk
Rm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0aW9uKTsKIAogICAgIENN
SXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KTsKKyAg
ICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNh
bXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJ
bmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBzdGF0
dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGUsIGl0ZW1D
b3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CisgICAgc3RhdHVzID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3Vu
dCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CiAgICAgaWYgKHN0YXR1cykKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVC
dWZmZXI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24s
IHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGVCdWZmZXIpOworICAgIHN0YXR1cyA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJh
eS5kYXRhKCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDBiOWJiNjQ4NWYzZTllMjUzNDVhYWQ0ZjRlNDcw
OTJjNDI5YTVjYzguLjAyMTkyMTZkN2MyZDg4ZWY1Nzc1MjZkODgyMzBjM2U1MDNmZDhjZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLm1tCkBAIC0yNTgsNyArMjU4LDYgQEAgLSAodm9pZClhdWRpb1JlbmRlcmVyV2FzQXV0b21h
dGljYWxseUZsdXNoZWQ6KE5TTm90aWZpY2F0aW9uKilub3RlCiBAZW5kCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21h
IG1hcmsgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMKQEAgLTI3Nyw3ICsyNzYsNyBAQCBzdGF0
aWMgdWludDY0X3QgbmV4dE1hcElEKCkKIAogc3RhdGljIHZvaWQgYnVmZmVyV2FzQ29uc3VtZWRD
YWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENG
U3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUsIGNvbnN0IHZvaWQqLCBDRlR5cGVSZWYpCiB7Ci0g
ICAgaWYgKCFDRkVxdWFsKGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZl
ckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkKKyAgICBpZiAoIUNGRXF1YWwoUEFMOjprQ01T
YW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbm90aWZpY2F0
aW9uTmFtZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsK
QEAgLTMxNiw3ICszMTUsNyBAQCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQwogICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAoIVtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJl
cm9sbERlY29kZVdpdGhDb21wbGV0aW9uSGFuZGxlcjopXSkKLSAgICAgICAgQ01Ob3RpZmljYXRp
b25DZW50ZXJBZGRMaXN0ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENl
bnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQqPihtX21hcElEKSwgYnVmZmVyV2FzQ29uc3Vt
ZWRDYWxsYmFjaywga0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29u
c3VtZWQsIG51bGxwdHIsIDApOworICAgICAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyQWRk
TGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigp
LCByZWludGVycHJldF9jYXN0PHZvaWQqPihtX21hcElEKSwgYnVmZmVyV2FzQ29uc3VtZWRDYWxs
YmFjaywgUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25z
dW1lZCwgbnVsbHB0ciwgMCk7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBtX3Bh
cnNlci0+c2V0TG9nZ2VyKG1fbG9nZ2VyLmdldCgpLCBtX2xvZ0lkZW50aWZpZXIpOwpAQCAtMzU0
LDcgKzM1Myw3IEBAIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMoKQogICAgIGNsZWFyVHJhY2tzKCk7CiAKICAgICBpZiAoIVtQQUw6OmdldEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3Rv
cjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhDb21wbGV0aW9uSGFuZGxlcjopXSkKLSAgICAg
ICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRl
ckdldERlZmF1bHRMb2NhbENlbnRlcigpLCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNr
LCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVs
bHB0cik7CisgICAgICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihQ
QUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHRoaXMsIGJ1
ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIFBBTDo6a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3Rp
ZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIpOwogCiAgICAgaWYgKG1faGFzU2Vzc2lv
blNlbWFwaG9yZSkKICAgICAgICAgbV9oYXNTZXNzaW9uU2VtYXBob3JlLT5zaWduYWwoKTsKQEAg
LTk5Myw3ICs5OTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpsYXllckRp
ZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcgogCiB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKEFWU2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqcmVuZGVyZXIsIGNvbnN0IENNVGltZSYgdGltZSkKIHsK
LSAgICBhdXRvIG1lZGlhVGltZSA9IHRvTWVkaWFUaW1lKHRpbWUpOworICAgIGF1dG8gbWVkaWFU
aW1lID0gUEFMOjp0b01lZGlhVGltZSh0aW1lKTsKICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklF
UiwgbWVkaWFUaW1lKTsKICAgICBBdG9tU3RyaW5nIHRyYWNrSWQ7CiAgICAgZm9yIChhdXRvJiBw
YWlyIDogbV9hdWRpb1JlbmRlcmVycykgewpAQCAtMTEwMSwxMyArMTEwMCwxMyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4m
JiBzYW1wbGUsIGNvbnN0CiAgICAgYXV0byBsb2dTaXRlSWRlbnRpZmllciA9IExPR0lERU5USUZJ
RVI7CiAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAidHJhY2sgSUQgPSAiLCB0cmFj
a0lELCAiLCBzYW1wbGUgPSAiLCBzYW1wbGUuZ2V0KCkpOwogCi0gICAgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3Jp
cHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICBDTUZvcm1h
dERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7
CiAgICAgQVNTRVJUKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0
aW9uKSB7CiAgICAgICAgIEVSUk9SX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgIlJlY2VpdmVkIHNh
bXBsZSB3aXRoIGEgbnVsbCBmb3JtYXREZXNjcmlwdGlvbi4gQmFpbGluZy4iKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICBhdXRvIG1lZGlhVHlwZSA9IENNRm9ybWF0RGVzY3JpcHRpb25H
ZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGF1dG8gbWVkaWFUeXBlID0gUEFM
OjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKTsKIAog
ICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCkgewogICAgICAgICAvLyBB
VlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciB3aWxsIHRocm93IGFuIHVuLWRvY3VtZW50ZWQgZXhj
ZXB0aW9uIGlmIHBhc3NlZCBhIHNhbXBsZQpAQCAtMTEyMCw3ICsxMTE5LDcgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYg
c2FtcGxlLCBjb25zdAogICAgICAgICB9CiAKICAgICAgICAgYXV0byBwbGF5ZXIgPSB0aGlzLT5w
bGF5ZXIoKTsKLSAgICAgICAgRmxvYXRTaXplIGZvcm1hdFNpemUgPSBGbG9hdFNpemUoQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlw
dGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgICAgICBGbG9hdFNpemUgZm9ybWF0U2l6ZSA9IEZsb2F0
U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lv
bnMoZm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKICAgICAgICAgaWYgKCFtX2NhY2hl
ZFNpemUgfHwgZm9ybWF0U2l6ZSAhPSBtX2NhY2hlZFNpemUudmFsdWUoKSkgewogICAgICAgICAg
ICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic2l6ZSBjaGFuZ2VkIHRvICIsIGZvcm1h
dFNpemUpOwogICAgICAgICAgICAgYm9vbCBzaXplV2FzTnVsbCA9ICFtX2NhY2hlZFNpemU7CkBA
IC0xMTQ2LDkgKzExNDUsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1
ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAKICAgICAgICAgICAg
IGlmICghaGF2ZVByZXJvbGxEZWNvZGVXaXRoQ29tcGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAg
ICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVDb3B5OwotICAgICAgICAgICAgICAg
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNh
bXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsICZyYXdTYW1wbGVDb3B5KTsKKyAgICAgICAgICAg
ICAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBw
bGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsICZyYXdTYW1wbGVDb3B5KTsKICAg
ICAgICAgICAgICAgICBhdXRvIHNhbXBsZUNvcHkgPSBhZG9wdENGKHJhd1NhbXBsZUNvcHkpOwot
ICAgICAgICAgICAgICAgIENNU2V0QXR0YWNobWVudChzYW1wbGVDb3B5LmdldCgpLCBrQ01TYW1w
bGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRpb25XaGVuQ29uc3VtZWQsIChfX2Jy
aWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NNU2FtcGxlQnVm
ZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hlbkNvbnN1bWVkIDogQFlFUyB9LCBr
Q01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9wYWdhdGUpOworICAgICAgICAgICAgICAgIFBB
TDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUNvcHkuZ2V0KCksIFBBTDo6a0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hlbkNvbnN1bWVkLCAoX19icmlkZ2UgQ0ZE
aWN0aW9uYXJ5UmVmKUB7IChfX2JyaWRnZSBOU1N0cmluZyAqKVBBTDo6a0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hlbkNvbnN1bWVkIDogQFlFUyB9LCBrQ01B
dHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9wYWdhdGUpOwogICAgICAgICAgICAgICAgIFttX2Rp
c3BsYXlMYXllciBlbnF1ZXVlU2FtcGxlQnVmZmVyOnNhbXBsZUNvcHkuZ2V0KCldOwogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgICAgICAgICAgcGxheWVyLT5zZXRIYXNBdmFpbGFi
bGVWaWRlb0ZyYW1lKHRydWUpOwpAQCAtMTI5OCwxNCArMTI5NywxNCBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhj
b25zdCBBdG9tUwogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Y2FuU2V0TWluaW11
bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lEU3RyaW5n
KSBjb25zdAogewogICAgIHJldHVybiBwYXJzZUludGVnZXJBbGxvd2luZ1RyYWlsaW5nSnVuazx1
aW50NjRfdD4odHJhY2tJRFN0cmluZykudmFsdWVfb3IoMCkgPT0gbV9lbmFibGVkVmlkZW9UcmFj
a0lECi0gICAgICAgICYmIFtnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5z
dGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGV4cGVjdE1pbmltdW1VcGNvbWluZ1Nh
bXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6KV07CisgICAgICAgICYmIFtQQUw6OmdldEFWU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpA
c2VsZWN0b3IoZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGlt
ZTopXTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0TWluaW11bVVw
Y29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nLCBj
b25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRpbWUpCiB7CiAgICAgQVNTRVJUKGNhblNldE1p
bmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJhY2tJRFN0cmluZykpOwogICAgIGlmIChj
YW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKHRyYWNrSURTdHJpbmcpKQotICAg
ICAgICBbbV9kaXNwbGF5TGF5ZXIgZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJl
c2VudGF0aW9uVGltZTp0b0NNVGltZShwcmVzZW50YXRpb25UaW1lKV07CisgICAgICAgIFttX2Rp
c3BsYXlMYXllciBleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25U
aW1lOlBBTDo6dG9DTVRpbWUocHJlc2VudGF0aW9uVGltZSldOwogfQogCiB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpjbGVhck1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUo
Y29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRFN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2Vy
V2ViTS5jcHAKaW5kZXggZTZkZmNiMzQ5NmY5MmQyYWEyMWY4NzY4NDY0ODA4YjE2MWQ1Nzc2Yi4u
YjVkOGY1MzZhMjA3OGY5NGU0NGRhYzcxODM1NzEzNTg4ZGY0MzE4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2Vi
TS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNl
QnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAgLTI1OCw4ICsyNTgsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpTdGF0ZT4gewog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0YXRpYyBX
VEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgeyByZXR1cm4gTG9nTWVkaWE7IH0KIHN0YXRpYyBj
b25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJldHVybiAiU291cmNlQnVmZmVyUGFyc2VyV2Vi
TSI7IH0KIApAQCAtMTA1Nyw3ICsxMDU1LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBh
cnNlcldlYk06Ok9uRnJhbWUoY29uc3QgRnJhbWVNZXRhZGF0YSYgbWV0YWRhdGEsIFJlYWQKICAg
ICAgICAgcmV0dXJuIFNraXAocmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CiAgICAgfQogCi0gICAg
cmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZyYW1lRGF0YSgqcmVhZGVyLCBtZXRhZGF0YSwgYnl0
ZXNSZW1haW5pbmcsIENNVGltZU1ha2UoYmxvY2stPnRpbWVjb2RlICsgbV9jdXJyZW50VGltZWNv
ZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9mcmFtZXMpOworICAgIHJldHVybiB0cmFja0Rh
dGEtPmNvbnN1bWVGcmFtZURhdGEoKnJlYWRlciwgbWV0YWRhdGEsIGJ5dGVzUmVtYWluaW5nLCBQ
QUw6OkNNVGltZU1ha2UoYmxvY2stPnRpbWVjb2RlICsgbV9jdXJyZW50VGltZWNvZGUsIG1fdGlt
ZXNjYWxlKSwgYmxvY2stPm51bV9mcmFtZXMpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OnByb3ZpZGVNZWRpYURhdGEoUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzYW1w
bGVCdWZmZXIsIHVpbnQ2NF90IHRyYWNrSUQsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBieXRlUmFu
Z2VPZmZzZXQpCkBAIC0xMDgxLDcgKzEwNzksNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAog
ICAgIENNQmxvY2tCdWZmZXJSZWYgcmF3QmxvY2tCdWZmZXIgPSBudWxscHRyOwogCiAgICAgaWYg
KCFtX2N1cnJlbnRCbG9ja0J1ZmZlcikgewotICAgICAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbWV0
YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgMCwgbWV0YWRhdGEuc2l6
ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKKyAgICAgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tC
dWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwg
bWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgMCwgbWV0YWRhdGEu
c2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAg
ICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhN
ZW1vcnlCbG9jayBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgICAgICByZXR1cm4g
U2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CkBAIC0xMDkwLDcgKzEwODgsNyBAQCB3ZWJt
OjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNvbnN1bWVG
cmFtZURhdGEod2VibTo6UmVhZAogICAgICAgICBtX2N1cnJlbnRCbG9ja0J1ZmZlciA9IGFkb3B0
Q0YocmF3QmxvY2tCdWZmZXIpOwogICAgICAgICBtX2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9u
ID0gMDsKIAotICAgICAgICBlcnIgPSBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkobV9j
dXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOworICAgICAgICBlcnIgPSBQQUw6OkNNQmxvY2tCdWZm
ZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSk7CiAgICAgICAg
IGlmIChlcnIpIHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNN
QXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRo
IGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVt
YWluaW5nKTsKQEAgLTExMDEsNyArMTA5OSw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAg
ICAgd2hpbGUgKGJ5dGVzVG9SZWFkKSB7CiAgICAgICAgIHNpemVfdCBzZWdtZW50U2l6ZUF0UG9z
aXRpb24gPSAwOwogICAgICAgICB1aW50OF90KiBibG9ja0J1ZmZlckRhdGEgPSBudWxscHRyOwot
ICAgICAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRC
bG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRT
aXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKKyAgICAg
ICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRC
bG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRT
aXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKICAgICAg
ICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgi
Q01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAg
ICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKQEAgLTExMzUs
NyArMTEzMyw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6
OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAjaWYgRU5BQkxFKFZQOSkKICAg
ICB1aW50OF90KiBibG9ja0J1ZmZlckRhdGEgPSBudWxscHRyOwogICAgIHNpemVfdCBzZWdtZW50
U2l6ZUF0UG9zaXRpb24gPSAwOwotICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckdldERhdGFQ
b2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCAwLCAmc2VnbWVudFNpemVBdFBvc2l0
aW9uLCBudWxscHRyLCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOworICAgIGF1dG8gZXJyID0g
UEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0
KCksIDAsICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVm
ZmVyRGF0YSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BP
U1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIgZmFpbGVkIHdpdGggZXJyb3IiLCBl
cnIpOwogICAgICAgICByZXR1cm47CkBAIC0xMTc5LDkgKzExNzcsOSBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3Qg
Q01UaW1lJiBwcgogICAgICAgICBkdXJhdGlvbiA9IHRyYWNrLmRlZmF1bHRfZHVyYXRpb24udmFs
dWUoKSAqIHByZXNlbnRhdGlvblRpbWUudGltZXNjYWxlIC8gMTAwMDAwMDAwMDsKIAogICAgIENN
U2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgc2l6ZV90IGZy
YW1lU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fY3VycmVudEJsb2NrQnVmZmVy
LmdldCgpKTsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nID0geyBDTVRpbWVNYWtlKGR1
cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRpbWVzY2FsZSksIHByZXNlbnRhdGlvblRpbWUsIHBy
ZXNlbnRhdGlvblRpbWUgfTsKLSAgICBlcnIgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5KGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCB0aGlzLT5mb3Jt
YXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVDb3VudCwgMSwgJnRpbWluZywgMSwgJmZyYW1l
U2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CisgICAgc2l6ZV90IGZyYW1lU2l6ZSA9IFBBTDo6Q01C
bG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOworICAg
IENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmcgPSB7IFBBTDo6Q01UaW1lTWFrZShkdXJhdGlvbiwg
cHJlc2VudGF0aW9uVGltZS50aW1lc2NhbGUpLCBwcmVzZW50YXRpb25UaW1lLCBwcmVzZW50YXRp
b25UaW1lIH07CisgICAgZXJyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5KGtDRkFs
bG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCB0aGlzLT5mb3JtYXRE
ZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVDb3VudCwgMSwgJnRpbWluZywgMSwgJmZyYW1lU2l6
ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAgICBQQVJTRVJfTE9H
X0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5IGZhaWxlZCB3aXRo
IGVycm9yIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTE5MSw3ICsxMTg5LDcgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVm
ZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICBtX2N1cnJlbnRCbG9ja0J1ZmZlciA9IG51bGxwdHI7
CiAgICAgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3NpdGlvbiA9IDA7CiAKLSAgICBhdXRvIGF0dGFj
aG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2Ft
cGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKKyAgICBhdXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0
KCksIHRydWUpOwogICAgIEFTU0VSVChhdHRhY2htZW50c0FycmF5KTsKICAgICBpZiAoIWF0dGFj
aG1lbnRzQXJyYXkpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5IHJldHVybmVkIE5VTEwiKTsKQEAg
LTEyMDEsNyArMTE5OSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAgICAgaWYgKCFpc0tl
eSkgewogICAgICAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50
KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICAgICAgQ0ZNdXRh
YmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVE
aWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkp
KTsKLSAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1w
bGVBdHRhY2htZW50S2V5X05vdFN5bmMsIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENG
RGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfTm90U3luYywga0NGQm9vbGVhblRydWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMjgy
LDEyICsxMjgwLDEyIEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRp
b1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgICAgICAgICByZXR1
cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CiAgICAgICAgIH0KIAotICAgICAgICBh
dXRvIHN0cmVhbURlc2NyaXB0aW9uID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFt
QmFzaWNEZXNjcmlwdGlvbihmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgICAgIGF1dG8g
c3RyZWFtRGVzY3JpcHRpb24gPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVh
bUJhc2ljRGVzY3JpcHRpb24oZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCkpOwogICAgICAgICBpZiAo
IXN0cmVhbURlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BP
U1NJQkxFKCJDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
IGZhaWxlZCIpOwogICAgICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5p
bmcpOwogICAgICAgICB9Ci0gICAgICAgIG1fcGFja2V0RHVyYXRpb24gPSBDTVRpbWVNYWtlKHN0
cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFja2V0LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNh
bXBsZVJhdGUpOworICAgICAgICBtX3BhY2tldER1cmF0aW9uID0gUEFMOjpDTVRpbWVNYWtlKHN0
cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFja2V0LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNh
bXBsZVJhdGUpOwogCiAgICAgICAgIHNldEZvcm1hdERlc2NyaXB0aW9uKFdURk1vdmUoZm9ybWF0
RGVzY3JpcHRpb24pKTsKICAgICB9IGVsc2UgaWYgKGNvZGVjKCkgPT0gQ29kZWNUeXBlOjpPcHVz
KSB7CkBAIC0xMzA5LDcgKzEzMDcsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2Vy
V2ViTTo6QXVkaW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgIG1f
Y3VycmVudFBhY2tldEJ5dGVPZmZzZXQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9jdXJyZW50UGFj
a2V0U2l6ZSA9IHN0ZDo6bnVsbG9wdDsKIAotICAgIGF1dG8gc2FtcGxlRHVyYXRpb24gPSBDTVRp
bWVHZXRTZWNvbmRzKENNVGltZVN1YnRyYWN0KHByZXNlbnRhdGlvblRpbWUsIG1fc2FtcGxlUHJl
c2VudGF0aW9uVGltZSkpICsgQ01UaW1lR2V0U2Vjb25kcyhtX3BhY2tldER1cmF0aW9uKSAqIHNh
bXBsZUNvdW50OworICAgIGF1dG8gc2FtcGxlRHVyYXRpb24gPSBQQUw6OkNNVGltZUdldFNlY29u
ZHMoUEFMOjpDTVRpbWVTdWJ0cmFjdChwcmVzZW50YXRpb25UaW1lLCBtX3NhbXBsZVByZXNlbnRh
dGlvblRpbWUpKSArIFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhtX3BhY2tldER1cmF0aW9uKSAqIHNh
bXBsZUNvdW50OwogICAgIGlmIChzYW1wbGVEdXJhdGlvbiA+PSBtX21pbmltdW1TYW1wbGVEdXJh
dGlvbikKICAgICAgICAgY3JlYXRlU2FtcGxlQnVmZmVyKG1ldGFkYXRhLnBvc2l0aW9uKTsKIApA
QCAtMTMyNCwyMSArMTMyMiwyMSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlv
VHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoc3RkOjpvcHRpb25hbDxzaQogICAgIEFTU0VS
VCghbV9wYWNrZXREYXRhLmlzRW1wdHkoKSk7CiAKICAgICBDTUJsb2NrQnVmZmVyUmVmIGJsb2Nr
QnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRo
TWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbV9wYWNrZXREYXRhLnNp
emVJbkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIG1fcGFja2V0RGF0
YS5zaXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9j
a0J1ZmZlcik7CisgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVt
b3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbV9wYWNrZXREYXRhLnNpemVJ
bkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIG1fcGFja2V0RGF0YS5z
aXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1
ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJ
QkxFKCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZhaWxlZCB3aXRoICVkIiwg
ZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yo
YmxvY2tCdWZmZXIpOwogCi0gICAgZXJyID0gQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMo
bV9wYWNrZXREYXRhLmRhdGEoKSwgYnVmZmVyLmdldCgpLCAwLCBtX3BhY2tldERhdGEuc2l6ZUlu
Qnl0ZXMoKSk7CisgICAgZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyht
X3BhY2tldERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0KCksIDAsIG1fcGFja2V0RGF0YS5zaXplSW5C
eXRlcygpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9T
U0lCTEUoIkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1Nh
bXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgZXJyID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIu
Z2V0KCksIGZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNp
emUoKSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lLCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRh
KCksICZyYXdTYW1wbGVCdWZmZXIpOworICAgIGVyciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBi
dWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIG1fcGFja2V0RGVzY3JpcHRp
b25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lLCBtX3BhY2tldERlc2NyaXB0aW9u
cy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFS
U0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQ
YWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlV
dGlsaXRpZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1ZQOVV0aWxpdGllc0NvY29hLm1tCmluZGV4IGU5Zjg2ZGVhNDM4ZTg5NWU2M2RiZGUwN2M0ZDk1
ZjliNWFlZjE4Y2MuLmFhNzM2Y2YxNDlhNDc0YmEyNjNjYWFjZDY2NDJkZTc4Zjc3ODg3N2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxp
dGllc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1ZQOVV0aWxpdGllc0NvY29hLm1tCkBAIC00Nyw3ICs0Nyw2IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSB3ZWJtOwogCiBW
UDlUZXN0aW5nT3ZlcnJpZGVzJiBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKQpAQCAt
MzYyLDExICszNjEsMTEgQEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZlcnRUb0NNQ29sb3JQcmlt
YXJpZXModWludDhfdCBwcmltYXJpZXMpCiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclBy
aW1hcmllczo6U01QVEVfU1RfMjQwOgogICAgICAgICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJDb2xv
clByaW1hcmllc19TTVBURV9DOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJp
ZXM6OlNNUFRFX1JQXzQzMV8yOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25D
b2xvclByaW1hcmllc19EQ0lfUDM7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2Ny
aXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29s
b3JQcmltYXJpZXM6OlNNUFRFX0VHXzQzMl8xOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVz
Y3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjU7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZv
cm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1OwogICAgIGNhc2UgVlBDb25maWd1
cmF0aW9uQ29sb3JQcmltYXJpZXM6OkJUXzIwMjBfTm9uY29uc3RhbnRfTHVtaW5hbmNlOgotICAg
ICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIw
OworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVz
X0lUVV9SXzIwMjA7CiAgICAgfQogCiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00MjAsMTggKzQx
OSwxOCBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRvQ01UcmFuc2ZlckZ1bmN0aW9uKHVp
bnQ4X3QgY2hhcmFjdGVyaXN0aWNzKQogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJD
aGFyYWN0ZXJpc3RpY3M6OlNNUFRFX1NUXzI0MDoKICAgICAgICAgcmV0dXJuIGtDVkltYWdlQnVm
ZmVyVHJhbnNmZXJGdW5jdGlvbl9TTVBURV8yNDBNXzE5OTU7CiAgICAgY2FzZSBWUENvbmZpZ3Vy
YXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfMjA4NDoKLSAgICAgICAgcmV0
dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BR
OworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fU01QVEVfU1RfMjA4NF9QUTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hh
cmFjdGVyaXN0aWNzOjpCVF8yMDIwXzEwYml0OgogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJh
bnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBfMTJiaXQ6Ci0gICAgICAgIHJldHVybiBrQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0
dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjA7
CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVf
U1RfNDI4XzE6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fU01QVEVfU1RfNDI4XzE7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMTsKICAgICBjYXNlIFZQQ29uZmln
dXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpCVF8yMTAwX0hMRzoKLSAgICAgICAgcmV0
dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRzsK
KyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X0lUVV9SXzIxMDBfSExHOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0
ZXJpc3RpY3M6OklFQ182MTk2Nl8yXzE6Ci0gICAgICAgIHJldHVybiBjYW5Mb2FkX0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpID8gUEFMOjpnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgOiBu
dWxscHRyOworICAgICAgICByZXR1cm4gUEFMOjpjYW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgOiBudWxscHRyOwogICAg
IGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkxpbmVhcjoKLSAg
ICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7
CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9MaW5lYXI7CiAgICAgfQogCiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00NjcsNyArNDY2LDcg
QEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZlcnRUb0NNWUNiQ1JNYXRyaXgodWludDhfdCBjb2Vm
ZmljaWVudHMpCiB7CiAgICAgc3dpdGNoIChjb2VmZmljaWVudHMpIHsKICAgICBjYXNlIFZQQ29u
ZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFu
Y2U6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9S
XzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRy
aXhfSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50
czo6QlRfNDcwXzdfQkc6CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25NYXRyaXhDb2VmZmljaWVu
dHM6OkJUXzYwMV83OgogICAgICAgICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJZQ2JDck1hdHJpeF9J
VFVfUl82MDFfNDsKQEAgLTU0MywxMSArNTQyLDExIEBAIHN0YXRpYyBSZXRhaW5QdHI8Q01Gb3Jt
YXREZXNjcmlwdGlvblJlZj4gY3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2RlY0NvbmZp
CiAgICAgQ0ZUeXBlUmVmIGNvbmZpZ3VyYXRpb25WYWx1ZXNbXSA9IHsgZGF0YS5nZXQoKSB9Owog
ICAgIGF1dG8gY29uZmlndXJhdGlvbkRpY3QgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBjb25maWd1cmF0aW9uS2V5cywgY29uZmlndXJhdGlvblZhbHVl
cywgV1RGX0FSUkFZX0xFTkdUSChjb25maWd1cmF0aW9uS2V5cyksICZrQ0ZUeXBlRGljdGlvbmFy
eUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKIAotICAg
IFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNLZXlzIHsga0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcyB9OworICAgIFZlY3RvcjxD
RlR5cGVSZWY+IGV4dGVuc2lvbnNLZXlzIHsgUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zIH07CiAgICAgVmVjdG9yPENGVHlw
ZVJlZj4gZXh0ZW5zaW9uc1ZhbHVlcyA9IHsgY29uZmlndXJhdGlvbkRpY3QuZ2V0KCkgfTsKIAog
ICAgIGlmIChyZWNvcmQudmlkZW9GdWxsUmFuZ2VGbGFnID09IFZQQ29uZmlndXJhdGlvblJhbmdl
OjpGdWxsUmFuZ2UpIHsKLSAgICAgICAgZXh0ZW5zaW9uc0tleXMuYXBwZW5kKGtDTUZvcm1hdERl
c2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvKTsKKyAgICAgICAgZXh0ZW5zaW9uc0tl
eXMuYXBwZW5kKFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlk
ZW8pOwogICAgICAgICBleHRlbnNpb25zVmFsdWVzLmFwcGVuZChrQ0ZCb29sZWFuVHJ1ZSk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KaW5kZXggY2Vh
MTU2YWUyZmJlMjVhZGEwMDc2NjhlOTFkNTBlNTYxYzY0MmU0ZS4uN2I1MzhiMWU5OGVmODk5NTVl
ZWU4Zjc5ODRhNTM3MDBlMTkzN2I3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbi5tbQpAQCAtNDMsOSArNDMsMTEgQEAKICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5r
LmgiCiAjaW1wb3J0ICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgogCi11c2luZyBuYW1lc3BhY2Ug
UEFMOwotCi1XVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKKy8vIFdU
Rl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOwordGVtcGxhdGUgPD4KK3N0
cnVjdCBXVEY6OkNGVHlwZVRyYWl0PENNU2FtcGxlQnVmZmVyUmVmPiB7CisgICAgc3RhdGljIGlu
bGluZSBDRlR5cGVJRCB0eXBlSUQodm9pZCkgeyByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dFR5cGVJRCgpOyB9Cit9OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcyLDcgKzc0LDcg
QEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKENNVGltZWJh
c2VSZWYgdGltZWJhc2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX3RpbWViYXNlKQot
ICAgICAgICBDTVRpbWViYXNlUmVtb3ZlVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdl
dCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgUEFMOjpDTVRpbWViYXNlUmVtb3Zl
VGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgp
KTsKIAogICAgIG1fdGltZWJhc2UgPSB0aW1lYmFzZTsKIApAQCAtODQsNyArODYsNyBAQCB2b2lk
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c2V0VGltZWJhc2UoQ01UaW1lYmFzZVJlZiB0
aW1lYmFzZSkKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgZGlzcGF0Y2hfYWN0aXZhdGUo
bV90aW1lclNvdXJjZS5nZXQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgQ01UaW1lYmFzZUFkZFRp
bWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7
CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZUFkZFRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFz
ZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAgICAgfQogfQogCkBAIC0xMDQsMTIgKzEw
NiwxMiBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bWF5YmVCZWNvbWVSZWFk
eUZvck1vcmVNZWRpYURhdGEoKQogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVu
cXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBib29sIGRpc3BsYXlp
bmcpCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBpZiAobm9FcnIgIT0g
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVyLCAwLCBu
dWxscHRyLCAmaXRlbUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIDAsIG51bGxwdHIsICZpdGVt
Q291bnQpKQogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZv
PiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsK
LSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
c2FtcGxlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIp
KQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5KHNhbXBsZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBu
dWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ01CdWZmZXJDYWxsYmFja3MgY29u
dGFpbnMgNjQtYml0IHBvaW50ZXJzIHRoYXQgYXJlbid0IDgtYnl0ZSBhbGlnbmVkLiBUbyBzdXBw
cmVzcyB0aGUgbGlua2VyCkBAIC0xMzQsNyArMTM2LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVy
LAogICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihjYWxsYmFja3MuY2FsbGJhY2tzLnZlcnNp
b24pID09IHNpemVvZih1aW50MzJfdCksICJWZXJzaW9uIGZpZWxkIG11c3QgYmUgNCBieXRlcyIp
OwogICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoQnVmZmVyQ2FsbGJhY2tzKSA9PSA0LCAi
Q01CdWZmZXJDYWxsYmFja3Mgc3RydWN0IG11c3QgaGF2ZSA0IGJ5dGUgYWxpZ25tZW50Iik7CiAK
LSAgICAgICAgQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11
bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKKyAgICAgICAgUEFM
OjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNp
dHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOwogICAgICAgICBtX3Byb2R1Y2Vy
UXVldWUgPSBhZG9wdENGKG91dFF1ZXVlKTsKICAgICB9CiAKQEAgLTE1Niw3ICsxNTgsNyBAQCB2
b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZShDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGVCdWZmZXIsCiAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGNhbGxi
YWNrcy5jYWxsYmFja3MudmVyc2lvbikgPT0gc2l6ZW9mKHVpbnQzMl90KSwgIlZlcnNpb24gZmll
bGQgbXVzdCBiZSA0IGJ5dGVzIik7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihCdWZm
ZXJDYWxsYmFja3MpID09IDQsICJDTUJ1ZmZlckNhbGxiYWNrcyBzdHJ1Y3QgYWxpZ25tZW50IG11
c3QgYmUgNCIpOwogCi0gICAgICAgIENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7
CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBr
TWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKICAgICAg
ICAgbV9jb25zdW1lclF1ZXVlID0gYWRvcHRDRihvdXRRdWV1ZSk7CiAgICAgfQogCkBAIC0xNzcs
MjAgKzE3OSwyMCBAQCBib29sIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c2hvdWxkRGVj
b2RlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYgogICAgIGlmICghbV90aW1lYmFz
ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBhdXRvIGN1cnJlbnRUaW1lID0gQ01UaW1l
YmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSk7Ci0gICAgYXV0byBwcmVzZW50YXRpb25TdGFy
dFRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOwot
ICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7Ci0g
ICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gQ01UaW1lQWRkKHByZXNlbnRhdGlvblN0YXJ0
VGltZSwgZHVyYXRpb24pOwotICAgIGlmIChDTVRpbWVDb21wYXJlKHByZXNlbnRhdGlvbkVuZFRp
bWUsIGN1cnJlbnRUaW1lKSA+PSAwKQorICAgIGF1dG8gY3VycmVudFRpbWUgPSBQQUw6OkNNVGlt
ZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpOworICAgIGF1dG8gcHJlc2VudGF0aW9uU3Rh
cnRUaW1lID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1w
bGUpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24o
c2FtcGxlKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBQQUw6OkNNVGltZUFkZChw
cmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9uKTsKKyAgICBpZiAoUEFMOjpDTVRpbWVDb21w
YXJlKHByZXNlbnRhdGlvbkVuZFRpbWUsIGN1cnJlbnRUaW1lKSA+PSAwKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBh
dHRhY2htZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5
KHNhbXBsZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgZm9yIChDRkluZGV4IGluZGV4ID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291
bnQoYXR0YWNobWVudHMpOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CiAgICAgICAgIENGRGlj
dGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCA9IChDRkRpY3Rpb25hcnlSZWYpQ0ZBcnJheUdldFZh
bHVlQXRJbmRleChhdHRhY2htZW50cywgaW5kZXgpOwotICAgICAgICBDRkJvb2xlYW5SZWYgZGVw
ZW5kZWRPbiA9IChDRkJvb2xlYW5SZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0YWNobWVudERp
Y3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMpOworICAgICAg
ICBDRkJvb2xlYW5SZWYgZGVwZW5kZWRPbiA9IChDRkJvb2xlYW5SZWYpQ0ZEaWN0aW9uYXJ5R2V0
VmFsdWUoYXR0YWNobWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVu
ZGVkT25CeU90aGVycyk7CiAgICAgICAgIGlmIChkZXBlbmRlZE9uICYmICFDRkJvb2xlYW5HZXRW
YWx1ZShkZXBlbmRlZE9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0y
MDMsMTQgKzIwNSwxNCBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5zdXJl
RGVjb21wcmVzc2lvblNlc3Npb25Gb3JTYW1wbGUoQ01TYW1wbGVCdQogICAgIGlmIChpc0ludmFs
aWRhdGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNj
cmlwdGlvbihzYW1wbGUpOworICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zv
cm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9u
KHNhbXBsZSk7CiAgICAgaWYgKG1fZGVjb21wcmVzc2lvblNlc3Npb24gJiYgIVZURGVjb21wcmVz
c2lvblNlc3Npb25DYW5BY2NlcHRGb3JtYXREZXNjcmlwdGlvbihtX2RlY29tcHJlc3Npb25TZXNz
aW9uLmdldCgpLCB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uKSkgewogICAgICAgICBWVERlY29tcHJl
c3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcyhtX2RlY29tcHJlc3Npb25TZXNz
aW9uLmdldCgpKTsKICAgICAgICAgbV9kZWNvbXByZXNzaW9uU2Vzc2lvbiA9IG51bGxwdHI7CiAg
ICAgfQogCiAgICAgaWYgKCFtX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7Ci0gICAgICAgIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOworICAgICAgICBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOwogICAgICAgICBhdXRvIHZpZGVvRGVjb2Rl
clNwZWNpZmljYXRpb24gPSBAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilrVlRWaWRlb0RlY29kZXJT
cGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0RlY29kZXI6IEAoIG1f
aGFyZHdhcmVEZWNvZGVyRW5hYmxlZCApIH07CiAKICAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRy
aWJ1dGVzOwpAQCAtMjU2LDcgKzI1OCw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjpkZWNvZGVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBib29sIGRpCiAKICAg
ICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIFZU
RGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZVdpdGhPdXRwdXRIYW5kbGVyKG1fZGVjb21w
cmVzc2lvblNlc3Npb24uZ2V0KCksIHNhbXBsZSwgZmxhZ3MsIG51bGxwdHIsIFt0aGlzLCBkaXNw
bGF5aW5nLCBzdGFydFRpbWVdKE9TU3RhdHVzIHN0YXR1cywgVlREZWNvZGVJbmZvRmxhZ3MgaW5m
b0ZsYWdzLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVRpbWUgcHJlc2VudGF0aW9u
VGltZVN0YW1wLCBDTVRpbWUgcHJlc2VudGF0aW9uRHVyYXRpb24pIHsKLSAgICAgICAgZG91Ymxl
IGRlbHRhUmF0aW8gPSAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLnNlY29uZHMo
KSAvIENNVGltZUdldFNlY29uZHMocHJlc2VudGF0aW9uRHVyYXRpb24pOworICAgICAgICBkb3Vi
bGUgZGVsdGFSYXRpbyA9IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkuc2Vjb25k
cygpIC8gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKHByZXNlbnRhdGlvbkR1cmF0aW9uKTsKIAogICAg
ICAgICB1cGRhdGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MoZGVsdGFSYXRpbyk7CiAgICAg
ICAgIGhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoZGlzcGxheWluZywgc3RhdHVzLCBpbmZvRmxh
Z3MsIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIHByZXNlbnRhdGlvbkR1cmF0
aW9uKTsKQEAgLTI4OSw3ICsyOTEsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlpbmcsIE9TUwogICAgICAg
ICArK21fZHJvcHBlZFZpZGVvRnJhbWVzOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIHJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgIGlmIChzdGF0dXMg
IT0gbm9FcnIgfHwgbm9FcnIgIT0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1h
Z2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsICZyYXdJbWFnZUJ1
ZmZlckRlc2NyaXB0aW9uKSkgeworICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgbm9FcnIgIT0g
UEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgJnJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24p
KSB7CiAgICAgICAgICsrbV9jb3JydXB0ZWRWaWRlb0ZyYW1lczsKICAgICAgICAgLS1tX2ZyYW1l
c0JlaW5nRGVjb2RlZDsKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEo
KTsKQEAgLTMwNCw3ICszMDYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlpbmcsIE9TUwogICAgIH07CiAK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdJbWFnZVNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0g
ICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsIGltYWdlQnVmZmVyRGVzY3JpcHRp
b24uZ2V0KCksICZpbWFnZUJ1ZmZlclRpbWluZywgJnJhd0ltYWdlU2FtcGxlQnVmZmVyKSkgewor
ICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsIGltYWdlQnVmZmVyRGVz
Y3JpcHRpb24uZ2V0KCksICZpbWFnZUJ1ZmZlclRpbWluZywgJnJhd0ltYWdlU2FtcGxlQnVmZmVy
KSkgewogICAgICAgICArK21fY29ycnVwdGVkVmlkZW9GcmFtZXM7CiAgICAgICAgIC0tbV9mcmFt
ZXNCZWluZ0RlY29kZWQ7CiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRh
KCk7CkBAIC0zMTgsMTEgKzMyMCwxMSBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlpbmcsIE9TUwogCiBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRG
aXJzdFZpZGVvRnJhbWUoKQogewotICAgIGlmICghbV9wcm9kdWNlclF1ZXVlIHx8IENNQnVmZmVy
UXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpCisgICAgaWYgKCFtX3Byb2R1Y2Vy
UXVldWUgfHwgUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVm
ZmVyUmVmPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKSk7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENW
UGl4ZWxCdWZmZXJSZWYpQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxl
LmdldCgpKTsKKyAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUg
PSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZl
clF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7CisgICAgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYp
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOwog
ICAgIEFTU0VSVChDRkdldFR5cGVJRChpbWFnZUJ1ZmZlci5nZXQoKSkgPT0gQ1ZQaXhlbEJ1ZmZl
ckdldFR5cGVJRCgpKTsKIAogICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7
CkBAIC0zMzUsMjUgKzMzNywyNSBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
YXV0b21hdGljRGVxdWV1ZSgpCiAgICAgaWYgKCFtX3RpbWViYXNlKQogICAgICAgICByZXR1cm47
CiAKLSAgICBhdXRvIHRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1f
dGltZWJhc2UuZ2V0KCkpKTsKKyAgICBhdXRvIHRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOwogICAgIExPRyhNZWRpYSwgIldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSglcCkgLSBwdXJnaW5n
IGFsbCBzYW1wbGVzIGJlZm9yZSB0aW1lKCVzKSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0Zjgo
KS5kYXRhKCkpOwogCiAgICAgTWVkaWFUaW1lIG5leHRGaXJlVGltZSA9IE1lZGlhVGltZTo6cG9z
aXRpdmVJbmZpbml0ZVRpbWUoKTsKICAgICBib29sIHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gZmFs
c2U7CiAKLSAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2Vk
X2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3Rh
bXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0
YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9N
ZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOworICAgIHdo
aWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNh
bXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFM
Ojp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1w
KGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRp
YVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CiAgICAg
ICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1l
c3RhbXAgKyBkdXJhdGlvbjsKICAgICAgICAgaWYgKHRpbWUgPiBwcmVzZW50YXRpb25FbmRUaW1l
c3RhbXApIHsKLSAgICAgICAgICAgIENGUmVsZWFzZShDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJl
dGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIENGUmVsZWFzZShQQUw6
OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwog
ICAgICAgICAgICAgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSB0cnVlOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KIAogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgYXV0byBiZWdp
biA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgICAgICBhdXRvIGVuZCA9IFBBTDo6
dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9k
dWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQ
QUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1
ZXVlLmdldCgpKSk7CiAgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6YXV0b21hdGljRGVxdWV1ZSglcCkgLSBxdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0
cmluZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsK
ICNlbmRpZgogCkBAIC0zNjUsNyArMzY3LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OmF1dG9tYXRpY0RlcXVldWUoKQogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9y
ZU1lZGlhRGF0YSgpOwogCiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHF1ZXVlIGVtcHR5IiwgdGhpcyk7Ci0gICAgQ01U
aW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUobV90aW1lYmFzZS5nZXQo
KSwgbV90aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0b0NNVGltZShuZXh0RmlyZVRpbWUpLCAwKTsK
KyAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlTmV4dEZpcmVUaW1lKG1f
dGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCksIFBBTDo6dG9DTVRpbWUobmV4dEZp
cmVUaW1lKSwgMCk7CiB9CiAKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1
ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGJvb2wgZGlzcGxheWlu
ZykKQEAgLTM4MywxNyArMzg1LDE3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAgICAgYm9v
bCBzaG91bGROb3RpZnkgPSB0cnVlOwogCiAgICAgaWYgKGRpc3BsYXlpbmcgJiYgbV90aW1lYmFz
ZSkgewotICAgICAgICBhdXRvIGN1cnJlbnRSYXRlID0gQ01UaW1lYmFzZUdldFJhdGUobV90aW1l
YmFzZS5nZXQoKSk7Ci0gICAgICAgIGF1dG8gY3VycmVudFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1l
KENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKLSAgICAgICAgYXV0byBwcmVz
ZW50YXRpb25TdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJl
c2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOwotICAgICAgICBhdXRvIHByZXNlbnRhdGlvbkVu
ZFRpbWUgPSBwcmVzZW50YXRpb25TdGFydFRpbWUgKyBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxl
QnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKSk7CisgICAgICAgIGF1dG8gY3VycmVudFJhdGUgPSBQ
QUw6OkNNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOworICAgICAgICBhdXRvIGN1
cnJlbnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGlt
ZWJhc2UuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
c2FtcGxlKSk7CisgICAgICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IHByZXNlbnRhdGlv
blN0YXJ0VGltZSArIFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0
aW9uKHNhbXBsZSkpOwogICAgICAgICBpZiAoY3VycmVudFRpbWUgPCBwcmVzZW50YXRpb25TdGFy
dFRpbWUgfHwgY3VycmVudFRpbWUgPj0gcHJlc2VudGF0aW9uRW5kVGltZSkKICAgICAgICAgICAg
IHNob3VsZE5vdGlmeSA9IGZhbHNlOwogCiAgICAgICAgIGlmIChjdXJyZW50UmF0ZSA+IDAgJiYg
cHJlc2VudGF0aW9uRW5kVGltZSA8IGN1cnJlbnRUaW1lKSB7CiAjaWYgIUxPR19ESVNBQkxFRAot
ICAgICAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdl
dEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAg
ICAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgICAg
ICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJz
dFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAg
ICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAg
ICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVk
U2FtcGxlKCVwKSAtIGRyb3BwaW5nIGZyYW1lIGxhdGUgYnkgJXMsIGZyYW1lc0JlaW5nRGVjb2Rl
ZCglZCksIHByb2R1Y2VyUXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcocHJlc2VudGF0
aW9uRW5kVGltZSAtIGN1cnJlbnRUaW1lKS51dGY4KCkuZGF0YSgpLCBtX2ZyYW1lc0JlaW5nRGVj
b2RlZCwgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgp
LmRhdGEoKSk7CiAjZW5kaWYKICAgICAgICAgICAgICsrbV9kcm9wcGVkVmlkZW9GcmFtZXM7CkBA
IC00MDEsMTcgKzQwMywxNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5x
dWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLAogICAgICAgICB9CiAg
ICAgfQogCi0gICAgQ01CdWZmZXJRdWV1ZUVucXVldWUobV9wcm9kdWNlclF1ZXVlLmdldCgpLCBz
YW1wbGUpOworICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUVucXVldWUobV9wcm9kdWNlclF1ZXVlLmdl
dCgpLCBzYW1wbGUpOwogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgIGF1dG8gYmVnaW4gPSBQQUw6
OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUo
Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENN
U2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOworICAgIGF1dG8g
YmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIGF1dG8gZW5kID0g
UEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1l
U3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1l
ID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKHNhbXBsZSkpOwogICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoJXApIC0gcHJlc2VudGF0aW9uVGltZSglcyksIGZy
YW1lc0JlaW5nRGVjb2RlZCglZCksIHByb2R1Y2VyUXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9T
dHJpbmcocHJlc2VudGF0aW9uVGltZSkudXRmOCgpLmRhdGEoKSwgbV9mcmFtZXNCZWluZ0RlY29k
ZWQsIHRvU3RyaW5nKGJlZ2luKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5k
YXRhKCkpOwogI2VuZGlmCiAKICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFz
ZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgp
LCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJE
aXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJT
b3VyY2UuZ2V0KCkpOwogCiAgICAgaWYgKCFtX2hhc0F2YWlsYWJsZUZyYW1lQ2FsbGJhY2spCiAg
ICAgICAgIHJldHVybjsKQEAgLTQyNiw3ICs0MjgsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
LAogCiBib29sIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aXNSZWFkeUZvck1vcmVNZWRp
YURhdGEoKSBjb25zdAogewotICAgIENNSXRlbUNvdW50IHByb2R1Y2VyQ291bnQgPSBtX3Byb2R1
Y2VyUXVldWUgPyBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQobV9wcm9kdWNlclF1ZXVlLmdl
dCgpKSA6IDA7CisgICAgQ01JdGVtQ291bnQgcHJvZHVjZXJDb3VudCA9IG1fcHJvZHVjZXJRdWV1
ZSA/IFBBTDo6Q01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQo
KSkgOiAwOwogICAgIHJldHVybiBtX2ZyYW1lc0JlaW5nRGVjb2RlZCArIHByb2R1Y2VyQ291bnQg
PD0ga0hpZ2hXYXRlck1hcms7CiB9CiAKQEAgLTQ1Miw3ICs0NTQsNyBAQCB2b2lkIFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6c3RvcFJlcXVlc3RpbmdNZWRpYURhdGEoKQogCiB2b2lkIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJh
bWUoc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNhbGxiYWNrKQogewotICAgIGlmIChjYWxsYmFjayAm
JiBtX3Byb2R1Y2VyUXVldWUgJiYgIUNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpIHsKKyAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNlclF1ZXVlICYmICFQQUw6
OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKICAgICAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja10gewogICAgICAgICAgICAgY2FsbGJh
Y2soKTsKICAgICAgICAgfSk7CkBAIC00NjMsNyArNDY1LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVu
Y3Rpb24KIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgSW1hZ2VGb3JUaW1l
RmxhZ3MgZmxhZ3MpCiB7Ci0gICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSkpIHsKKyAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKCVwKSAtIHRpbWUoJXMpLCBxdWV1ZSBlbXB0eSIsIHRo
aXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CkBAIC00NzEsOSArNDczLDkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKICAg
ICBib29sIGFsbG93RWFybGllciA9IGZsYWdzID09IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6QWxsb3dFYXJsaWVyOwogICAgIGJvb2wgYWxsb3dMYXRlciA9IGZsYWdzID09IFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dMYXRlcjsKIAotICAgIE1lZGlhVGltZSBzdGFydFRp
bWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRp
bWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBNZWRpYVRpbWUgc3RhcnRUaW1l
ID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICNpZiAhTE9HX0RJU0FCTEVECi0g
ICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRF
bmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgTWVk
aWFUaW1lIGVuZFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVu
ZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICNlbmRpZgog
ICAgIGlmICghYWxsb3dMYXRlciAmJiB0aW1lIDwgc3RhcnRUaW1lKSB7CiAgICAgICAgIExPRyhN
ZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKCVwKSAtIHRp
bWUoJXMpIHRvbyBlYXJseSBmb3IgcXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcodGlt
ZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoc3RhcnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0
cmluZyhlbmRUaW1lKS51dGY4KCkuZGF0YSgpKTsKQEAgLTQ4MiwyNCArNDg0LDI0IEBAIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdl
Rm9yVGltZShjb25zdCBNZWRpCiAKICAgICBib29sIHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gZmFs
c2U7CiAKLSAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2Vk
X2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3Rh
bXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0
YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9N
ZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOworICAgIHdo
aWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNh
bXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFM
Ojp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1w
KGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRp
YVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CiAgICAg
ICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1l
c3RhbXAgKyBkdXJhdGlvbjsKICAgICAgICAgaWYgKCFhbGxvd0xhdGVyICYmIHByZXNlbnRhdGlv
blRpbWVzdGFtcCA+IHRpbWUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
aWYgKCFhbGxvd0VhcmxpZXIgJiYgcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wIDwgdGltZSkgewot
ICAgICAgICAgICAgQ0ZSZWxlYXNlKENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgQ0ZSZWxlYXNlKFBBTDo6Q01CdWZmZXJR
dWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAg
ICByZWxlYXNlZEltYWdlQnVmZmVycyA9IHRydWU7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCi0gICAgICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNh
bXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZl
clF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7Ci0gICAgICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVy
UmVmKUNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7Cisg
ICAgICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0
Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVE
ZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICAgICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOwogICAg
ICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoaW1hZ2VCdWZmZXIuZ2V0KCkpID09IENWUGl4ZWxCdWZm
ZXJHZXRUeXBlSUQoKSk7CiAKICAgICAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgICAgICBD
TVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJh
c2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICAgICAgUEFMOjpDTVRpbWVi
YXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0
KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JN
b3JlTWVkaWFEYXRhKCk7CiAKQEAgLTUwOCw3ICs1MTAsNyBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3Qg
TWVkaQogICAgIH0KIAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNlU2V0
VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1f
dGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3Bh
dGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJj
ZS5nZXQoKSk7CiAKICAgICBpZiAocmVsZWFzZWRJbWFnZUJ1ZmZlcnMpCiAgICAgICAgIG1heWJl
QmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC01MjAsOSArNTIyLDkgQEAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VG
b3JUaW1lKGNvbnN0IE1lZGkKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpmbHVz
aCgpCiB7CiAgICAgbV9kZWNvbXByZXNzaW9uUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIG11dGFibGUgewotICAgICAgICBDTUJ1ZmZl
clF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9wcm9kdWNlclF1ZXVlLmdldCgpKTsKKyAgICAg
ICAgUEFMOjpDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9wcm9kdWNlclF1ZXVl
LmdldCgpKTsKICAgICAgICAgbV9lbnF1ZWluZ1F1ZXVlLT5kaXNwYXRjaFN5bmMoW3Byb3RlY3Rl
ZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7Ci0gICAgICAgICAgICBDTUJ1ZmZlclF1
ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25zdW1lclF1ZXVlLmdldCgpKTsKKyAgICAgICAg
ICAgIFBBTDo6Q01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fY29uc3VtZXJRdWV1
ZS5nZXQoKSk7CiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2ZyYW1lc1NpbmNlTGFzdFFv
c0NoZWNrID0gMDsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fY3VycmVudFFvc1RpZXIg
PSAwOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmVzZXRRb3NUaWVyKCk7CkBAIC01MzMs
MjQgKzUzNSwyNCBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQog
Q01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RGVjb2RlVGltZShDTUJ1ZmZl
clJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNr
ZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsKLSAgICByZXR1cm4gQ01TYW1wbGVC
dWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoc2FtcGxlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChzYW1wbGUpOwogfQogCiBDTVRpbWUgV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50YXRpb25UaW1lKENNQnVmZmVyUmVmIGJ1Ziwg
dm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0
PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFBy
ZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7CiB9CiAKIENNVGltZSBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKENNQnVmZmVyUmVmIGJ1Ziwgdm9pZCop
CiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2Ft
cGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9u
KHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1w
bGUpOwogfQogCiBDRkNvbXBhcmlzb25SZXN1bHQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
Ojpjb21wYXJlQnVmZmVycyhDTUJ1ZmZlclJlZiBidWYxLCBDTUJ1ZmZlclJlZiBidWYyLCB2b2lk
KiByZWZjb24pCiB7Ci0gICAgcmV0dXJuIChDRkNvbXBhcmlzb25SZXN1bHQpQ01UaW1lQ29tcGFy
ZShnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjEsIHJlZmNvbiksIGdldFByZXNlbnRhdGlvblRpbWUo
YnVmMiwgcmVmY29uKSk7CisgICAgcmV0dXJuIChDRkNvbXBhcmlzb25SZXN1bHQpUEFMOjpDTVRp
bWVDb21wYXJlKGdldFByZXNlbnRhdGlvblRpbWUoYnVmMSwgcmVmY29uKSwgZ2V0UHJlc2VudGF0
aW9uVGltZShidWYyLCByZWZjb24pKTsKIH0KIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OnJlc2V0UW9zVGllcigpCkBAIC02MDIsNyArNjA0LDcgQEAgdm9pZCBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OnVwZGF0ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyhkb3Vi
bGUgcmF0aW8KICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRv
dWJsZSByYXRlID0gQ01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7CisgICAgZG91
YmxlIHJhdGUgPSBQQUw6OkNNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOwogICAg
IGlmICghcmF0ZSkKICAgICAgICAgcmF0ZSA9IDE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1t
CmluZGV4IGUzZjA5MjcwMzQ4ZTdhNWFlZjcyNjZlYjQ3MmRkYmFlNzNiYzM0MDcuLmYzMTY5YWJj
MDI3NzA4MmYwY2ZjZTQ3MjY3OWUxMTA3OTdjOGM5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRp
YyBpbmxpbmUgQ0ZTdHJpbmdSZWYgY3ZQaXhlbEZvcm1hdE9wZW5HTEtleSgpCiB7CkBAIC0xMzgs
NyArMTM3LDcgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcihDVlBpeGVsQnUKIAogUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKENNU2Ft
cGxlQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBy
ZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291
cmNlQnVmZmVyKSwgc2l6ZSk7CisgICAgcmV0dXJuIGNvbnZlcnRQaXhlbEJ1ZmZlcihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSwgc2l6ZSk7CiB9CiAKIFJl
dGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVy
dENNU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKQEAgLTE0Niw5ICsxNDUsOSBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQog
ICAgIGlmICghc291cmNlQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1
dG8gZGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNvdXJj
ZUJ1ZmZlcik7Ci0gICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRTaXplKENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVzY3JpcHRpb24sIHRydWUsIHRy
dWUpKTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJl
Zj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpKTsKKyAgICBhdXRv
IGRlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNv
dXJjZUJ1ZmZlcik7CisgICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRTaXplKFBBTDo6Q01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwg
dHJ1ZSwgdHJ1ZSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVs
QnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVy
KSk7CiAgICAgaWYgKHNpemUgPT0gZXhwYW5kZWRJbnRTaXplKHNvdXJjZVNpemUpICYmIG1fcGl4
ZWxGb3JtYXQgPT0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikp
CiAgICAgICAgIHJldHVybiByZXRhaW5QdHIoc291cmNlQnVmZmVyKTsKIApAQCAtMTYwLDcgKzE1
OSw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBhdXRvIHN0YXR1cyA9IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgMSwgbnVsbHB0
ciwgJml0ZW1Db3VudCk7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgMSwgbnVsbHB0ciwgJml0ZW1Db3Vu
dCk7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRp
YSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkgZmFpbGVkIHdpdGggZXJyb3IgY29kZTog
JWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
QEAgLTE2OSw3ICsxNjgsNyBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIENNU2FtcGxl
VGltaW5nSW5mbyogdGltZWluZ0luZm9QdHIgPSBudWxscHRyOwogICAgIGlmIChpdGVtQ291bnQp
IHsKICAgICAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICAgICAgc3Rh
dHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVy
LCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOworICAgICAgICBz
dGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJj
ZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsKICAg
ICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0coTWVk
aWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5IGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6
ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTc4LDE0ICsxNzcsMTQgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICB9
CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBu
dWxscHRyOwotICAgIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvcklt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgp
LCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVy
dGVkUGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1
cyAhPSBub0VycikgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlRm9ySW1hZ2VCdWZmZXIgcmV0dXJuZWQ6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0
dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZm
ZXJSZWYgcmVzaXplZFNhbXBsZUJ1ZmZlcjsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBp
eGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltZWluZ0luZm9QdHIsICZyZXNp
emVkU2FtcGxlQnVmZmVyKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxC
dWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCB0aW1laW5nSW5mb1B0ciwgJnJlc2l6ZWRT
YW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYg
KHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogZmFpbGVkIHRvIGNyZWF0ZSBD
TVNhbXBsZUJ1ZmZlciB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0
dXMpKTsKQEAgLTIzNywxNiArMjM2LDE2IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIoQ1ZQaXhlCiAgICAg
fQogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0g
bnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlu
cHV0QnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGF1dG8gc3RhdHVzID0g
UEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgJmZvcm1h
dERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1l
ZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyOiBmYWlsZWQg
dG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciBjb2RlOiAl
ZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBhdXRvIGNt
VGltZSA9IHRvQ01UaW1lKHNhbXBsZVRpbWUpOwotICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1p
bmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgY21UaW1lLCBjbVRpbWUgfTsKLSAgICBzdGF0dXMg
PSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlw
dGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOworICAgIGF1dG8gY21UaW1lID0gUEFM
Ojp0b0NNVGltZShzYW1wbGVUaW1lKTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5m
byA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgY21UaW1lLCBjbVRpbWUgfTsKKyAgICBzdGF0dXMg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksIGZvcm1hdERl
c2NyaXB0aW9uLCAmdGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7CiAgICAgQ0ZSZWxlYXNlKGZv
cm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
KE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyOiBmYWls
ZWQgdG8gaW5pdGlhbGl6ZSBDTVNhbXBsZUJ1ZmZlciB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3Rh
dGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQppbmRleCBlMGRh
YWM4NWI4NzNhZDZhYTliNGFiMmRiN2EwMDljYzM3ZDQ3ODk1Li4zMmEwNDQ5NmNmZjdkODQxMTEy
MGZjZDEzM2U2ZDY3NDI1NGE4NmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCkBAIC00Nyw3
ICs0Nyw2IEBAIFNPRlRMSU5LX0FWS0lUX0ZSQU1FV09SSygpCiBTT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZLaXQsIEFWVmFsdWVUaW1pbmcpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpQbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VBVktpdChQbGF5YmFja1Nlc3Npb25Nb2RlbCYgbW9kZWwpCiAgICAg
OiBtX3BsYXllckNvbnRyb2xsZXIoYWRvcHROUyhbW1dlYkFWUGxheWVyQ29udHJvbGxlciBhbGxv
Y10gaW5pdF0pKQpAQCAtMTQ1LDcgKzE0NCw3IEBAIHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlQVZLaXQ6OnNlZWthYmxlUmFuZ2VzQ2hhbmdlZChjb25zdCBUaW1lUmFuZ2VzJiB0aW1lCiAg
ICAgICAgIGRvdWJsZSBzdGFydCA9IHRpbWVSYW5nZXMuc3RhcnQoaSkucmVsZWFzZVJldHVyblZh
bHVlKCk7CiAgICAgICAgIGRvdWJsZSBlbmQgPSB0aW1lUmFuZ2VzLmVuZChpKS5yZWxlYXNlUmV0
dXJuVmFsdWUoKTsKIAotICAgICAgICBDTVRpbWVSYW5nZSByYW5nZSA9IENNVGltZVJhbmdlTWFr
ZShDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBDTVRpbWVNYWtlV2l0aFNlY29u
ZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CisgICAgICAgIENNVGltZVJhbmdlIHJhbmdlID0gUEFMOjpD
TVRpbWVSYW5nZU1ha2UoUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBQ
QUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhlbmQtc3RhcnQsIDEwMDApKTsKICAgICAgICAgW3Nl
ZWthYmxlUmFuZ2VzIGFkZE9iamVjdDpbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWVSYW5nZTpyYW5n
ZV1dOwogICAgIH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRleCBlYTQyM2M3MTdjN2Fl
OTFiZDRlZTk5MDg3ZTA3YzRlNWMzN2U0YzNmLi41ZGYzNDlmYzZmY2RmY2ZhZWE3NTU2MzIwZjNh
ZTZlNjY3NjM0ZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTM3Myw3ICszNzMsNiBAQCAt
ICh2b2lkKXBpcEFjdGlvblN0b3A6KFBJUFZpZXdDb250cm9sbGVyICopcGlwCiBAZW5kCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYzo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjKFBsYXliYWNrU2Vzc2lv
bkludGVyZmFjZU1hYyYgcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKQogICAgIDogbV9wbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2UocGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCmluZGV4IDg4NDA5NDI5NzkyNmM4YWViZGVmNmYz
ZTk1Nzg0MmY4MzQyOGI4OTIuLmQ0MTllMGUxOTI1NTVkNzM2MDg1ODUxZjU0Y2EwMDQwZDQ2YjY2
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKQEAgLTQyLDcg
KzQyLDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpj
cmVhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2
YXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKQEAgLTg4LDEyICs4NywxMiBAQCB2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNh
bXBsZUJ1ZmZlcgogewogICAgIGlmIChzaG91bGRNdXRlVmlkZW8oKSkgewogICAgICAgICBpZiAo
IW1fYmxhY2tGcmFtZSkgewotICAgICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBD
TVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNh
bXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Ci0gICAgICAgICAgICBhdXRvIGRpbWVuc2lv
bnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURl
c2NyaXB0aW9uLmdldCgpKTsKKyAgICAgICAgICAgIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0
Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGRp
bWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9i
bGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0KCkpOwogICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0g
Y3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdo
dCk7CiAKICAgICAgICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1f
YmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGF1dG8g
c3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZl
cihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlw
dGlvbik7CiAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6
OnZpZGVvU2FtcGxlQXZhaWxhYmxlIDo6dW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lIGRl
c2NyaXB0aW9uOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgICAgICAg
ICAgbV9ibGFja0ZyYW1lID0gbnVsbHB0cjsKQEAgLTEwMyw4ICsxMDIsOCBAQCB2b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUm
IHNhbXBsZUJ1ZmZlcgogICAgICAgICB9CiAKICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlID0gbnVsbHB0cjsKLSAgICAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8geyBr
Q01UaW1lSW52YWxpZCwgdG9DTVRpbWUoc2FtcGxlQnVmZmVyLnByZXNlbnRhdGlvblRpbWUoKSks
IHRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5kZWNvZGVUaW1lKCkpIH07Ci0gICAgICAgIGF1dG8gc3Rh
dHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNrRnJhbWUuZ2V0KCksIG1fYmxhY2tG
cmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5nSW5mbywgJnNhbXBsZSk7CisgICAgICAgIENN
U2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvIHsgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjp0
b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0aW9uVGltZSgpKSwgUEFMOjp0b0NNVGltZShz
YW1wbGVCdWZmZXIuZGVjb2RlVGltZSgpKSB9OworICAgICAgICBhdXRvIHN0YXR1cyA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNrRnJhbWUuZ2V0KCksIG1fYmxhY2tGcmFtZURl
c2NyaXB0aW9uLmdldCgpLCAmdGltaW5nSW5mbywgJnNhbXBsZSk7CiAKICAgICAgICAgaWYgKHN0
YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlIC0g
dW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3Rh
dHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1t
CmluZGV4IDUxYTNlMThhMmNlZGQzY2Q1ZGE5M2YzNGViZjM3MTFlMDIwZjhiNjIuLmMyNmEzNzBk
NThkYTE5NTE4YWU4NTg1OWIxMjE1NjQxYzViN2MyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCkBAIC0zNiwxMyArMzYsMTIgQEAKICNpbmNs
dWRlIDx3dGYvU2NvcGUuaD4KIAogI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5r
Lmg+CisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogI2RlZmluZSBMT1df
V0FURVJfVElNRV9JTl9TRUNPTkRTIDAuMQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7Ci0KIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y3JlYXRlKENNQnVmZmVyUXVldWVU
cmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIGF1
dG8gY29tcHJlc3NvciA9IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I+KG5ldyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKSk7CkBAIC01MywxNCArNTIsMTQg
QEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUKIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1
ZXVlIHsgV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5BdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IiKSB9Ci0gICAgLCBtX2xvd1dhdGVyVGltZSB7IENNVGltZU1ha2VXaXRoU2Vjb25kcyhM
T1dfV0FURVJfVElNRV9JTl9TRUNPTkRTLCAxMDAwKSB9CisgICAgLCBtX2xvd1dhdGVyVGltZSB7
IFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKExPV19XQVRFUl9USU1FX0lOX1NFQ09ORFMsIDEw
MDApIH0KIHsKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV9jb252ZXJ0ZXIpIHsKLSAgICAgICAgQXVk
aW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZl
cnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7
CiAgICAgfQogfQpAQCAtNjgsMTkgKzY3LDE5IEBAIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBib29sIEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIGlucHV0
QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRl
ZFNhbXBsZUJ1ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJy
b3IgPSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFM
OjpDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZp
bnB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlQ3JlYXRlIGZvciBt
X2lucHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAgICAgbV9pbnB1dEJ1ZmZlclF1ZXVlID0gYWRvcHRDRihpbnB1dEJ1
ZmZlclF1ZXVlKTsKIAogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0QnVmZmVyUXVldWU7Ci0g
ICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMo
KSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJ1
ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1
ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVl
dWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVhdGUgZm9yIG1fb3V0cHV0QnVmZmVy
UXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0cHV0QnVmZmVyUXVldWUp
OwotICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdl
dCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVu
RGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwpOworICAgIFBBTDo6Q01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBj
YWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5
LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1faXNFbmNvZGluZyA9IHRydWU7CiAg
ICAgcmV0dXJuIHRydWU7CkBAIC04OSw4ICs4OCw4IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJh
CiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKCkKIHsKICAgICBtX3Nl
cmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10gewotICAgICAgICBwcm9jZXNz
U2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKGtDTVRpbWVJbnZhbGlkKTsKLSAgICAgICAg
YXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCkpOworICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1l
KFBBTDo6a0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZl
clF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxlZCAlZCIsIGVycm9y
KTsKICAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CiAgICAgfSk7CkBAIC0xMTIsNyArMTEx
LDcgQEAgVUludDMyIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZGVmYXVsdE91dHB1dEJp
dFJhdGUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0QKIAogYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKENN
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIEF1ZGlvRm9ybWF0SUQgb3V0
cHV0Rm9ybWF0SUQpCiB7Ci0gICAgY29uc3QgYXV0byAqYXVkaW9Gb3JtYXRMaXN0SXRlbSA9IENN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQoZm9ybWF0RGVz
Y3JpcHRpb24pOworICAgIGNvbnN0IGF1dG8gKmF1ZGlvRm9ybWF0TGlzdEl0ZW0gPSBQQUw6OkNN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQoZm9ybWF0RGVz
Y3JpcHRpb24pOwogICAgIG1fc291cmNlRm9ybWF0ID0gYXVkaW9Gb3JtYXRMaXN0SXRlbS0+bUFT
QkQ7CiAKICAgICBtZW1zZXQoJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIHNpemVvZihBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKQEAgLTEyMSwzNCArMTIwLDM0IEBAIGJvb2wgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXRE
ZXNjcmlwdGlvbihDCiAgICAgbV9kZXN0aW5hdGlvbkZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9
IG1fc291cmNlRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lOwogCiAgICAgVUludDMyIHNpemUgPSBz
aXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Zv
cm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5X0Zvcm1hdEluZm8sIDAsIE5VTEws
ICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBB
TDo6QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9wZXJ0eV9Gb3JtYXRJbmZv
LCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1
ZGlvRm9ybWF0R2V0UHJvcGVydHkgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKICAgICBBdWRpb0NvbnZlcnRlclJlZiBjb252ZXJ0ZXI7Ci0g
ICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZt
X2Rlc3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgeworICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZtX2Rlc3RpbmF0aW9uRm9y
bWF0LCAmY29udmVydGVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZlcnRlck5ldyBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX2Nv
bnZlcnRlciA9IGNvbnZlcnRlcjsKIAogICAgIGF1dG8gY2xlYW51cEluQ2FzZU9mRXJyb3IgPSBt
YWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZl
cnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsK
ICAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0pOwogCiAgICAgc2l6ZV90IGNv
b2tpZVNpemUgPSAwOwotICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7Cisg
ICAgY29uc3Qgdm9pZCAqY29va2llID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRN
YWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNvb2tpZVNpemUpOwogICAgIGlmIChjb29r
aWVTaXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9w
ZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2ll
LCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUp
KSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25N
YWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2YobV9zb3VyY2VGb3Jt
YXQpOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZz
aXplLCAmbV9zb3VyY2VGb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJ
bnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9u
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpA
QCAtMTU5LDcgKzE1OCw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0
QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgfQogCiAgICAg
c2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1
cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0
KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRp
b24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBr
QXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24gZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNjcsMTQgKzE2
NiwxNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVy
dGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIGlmIChtX2Rlc3RpbmF0aW9uRm9y
bWF0Lm1Gb3JtYXRJRCA9PSBrQXVkaW9Gb3JtYXRNUEVHNEFBQykgewogICAgICAgICBib29sIHNo
b3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gdHJ1ZTsKICAgICAgICAgaWYgKG1fb3V0cHV0
Qml0UmF0ZSkgewotICAgICAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJv
cGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigq
bV9vdXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKKyAgICAgICAgICAg
IGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIs
IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigqbV9vdXRwdXRCaXRSYXRlKSwg
Jm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0
aW5nIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgICAgICBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSA9ICEhZXJyb3I7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlKSB7CiAg
ICAgICAgICAgICBhdXRvIG91dHB1dEJpdFJhdGUgPSBkZWZhdWx0T3V0cHV0Qml0UmF0ZShtX2Rl
c3RpbmF0aW9uRm9ybWF0KTsKICAgICAgICAgICAgIHNpemUgPSBzaXplb2Yob3V0cHV0Qml0UmF0
ZSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemUsICZvdXRw
dXRCaXRSYXRlKSkKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZl
cnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRl
LCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBkZWZh
dWx0IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIH0KICAgICB9CkBAIC0xODMsNyArMTgyLDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0
aW9uKEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9uIGZvcm1hdCBpcyBWQlIsIHdlIG5l
ZWQgdG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0aGUgY29udmVydGVyLgogICAgICAg
ICBzaXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CiAKLSAgICAgICAgaWYgKGF1
dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4T3V0
cHV0UGFja2V0U2l6ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5TWF4
aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNrZXRTaXplKSkgewog
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRw
dXRQYWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9CkBAIC0yMTEsNiArMjEwLDggQEAgc2l6ZV90IEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Y29tcHV0ZUJ1ZmZlclNpemVGb3JBdWRpb0Zvcm1hdChBdWRpb1N0
cmVhbUIKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0dGFjaFByaW1pbmdU
cmltc0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKKyAgICB1c2luZyBuYW1l
c3BhY2UgUEFMOworCiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1fcmVtYWluaW5nUHJpbWVE
dXJhdGlvbikpIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8gcHJpbWVJbmZvIHsg
MCwgMCB9OwogICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmltZUluZm8pOwpAQCAtMjM2
LDI1ICsyMzcsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkKIHsKICAgICBVSW50MzIgZGVsYXlT
aXplID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJfdCBvcmlnaW5hbERlbGF5TW9kZSA9
IDA7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29u
dmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2lu
YWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsICZk
ZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVk
aW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAg
ICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIHVpbnQzMl90IG9wdGltYWxEZWxheU1vZGUgPSBr
QXVkaW9Db2RlY0RlbGF5TW9kZV9PcHRpbWFsOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9D
b252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5
TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29k
ZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIFVJbnQzMiBw
cmltZVNpemUgPSBzaXplb2YoQXVkaW9Db2RlY1ByaW1lSW5mbyk7CiAgICAgQXVkaW9Db2RlY1By
aW1lSW5mbyBwcmltZUluZm8geyAwLCAwIH07Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Nv
bnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJ
bmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFM
OjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3Bl
cnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0
aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRp
b0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVs
YXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlv
Q29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CkBAIC0yNjcsMTgg
KzI2OCwxOCBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIGlmICghbV9kZXN0aW5hdGlv
bkZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIFVJbnQzMiBjb29raWVTaXplID0gMDsKIAot
ICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252
ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXpl
LCBOVUxMKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9w
ZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29r
aWUsICZjb29raWVTaXplLCBOVUxMKTsKICAgICAgICAgaWYgKChlcnJvciA9PSBub0VycikgJiYg
ISFjb29raWVTaXplKSB7CiAgICAgICAgICAgICBjb29raWUucmVzaXplKGNvb2tpZVNpemUpOwog
Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29r
aWVTaXplLCBjb29raWUuZGF0YSgpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQ
QUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUuZGF0YSgpKSkgewog
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdp
Y0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
bmlsOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uOwotICAgICAgICBpZiAoYXV0byBl
cnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29va2llU2l6ZSwgY29va2llLmRhdGEo
KSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pKSB7CisgICAgICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEwsIGNvb2tpZVNpemUsIGNv
b2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSkgewogICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgfQpAQCAtMjkwLDI2
ICsyOTEsMjYgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBzaXplX3QgZGF0YVNpemUg
PSBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplOwogCiAgICAgQ01CbG9j
a0J1ZmZlclJlZiBibG9ja0J1ZmZlcjsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZGF0YVNp
emUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXplLCBrQ01CbG9ja0J1ZmZl
ckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKKyAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgMCwgZGF0
YVNpemUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKSkg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KICAgICBhdXRvIGJ1
ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXpl
KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFC
eXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZm
ZXI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0
RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgdHJ1ZSwgTlVM
TCwgTlVMTCwgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCBudW1QYWNrZXRz
LCBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1fZGVzdGluYXRpb25QYWNr
ZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0g
UEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIHRydWUsIE5VTEwsIE5VTEwsIG1fZGVzdGlu
YXRpb25Gb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgbnVtUGFja2V0cywgbV9jdXJyZW50TmF0aXZl
UHJlc2VudGF0aW9uVGltZVN0YW1wLCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zLmRh
dGEoKSwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVk
aW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIGlmIChbbV9nZHJD
b3VudE51bSBpbnRWYWx1ZV0pCi0gICAgICAgIENNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIs
IGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29kZXJSZWZyZXNoLCAoX19i
cmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCksIGtDTUF0dGFjaG1lbnRNb2RlX1No
b3VsZFByb3BhZ2F0ZSk7CisgICAgICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZl
ciwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1YWxEZWNvZGVyUmVmcmVz
aCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgpLCBrQ01BdHRhY2htZW50
TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogCiAgICAgcmV0dXJuIHNhbXBsZUJ1ZmZlcjsKIH0KQEAg
LTM0MSwyNCArMzQyLDI0IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKICAgICAgICAgICAgICAg
ICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVl
dWUuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5
KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
Ci0gICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1
ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4o
bV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJs
b2NrQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQo
KSk7CisgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBs
ZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFu
ZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgICAgICAgICAgICAgIG1f
c2FtcGxlQmxvY2tCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1w
bGVCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmICghbV9zYW1wbGVCbG9ja0J1ZmZl
cikgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
IkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIg
ZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0g
MDsKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
ciA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJH
ZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAg
IG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0
aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRP
ZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBzaXplX3QgbnVt
Qnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9z
YW1wbGVCbG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVy
KSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBs
ZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAobV9zb3VyY2VCdWZm
ZXIuZGF0YSgpICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9z
YW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
ciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNlQnVmZmVyLmRhdGEoKSAr
IGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICAgICAgfQpAQCAtMzkz
LDI4ICszOTQsMjggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92
aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAgICAgICAgICAgICAgIG1f
c2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
aWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCisgICAg
ICAgICAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUu
Z2V0KCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBhdXRvIHNhbXBs
ZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihD
TUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkp
OwotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0Q0YoKENNQmxvY2tCdWZm
ZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1
ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVm
ZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6
Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkp
KTsKKyAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBhZG9wdENGKChDTUJsb2NrQnVm
ZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKICAgICAgICAgICAgIGlmICghbV9z
YW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxlQnVmZmVyR2V0
RGF0YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVy
U2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1
ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVu
Z3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKKyAgICAgICAgICAgIG1fc2FtcGxl
QmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBs
ZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7CiAgICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNh
bXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX3NhbXBsZUJs
b2NrQnVmZmVyKSB7CiAgICAgICAgICAgICBzaXplX3QgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxl
QmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUg
LSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyKSk7Ci0gICAgICAgICAgICBpZiAo
YXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZm
ZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9D
b3B5RnJvbVNhbXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VC
dWZmZXIpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZm
ZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNl
dEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChmaXJz
dENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgewogICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZpcnN0IGNoYW5uZWwgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURhdGFC
eXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJs
b2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5dGVzVG9Db3B5RnJvbVNh
bXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBs
ZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5dGVzVG9Db3B5RnJv
bVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVy
KSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyBzZWNv
bmQgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gZXJyb3I7CiAgICAgICAgICAgICB9CkBAIC00MzgsNiArNDM5LDggQEAgT1NTdGF0dXMgQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tl
dHMoVUludDMyKgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1Nh
bXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbG93V2F0ZXJUaW1lKQogeworICAg
IHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFSRV9JTkxJTkUKKwogICAg
IGlmICghbV9jb252ZXJ0ZXIpIHsKICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1f
aW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01MDEsNyAr
NTA0LDcgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVC
dWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGwKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVy
KQogewotICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX2lucHV0QnVmZmVy
UXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1
ZUVucXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwogICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAogICAg
IHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUobV9sb3dXYXRlclRpbWUpOwpA
QCAtNTIwLDEyICs1MjMsMTIgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFk
ZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVy
UmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkK
IHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1
ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVy
biAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1
ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRT
YW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZiko
Y29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRC
dWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVy
UmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWlu
KG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmNWY4NTU4NzFmYzcwODU2
NmY3ZWY4YjlhMTYxZTI3YjhlNWQ4OWVkLi5iNzU1OGQyODBjMmVmNzk2MDY4Y2FjMGNjOTZiNTAz
M2RjMzcwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaApAQCAtMTI3LDggKzEyNyw4IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbjsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBtX3ZpZGVvQ29tcHJl
c3NvcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBtX3ZpZGVvQXNzZXRXcml0
ZXJJbnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lIHsga0NNVGlt
ZUludmFsaWQgfTsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgeyBrQ01UaW1l
SW52YWxpZCB9OworICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWU7CisgICAg
Q01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lOwogICAgIGJvb2wgbV9oYXNFbmNvZGVkVmlk
ZW9TYW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0cjxXZWJBVkFzc2V0V3JpdGVyRGVs
ZWdhdGU+IG1fd3JpdGVyRGVsZWdhdGU7CkBAIC0xMzksOSArMTM5LDkgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fc2hvdWxkU3RvcEFmdGVyRmx1c2hpbmdTYW1wbGVzIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fZmlyc3RWaWRlb0ZyYW1lIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPENHQWZm
aW5lVHJhbnNmb3JtPiBtX3ZpZGVvVHJhbnNmb3JtOwotICAgIENNVGltZSBtX3Jlc3VtZWRWaWRl
b1RpbWUgeyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBtX2N1cnJlbnRWaWRlb0R1cmF0aW9u
IHsga0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lIHsg
a0NNVGltZVplcm8gfTsKKyAgICBDTVRpbWUgbV9yZXN1bWVkVmlkZW9UaW1lOworICAgIENNVGlt
ZSBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uOworICAgIENNVGltZSBtX2N1cnJlbnRBdWRpb1NhbXBs
ZVRpbWU7CiAgICAgZG91YmxlIG1fdGltZUNvZGUgeyAwIH07CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggNjNiZDY1
OThkMDJhNWM3MDA2ZGE5MjlmYzk0ZjFmNWY2NmE3MTZkYS4uNmFkMjBiZThjYjU3OTIzYTBlNzg0
MmUzNzAxZDMzYTZhYTAzYWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtOTMsOCArOTMsNiBAQCBAZW5kCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmVmUHRyPE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGJv
b2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0
aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvIHdyaXRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIGhhc1ZpZGVvKSk7CkBAIC0xMjIsNiArMTIw
LDExIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXByZXNzZWRBdWRpb091
dHB1dEJ1ZmZlckNhbGxiYWNrKHZvaWQgKm1lZGlhCiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRl
bykKICAgICA6IG1faGFzQXVkaW8oaGFzQXVkaW8pCiAgICAgLCBtX2hhc1ZpZGVvKGhhc1ZpZGVv
KQorICAgICwgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lKFBBTDo6a0NNVGltZUludmFsaWQp
CisgICAgLCBtX2xhc3RWaWRlb0RlY29kaW5nVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKQorICAg
ICwgbV9yZXN1bWVkVmlkZW9UaW1lKFBBTDo6a0NNVGltZVplcm8pCisgICAgLCBtX2N1cnJlbnRW
aWRlb0R1cmF0aW9uKFBBTDo6a0NNVGltZVplcm8pCisgICAgLCBtX2N1cnJlbnRBdWRpb1NhbXBs
ZVRpbWUoUEFMOjprQ01UaW1lWmVybykKIHsKIH0KIApAQCAtMTc5LDcgKzE4Miw3IEBAIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkVmlkZW9TYW1w
bGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNWaWRlbyk7CiAgICAgaWYgKCFtX3ZpZGVv
Rm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0g
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVvQ29tcHJlc3Nvci0+Z2V0
T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24g
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV92aWRlb0NvbXByZXNz
b3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKIAogICAgICAgICBpZiAobV9oYXNBdWRpbyAm
JiAhbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTk2
LDcgKzE5OSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdD
b21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNBdWRpbyk7
CiAgICAgaWYgKCFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV9hdWRpb0Zv
cm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX2F1
ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX2F1ZGlv
Rm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRp
b24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKICAgICAgICAg
aWYgKG1faGFzVmlkZW8gJiYgIW1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbikKICAgICAgICAgICAg
IHJldHVybjsKIApAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
W21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTprQ01UaW1lWmVyb107Cisg
ICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTpQQUw6OmtDTVRpbWVa
ZXJvXTsKIAogICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7CiAKQEAgLTMwMCw4
ICszMDMsOCBAQCBib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRDb21wcmVz
c2VkVmlkZW9TYW1wbGVCdWZmZXJJZlBvc3NpYmxlKCkKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZl
clJlZiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dCBpc1Jl
YWR5Rm9yTW9yZU1lZGlhRGF0YV0pOwotICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSA9
IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7Ci0gICAgbV9s
YXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChi
dWZmZXIpOworICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSA9IFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBtX2xhc3RWaWRlb0Rl
Y29kaW5nVGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoYnVmZmVy
KTsKICAgICBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgPSB0cnVlOwogCiAgICAgW21fdmlkZW9B
c3NldFdyaXRlcklucHV0LmdldCgpIGFwcGVuZFNhbXBsZUJ1ZmZlcjpidWZmZXJdOwpAQCAtMzE0
LDE3ICszMTcsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29t
cHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kRW5kc1By
ZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIoQVZBc3NldFdyaXRlcklucHV0ICphc3NldFdyaXRl
cklucHV0LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUgZGVjb2RpbmdUaW1l
U3RhbXApCiB7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IGtDTVRpbWVJ
bnZhbGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0YW1wfTsKKyAgICBD
TVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBkZWNvZGluZ1RpbWVTdGFtcH07CiAKICAgICBDTVNhbXBsZUJ1
ZmZlclJlZiBidWZmZXIgPSBOVUxMOwotICAgIGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVlLCBOVUxMLCBOVUxMLCBOVUxMLCAw
LCAxLCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgdHJ1ZSwg
TlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5VTEwsICZidWZmZXIpOwog
ICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
Ik1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZEVuZHNQcmV2aW91c1NhbXBsZUR1cmF0
aW9uTWFya2VyIGZhaWxlZCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSB3aXRoICVkIiwgZXJyb3IpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRihi
dWZmZXIpOwogCi0gICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlci5nZXQoKSwga0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbiwga0NGQm9v
bGVhblRydWUsIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CisgICAgUEFMOjpD
TVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0
dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtDRkJvb2xlYW5UcnVlLCBr
Q01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogICAgIGlmICghW2Fzc2V0V3JpdGVy
SW5wdXQgYXBwZW5kU2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZlci5nZXQoKV0pCiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIg
YXBwZW5kU2FtcGxlQnVmZmVyIHRvIHdyaXRlciBpbnB1dCBmYWlsZWQiKTsKIH0KQEAgLTM4Miwx
OCArMzg1LDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZsdXNoQ29tcHJl
c3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYmCiBzdGF0aWMgaW5saW5lIFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0
YW1wKENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsQnVmZmVyLCBDTVRpbWUgc3RhcnRUaW1lKQog
ewogICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAmY291bnQpOworICAgIFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIs
IDAsIG5pbCwgJmNvdW50KTsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWVJ
bmZvKGNvdW50KTsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShv
cmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50KTsKKyAgICBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCBj
b3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOwogCiAgICAgZm9yIChhdXRvIGkgPSAwOyBp
IDwgY291bnQ7IGkrKykgewotICAgICAgICB0aW1lSW5mb1tpXS5kZWNvZGVUaW1lU3RhbXAgPSBr
Q01UaW1lSW52YWxpZDsKKyAgICAgICAgdGltZUluZm9baV0uZGVjb2RlVGltZVN0YW1wID0gUEFM
OjprQ01UaW1lSW52YWxpZDsKICAgICAgICAgdGltZUluZm9baV0ucHJlc2VudGF0aW9uVGltZVN0
YW1wID0gc3RhcnRUaW1lOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld0J1ZmZl
ciA9IG51bGxwdHI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNv
cHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3Vu
dCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkgeworICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVy
KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAg
LTQwNCw3ICs0MDcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRW
aWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAgIGlmICghbV9maXJz
dFZpZGVvRnJhbWUpIHsKICAgICAgICAgbV9maXJzdFZpZGVvRnJhbWUgPSB0cnVlOwotICAgICAg
ICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVD
bG9jaygpKTsKKyAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpDTUNsb2NrR2V0VGlt
ZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogICAgICAgICBpZiAoc2FtcGxlLnZp
ZGVvUm90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB8fCBzYW1w
bGUudmlkZW9NaXJyb3JlZCgpKSB7CiAgICAgICAgICAgICBtX3ZpZGVvVHJhbnNmb3JtID0gQ0dB
ZmZpbmVUcmFuc2Zvcm1NYWtlUm90YXRpb24oc3RhdGljX2Nhc3Q8aW50PihzYW1wbGUudmlkZW9S
b3RhdGlvbigpKSAqIE1fUEkgLyAxODApOwogICAgICAgICAgICAgaWYgKHNhbXBsZS52aWRlb01p
cnJvcmVkKCkpCkBAIC00MTIsOCArNDE1LDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGF1dG8gc2FtcGxlVGltZSA9IENNVGltZVN1YnRyYWN0KENNQ2xv
Y2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUp
OwotICAgIHNhbXBsZVRpbWUgPSBDTVRpbWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9E
dXJhdGlvbik7CisgICAgYXV0byBzYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVTdWJ0cmFjdChQQUw6
OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1l
ZFZpZGVvVGltZSk7CisgICAgc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUs
IG1fY3VycmVudFZpZGVvRHVyYXRpb24pOwogICAgIGlmIChhdXRvIGJ1ZmZlcldpdGhDdXJyZW50
VGltZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcChzYW1wbGUucGxhdGZv
cm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHNhbXBsZVRpbWUpKQogICAgICAgICBt
X3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldpdGhDdXJyZW50VGltZS5n
ZXQoKSk7CiB9CkBAIC00MjIsNyArNDI1LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEKIHsK
ICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRh
LCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1wbGVDb3VudCkpCiAg
ICAgICAgIG1fYXVkaW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoc2FtcGxlQnVmZmVyLmdl
dCgpKTsKLSAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBDTVRpbWVBZGQobV9jdXJyZW50
QXVkaW9TYW1wbGVUaW1lLCB0b0NNVGltZShNZWRpYVRpbWUoc2FtcGxlQ291bnQsIGRlc2NyaXB0
aW9uLnNhbXBsZVJhdGUoKSkpKTsKKyAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBQQUw6
OkNNVGltZUFkZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIFBBTDo6dG9DTVRpbWUoTWVkaWFU
aW1lKHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7CiB9CiAKIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZpbmlzaGVkRmx1c2hpbmdTYW1wbGVzKCkKQEAg
LTUyMywxMCArNTI2LDEwIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXBs
ZXRlRmV0Y2hEYXRhKCkKIHsKICAgICBhdXRvIGN1cnJlbnRUaW1lQ29kZSA9IG1fdGltZUNvZGU7
CiAgICAgaWYgKG1faGFzQXVkaW8pCi0gICAgICAgIG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNv
bmRzKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CisgICAgICAgIG1fdGltZUNvZGUgPSBQQUw6
OkNNVGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKTsKICAgICBlbHNlIHsK
LSAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3QoQ01DbG9ja0dldFRpbWUo
Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7Ci0gICAgICAg
IG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1
cnJlbnRWaWRlb0R1cmF0aW9uKSk7CisgICAgICAgIGF1dG8gc2FtcGxlVGltZSA9IFBBTDo6Q01U
aW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNs
b2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgICAgICBtX3RpbWVDb2RlID0gUEFMOjpD
TVRpbWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVv
RHVyYXRpb24pKTsKICAgICB9CiAgICAgbV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcih0YWtl
RGF0YSgpLCBjdXJyZW50VGltZUNvZGUpOwogfQpAQCAtNTUwLDEzICs1NTMsMTMgQEAgUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnRha2VEYXRhKCkKIAog
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cGF1c2UoKQogewotICAgIGF1dG8gcmVj
b3JkaW5nRHVyYXRpb24gPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0
SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICBtX2N1cnJlbnRWaWRl
b0R1cmF0aW9uID0gQ01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1
cmF0aW9uKTsKKyAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gUEFMOjpDTVRpbWVTdWJ0cmFj
dChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1f
cmVzdW1lZFZpZGVvVGltZSk7CisgICAgbV9jdXJyZW50VmlkZW9EdXJhdGlvbiA9IFBBTDo6Q01U
aW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKIH0KIAog
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cmVzdW1lKCkKIHsKLSAgICBtX3Jlc3Vt
ZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKTsK
KyAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9j
a0dldEhvc3RUaW1lQ2xvY2soKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6Om1pbWVUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNzZkNTZkN2I4ZDEzYzcyZWEzOWZjMzQ5OWQx
Nzk4OTk3MTdmMGU3OC4uZDA3NjBmMDdlMzcwODEyN2Y5ZGUyZWZhZjkyZjBlMDc3MmZkMzhlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9W
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAg
LTM0LDEyICszNCwxMSBAQAogI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZUQ29tcHJlc3Npb25TZXNz
aW9uLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAorI2ltcG9ydCA8cGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBzdGQ6
OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmNyZWF0ZShTdHJpbmcgbWltZVR5cGUsIENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIGF1dG8gcHJv
ZmlsZSA9IFByb2ZpbGU6OkJhc2VsaW5lOwpAQCAtNjksNyArNjgsNyBAQCBWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcihDTVZpZGVvQ29kZWNU
eXBlIG91dHB1dAogVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV92dFNlc3Npb24pIHsKLSAgICAgICAgVlRDb21w
cmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgpKTsKKyAgICAgICAgUEFM
OjpWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24uZ2V0KCkpOwogICAg
ICAgICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNzcsMTIgKzc2LDEyIEBA
IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cigpCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZl
clF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsK
ICAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVy
cm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZl
clF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZm
ZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NG
b3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciB1bmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBxdWV1ZSAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gb3V0cHV0QnVm
ZmVyUXVldWU7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVy
UXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmln
Z2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVMTCk7CisgICAgUEFMOjpD
TUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2Fs
bGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNv
bWVzUmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAgbV9pc0VuY29kaW5nID0g
dHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk2LDEwICs5NSwxMCBAQCB2b2lkIFZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2V0Qml0c1BlclNlY29uZCh1bnNpZ25lZCBiaXRSYXRlKQog
dm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCgpCiB7CiAgICAgbV9zZXJp
YWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAgICAgICAgYXV0byBlcnJv
ciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92dFNlc3Npb24uZ2V0KCks
IGtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lv
blNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprQ01UaW1lSW52
YWxpZCk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwg
IlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRl
RnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgICAgIGVycm9yID0gQ01CdWZm
ZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CisgICAgICAg
IGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1
ZXVlLmdldCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3Ry
ZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZE
YXRhIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAgICAgIG1faXNFbmNvZGluZyA9IGZh
bHNlOwpAQCAtMTE0LDcgKzExMyw3IEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojp2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2sodm9pZCAqcmVmQ29uLCB2b2lkKiwKIAogICAgIFZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciAqY29tcHJlc3NvciA9IHN0YXRpY19jYXN0PFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcio+KHJlZkNvbik7CiAKLSAgICBhdXRvIGVycm9yID0gQ01C
dWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwg
YnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShjb21w
cmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwogICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApA
QCAtMTMwLDUzICsxMjksNTMgQEAgQ0ZTdHJpbmdSZWYgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjp2dFByb2ZpbGVMZXZlbCgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3Byb2ZpbGUpIHsK
ICAgICBjYXNlIFByb2ZpbGU6OkJhc2VsaW5lOgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxl
dmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9m
aWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CiAgICAgY2FzZSBQcm9maWxlOjpIaWdo
OgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWw7Cisg
ICAgICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVsOwog
ICAgIGNhc2UgUHJvZmlsZTo6TWFpbjoKLSAgICAgICAgcmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9I
MjY0X01haW5fQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxf
SDI2NF9NYWluX0F1dG9MZXZlbDsKICAgICB9CiB9CiAKIGJvb2wgVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbikKIHsKLSAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNp
b25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlw
dGlvbik7CisgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IFBBTDo6Q01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbik7CiAjaWYgUExB
VEZPUk0oSU9TKQogICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gbmls
OwogI2Vsc2UKLSAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9IEB7KF9f
YnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJk
d2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyOkBZRVN9OworICAgIE5TRGljdGlvbmFyeSAqZW5j
b2RlclNwZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcgKilQQUw6OmtWVFZpZGVv
RW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rl
cjpAWUVTfTsKICNlbmRpZgogCiAgICAgVlRDb21wcmVzc2lvblNlc3Npb25SZWYgdnRTZXNzaW9u
OwotICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCwgbV9vdXRwdXRD
b2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2RlclNwZWNpZmljYXRpb25z
LCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRoaXMsICZ2dFNlc3Npb24p
OworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0LCBtX291
dHB1dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZillbmNvZGVyU3BlY2lmaWNh
dGlvbnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFjaywgdGhpcywgJnZ0U2Vz
c2lvbik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
U3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25TZXNzaW9u
Q3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gTk87CiAgICAg
fQogICAgIG1fdnRTZXNzaW9uID0gYWRvcHRDRih2dFNlc3Npb24pOwogCi0gICAgZXJyb3IgPSBW
VFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworICAgIGVycm9yID0gVlRTZXNzaW9u
U2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Np
b25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJh
bWVJbnRlcnZhbER1cmF0aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbik7CisgICAg
ZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwg
UEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlv
biwgbV9tYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24pOwogICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNl
c3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50
ZXJ2YWxEdXJhdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBlcnJvciA9IHNldENv
bXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lv
blByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKKyAg
ICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUsIG1fZXhw
ZWN0ZWRGcmFtZVJhdGUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0
cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogCi0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lv
bi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIHZ0UHJvZmls
ZUxldmVsKCkpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24u
Z2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIHZ0UHJv
ZmlsZUxldmVsKCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQ
cm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0
aCAlZCBmb3IgcHJvZmlsZSAlZCIsIGVycm9yLCBtX3Byb2ZpbGUpOwogICAgICAgICBpZiAobV9w
cm9maWxlICE9IFByb2ZpbGU6OkJhc2VsaW5lKSB7Ci0gICAgICAgICAgICBlcnJvciA9IFZUU2Vz
c2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X1Byb2ZpbGVMZXZlbCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVs
KTsKKyAgICAgICAgICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24u
Z2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIFBBTDo6
a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKTsKICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgZGVmYXVsdCBwcm9maWxlIiwgZXJyb3Ip
OwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fb3V0cHV0Qml0UmF0ZSkgewotICAgICAg
ICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCAqbV9vdXRwdXRCaXRS
YXRlKTsKKyAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0
U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRS
YXRlLCAqbV9vdXRwdXRCaXRSYXRlKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJy
b3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNl
dFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7CiAgICAgfQogCi0gICAgZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vz
c2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7CisgICAgZXJyb3Ig
PSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKG1fdnRTZXNz
aW9uLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0s
ICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJl
VG9FbmNvZGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAgICByZXR1cm4gWUVT
OwpAQCAtMTg1LDE0ICsxODQsMTQgQEAgYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW8KIHZvaWQgVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVm
ZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBpZiAoIW1fdnRTZXNzaW9uKSB7Ci0gICAgICAgIGlmICgh
aW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9u
KGJ1ZmZlcikpKQorICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Npb24oUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldElt
YWdlQnVmZmVyKGJ1ZmZlcik7Ci0gICAgYXV0byBwcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVNh
bXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIpOwotICAgIGF1dG8gZHVy
YXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7Ci0gICAgYXV0byBlcnJv
ciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGlt
YWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBO
VUxMKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKGJ1ZmZlcik7CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1lU3RhbXAgPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7CisgICAgYXV0byBk
dXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZmZXIpOworICAgIGF1
dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNlc3Np
b24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBO
VUxMLCB0aGlzLCBOVUxMKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFT
dHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25F
bmNvZGVGcmFtZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApAQCAtMjA4LDEyICsyMDcs
MTIgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihD
TVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVyUmVmIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4g
KENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlR2V0SGVh
ZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVybiAoQ01TYW1wbGVCdWZm
ZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRw
dXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVm
PiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKQog
ewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lk
Kj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQo
KSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0
PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVy
UXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwCmluZGV4IGMzZmU4MjFiOWM1
MjBjOTIyNGU1ZGU4ODhlNTE4YzMxOTZmMzFjYjUuLmEwMjQwODRjMjRlNmQzNjM5NjA4YTY0NjUy
ZWNjNWQ2ZDllZmFjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2VuZGlmCiAKKyNp
bmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDxwYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTIzLDkgKzEy
NCw5IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dDo6c3RhcnQoKQogICAgIGlmICghbV9yZW1vdGVJT1VuaXQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9yZW1vdGVJT1VuaXQp
KSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fcmVt
b3RlSU9Vbml0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQgQXVkaW9PdXRwdXRVbml0
U3RhcnQgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwotICAgICAgICBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21w
b25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAgICAgICBtX3JlbW90ZUlP
VW5pdCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMzksMTEgKzE0MCwx
MSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OnN0b3AoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1N0YXJ0ZWQpIHsKLSAgICAg
ICAgQXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIFBBTDo6QXVk
aW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CiAgICAgICAgIG1faXNTdGFydGVkID0g
ZmFsc2U7CiAgICAgfQogCi0gICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1v
dGVJT1VuaXQpOworICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1v
dGVJT1VuaXQpOwogICAgIG1fcmVtb3RlSU9Vbml0ID0gbnVsbHB0cjsKIH0KIApAQCAtMTYzLDE0
ICsxNjQsMTQgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgaW9Vbml0RGVzY3JpcHRpb24u
Y29tcG9uZW50U3ViVHlwZSA9IGtBdWRpb1VuaXRTdWJUeXBlX0RlZmF1bHRPdXRwdXQ7CiAjZW5k
aWYKIAotICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVkaW9Db21wb25lbnRGaW5k
TmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlvQ29tcG9uZW50IGlv
Q29tcG9uZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXRE
ZXNjcmlwdGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAgICBpZiAoIWlvQ29tcG9u
ZW50KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIGZp
bmQgcmVtb3RlIElPIHVuaXQgY29tcG9uZW50Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBhdXRvIGVycm9yID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwg
JnJlbW90ZUlPVW5pdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0
YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CiAgICAgaWYgKGVycm9yKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIG9wZW4gdnBpbyB1
bml0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xNzgsNyArMTc5
LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIFVJbnQzMiBwYXJhbSA9IDE7Ci0gICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShy
ZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5p
dFNjb3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICBlcnJvciA9IFBB
TDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJv
cGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICZwYXJhbSwgc2l6ZW9m
KHBhcmFtKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdl
YlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVB
dWRpb1VuaXQgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgb3V0cHV0LCBlcnJvciA9ICVkIiwg
ZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xODcsNyArMTg4LDcgQEAgdm9pZCBMb2NhbEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJ
Zk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1fZGV2aWNlSUQpIHsKLSAg
ICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091
dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAw
LCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAgICAgZXJyb3IgPSBQQUw6
OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3Bl
cnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZtX2RldmljZUlE
LCBzaXplb2YobV9kZXZpY2VJRCkpOwogICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCB1bml0IGRldmljZSBJ
RCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludCltX2RldmljZUlELCAoaW50KWVycm9yLCAoY2hh
ciopJmVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5NiwxNCArMTk3LDE0IEBAIHZv
aWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRl
QXVkaW9Vbml0SWZOZWVkZWQoKQogI2VuZGlmCiAKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0
IGNhbGxiYWNrID0geyBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0OjpyZW5kZXJpbmdDYWxsYmFjaywgdGhpcyB9OwotICAgIGVycm9yID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJh
Y2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNr
KSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwg
a0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xv
YmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnJvcikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQgdnBpbyB1
bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVh
bURlc2NyaXB0aW9uKCkpOwotICAgIGVycm9yICA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KHJlbW90
ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3Bl
X0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgJnNpemUp
OworICAgIGVycm9yICA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBr
QXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAs
ICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCAmc2l6ZSk7CiAgICAgaWYg
KGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRv
IGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICBy
ZXR1cm47CkBAIC0yMTEsMTMgKzIxMiwxMyBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKIAogICAg
IG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkubVNhbXBsZVJhdGUgPSBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCk7CiAKLSAgICBlcnJvciA9IEF1
ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVh
bUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3Ry
ZWFtRGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0
aW9uKCkpKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9V
bml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5w
dXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBzaXplb2Yob3V0
cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSkpOwogICAgIGlmIChlcnJvcikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQgaW5wdXQg
c3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGVycm9yID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1vdGVJT1VuaXQpOworICAg
IGVycm9yID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlPVW5pdCk7CiAgICAgaWYg
KGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgQXVkaW9Vbml0
SW5pdGlhbGl6ZSgpIGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDRiNzg4YWU1YWE4N2I3MjllNWJk
Y2Y5Y2Y3MTM4MTJjNjc3MGEzMjUuLmUyZTAwYjM5N2IxMzljNDgyZmYwM2MwMTI2NjJhMDBjNzRj
YWMxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTUxLDcgKzUxLDYgQEAK
ICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIEBpbnRlcmZhY2UgV2ViQ29yZUFWVmlk
ZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgOiBOU09iamVjdDxBVkNhcHR1cmVWaWRlb0RhdGFPdXRw
dXRTYW1wbGVCdWZmZXJEZWxlZ2F0ZT4gewogICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKiBtX2Nh
bGxiYWNrOwpAQCAtMzUxLDEwICszNTAsMTAgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUoKQogICAgICAgICAgICAgaWYgKGZyYW1lUmF0ZVJh
bmdlKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50RnJhbWVSYXRlID0gY2xhbXBUbyhtX2N1
cnJlbnRGcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lUmF0ZSwgZnJhbWVSYXRlUmFu
Z2UubWF4RnJhbWVSYXRlKTsKIAotICAgICAgICAgICAgICAgIGF1dG8gZnJhbWVEdXJhdGlvbiA9
IENNVGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKLSAgICAgICAgICAgICAgICBpZiAo
Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0
aW9uKSA8IDApCisgICAgICAgICAgICAgICAgYXV0byBmcmFtZUR1cmF0aW9uID0gUEFMOjpDTVRp
bWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7CisgICAgICAgICAgICAgICAgaWYgKFBBTDo6
Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0
aW9uKSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVS
YW5nZS5taW5GcmFtZUR1cmF0aW9uOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKENNVGltZUNv
bXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlvbikgPiAw
KQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0
aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uKSA+IDApCiAgICAgICAgICAgICAg
ICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uOwog
CiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklF
UiwgInNldHRpbmcgZnJhbWUgcmF0ZSB0byAiLCBtX2N1cnJlbnRGcmFtZVJhdGUsICIsIGR1cmF0
aW9uICIsIFBBTDo6dG9NZWRpYVRpbWUoZnJhbWVEdXJhdGlvbikpOwpAQCAtNDM0LDYgKzQzMyw4
IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCiAKIEFWRnJhbWVS
YXRlUmFuZ2UqIEFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRl
KGRvdWJsZSByYXRlKQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVf
Q09NUEFSRV9JTkxJTkUKKwogICAgIEFWRnJhbWVSYXRlUmFuZ2UgKmJlc3RGcmFtZVJhdGVSYW5n
ZSA9IG5pbDsKICAgICBmb3IgKEFWRnJhbWVSYXRlUmFuZ2UgKmZyYW1lUmF0ZVJhbmdlIGluIFtb
ZGV2aWNlKCkgYWN0aXZlRm9ybWF0XSB2aWRlb1N1cHBvcnRlZEZyYW1lUmF0ZVJhbmdlc10pIHsK
ICAgICAgICAgaWYgKGZyYW1lUmF0ZVJhbmdlSW5jbHVkZXNSYXRlKHsgW2ZyYW1lUmF0ZVJhbmdl
IG1pbkZyYW1lUmF0ZV0sIFtmcmFtZVJhdGVSYW5nZSBtYXhGcmFtZVJhdGVdIH0sIHJhdGUpKSB7
CkBAIC01OTgsNyArNTk5LDcgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJhdGVQ
cmVzZXRzKCkKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKICAgICBmb3Ig
KEFWQ2FwdHVyZURldmljZUZvcm1hdCogZm9ybWF0IGluIFtkZXZpY2UoKSBmb3JtYXRzXSkgewog
Ci0gICAgICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CisgICAgICAg
IENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkdldERpbWVuc2lvbnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICAgICAgSW50
U2l6ZSBzaXplID0geyBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCB9OwogICAg
ICAgICBhdXRvIGluZGV4ID0gcHJlc2V0cy5maW5kTWF0Y2hpbmcoWyZzaXplXShhdXRvJiBwcmVz
ZXQpIHsKICAgICAgICAgICAgIHJldHVybiBzaXplID09IHByZXNldC0+c2l6ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcAppbmRleCA2ZTI2YzhmYTRlY2QzMGFjMWU1MmZlYzM4
YWY1N2QwZTMzZDliYzI0Li5lMTU1NDYyZjUxODE1ODhiYTNiYzk0NTZjNmI2YWU5YWZlMjFiNWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCkBAIC0xOSw3ICsxOSw3IEBA
CiAgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VQQUw6Ok5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCkBAIC0zNiw3ICszNiw2
IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGJvb2wgZ2V0RGV2aWNlSW5m
byh1aW50MzJfdCBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBTdHJp
bmcmIHBlcnNpc3RlbnRJRCwgU3RyaW5nJiBsYWJlbCkKIHsKQEAgLTIwNSw3ICsyMDQsNyBAQCBS
ZXRhaW5QdHI8Q01DbG9ja1JlZj4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNlQ2xvY2so
KQogICAgICAgICByZXR1cm4gbV9kZXZpY2VDbG9jazsKIAogICAgIENNQ2xvY2tSZWYgY2xvY2s7
Ci0gICAgYXV0byBlcnIgPSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgcGVyc2lzdGVudElkKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmNsb2NrKTsKKyAg
ICBhdXRvIGVyciA9IFBBTDo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHBlcnNpc3RlbnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZjbG9jayk7CiAg
ICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlOjpDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoJXApIENNQXVkaW9EZXZp
Y2VDbG9ja0NyZWF0ZSBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVy
ciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmNwcAppbmRleCAwM2YzZTYyYTI2MzdjM2U5MDFiYWY2OTRkM2M1MjY1
ZWZhNzRhZWIyLi5mNGIzNjU4OTRkMzdjZDk0ZmYyMWI3ZmI1NGZkYjI2NDFmMzZmZTk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00OCw2ICs0OCw4IEBACiAjaW5j
bHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9v
bGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTcsNyArNTksNiBAQAogI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShN
QUMpCiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZUZhY3Rvcnk6OnNpbmdsZXRvbigpCkBAIC0yMDMsNyArMjA0LDcgQEAgT1NTdGF0dXMgQ29yZUF1
ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIG1fRFRTQ29udmVyc2lvblJhdGlv
ID0gMWUtOSAqIHN0YXRpY19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZvLm51bWVyKSAvIHN0YXRp
Y19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZvLmRlbm9tKTsKIAogICAgIEF1ZGlvQ29tcG9uZW50
RGVzY3JpcHRpb24gaW9Vbml0RGVzY3JpcHRpb24gPSB7IGtBdWRpb1VuaXRUeXBlX091dHB1dCwg
a0F1ZGlvVW5pdFN1YlR5cGVfVm9pY2VQcm9jZXNzaW5nSU8sIGtBdWRpb1VuaXRNYW51ZmFjdHVy
ZXJfQXBwbGUsIDAsIDAgfTsKLSAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IEF1ZGlv
Q29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKKyAgICBBdWRp
b0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxs
cHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChpb0NvbXBvbmVudCk7CiAgICAg
aWYgKCFpb0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJD
b3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIGZpbmQgdnBp
byB1bml0IGNvbXBvbmVudCIsIHRoaXMpOwpAQCAtMjEyLDcgKzIxMyw3IEBAIE9TU3RhdHVzIENv
cmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmICFMT0dfRElTQUJMRUQK
ICAgICBDRlN0cmluZ1JlZiBuYW1lID0gbnVsbHB0cjsKLSAgICBBdWRpb0NvbXBvbmVudENvcHlO
YW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7CisgICAgUEFMOjpBdWRpb0NvbXBvbmVudENvcHlOYW1l
KGlvQ29tcG9uZW50LCAmbmFtZSk7CiAgICAgaWYgKG5hbWUpIHsKICAgICAgICAgbV9pb1VuaXRO
YW1lID0gbmFtZTsKICAgICAgICAgQ0ZSZWxlYXNlKG5hbWUpOwpAQCAtMjIwLDcgKzIyMSw3IEBA
IE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICB9CiAj
ZW5kaWYKIAotICAgIGF1dG8gZXJyID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBv
bmVudCwgJm1faW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0
YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVk
aW9Vbml0KCVwKSB1bmFibGUgdG8gb3BlbiB2cGlvIHVuaXQsIGVycm9yICVkICglLjRzKSIsIHRo
aXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yMjgs
MTMgKzIyOSwxMyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCgpCiAKICAgICBpZiAoIWVuYWJsZUVjaG9DYW5jZWxsYXRpb24oKSkgewogICAgICAgICB1aW50
MzJfdCBwYXJhbSA9IDA7Ci0gICAgICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9V
bml0LCBrQVVWb2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNzaW5nRW5hYmxlQUdDLCBrQXVkaW9V
bml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICAg
ICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1By
b3BlcnR5X1ZvaWNlUHJvY2Vzc2luZ0VuYWJsZUFHQywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwg
aW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6
OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gYXV0b21hdGljIGdhaW4gY29u
dHJvbCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAg
ICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgICAgIH0KICAgICAgICAgcGFyYW0gPSAxOwotICAg
ICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3Bl
cnR5X0J5cGFzc1ZvaWNlUHJvY2Vzc2luZywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRC
dXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9CeXBhc3NWb2ljZVByb2Nl
c3NpbmcsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihw
YXJhbSkpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxl
IHRvIHNldCB2cGlvIHVuaXQgZWNobyBjYW5jZWxsYXRpb24sIGVycm9yICVkICglLjRzKSIsIHRo
aXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAt
MjQzLDcgKzI0NCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9V
bml0KCkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWludDMyX3QgcGFyYW0gPSAx
OwotICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRV
bml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRCdXMsICZw
YXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0
eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0
U2NvcGVfSW5wdXQsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChl
cnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IGlucHV0
LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAg
ICByZXR1cm4gZXJyOwpAQCAtMjU1LDcgKzI1Niw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQog
Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVu
aXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1
cywgJm1fY2FwdHVyZURldmljZUlELCBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpKTsKKyAgICBl
cnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0
UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMs
ICZtX2NhcHR1cmVEZXZpY2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmljZUlEKSk7CiAgICAgaWYg
KGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFy
ZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgY2FwdHVy
ZSBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpbV9jYXB0dXJlRGV2
aWNlSUQsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0y
NzAsNyArMjcxLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1Vu
aXQoKQogICAgIGlmIChlcnIpCiAgICAgICAgIHJldHVybiBlcnI7CiAKLSAgICBlcnIgPSBBdWRp
b1VuaXRJbml0aWFsaXplKG1faW9Vbml0KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEluaXRp
YWxpemUobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIEF1ZGlv
VW5pdEluaXRpYWxpemUoKSBmYWlsZWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJy
LCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yOTIsNyArMjkzLDcgQEAg
dm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0Ojp1bmR1Y2soKQogT1NTdGF0dXMgQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJh
Y2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IG1pY3JvcGhvbmVDYWxsYmFjaywgdGhpcyB9OwotICAgIGF1
dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQ
cm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1
cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVk
aW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJ
bnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNr
LCBzaXplb2YoY2FsbGJhY2spKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQ
cm9jKCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBtaWMgcHJvYywgZXJyb3IgJWQgKCUuNHMp
IiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAg
LTMwMSwxNCArMzAyLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3Vy
ZU1pY3JvcGhvbmVQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbWljcm9w
aG9uZVByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtaWNyb3Bo
b25lUHJvY0Zvcm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQs
IGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQs
IGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBQQUw6
OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9j
Rm9ybWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygl
cCkgdW5hYmxlIHRvIGdldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwg
dGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9
CiAKICAgICBtaWNyb3Bob25lUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGUoKTsK
LSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNy
b3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9w
ZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5p
dFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CiAg
ICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCBv
dXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChj
aGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMyMyw3ICszMjQsNyBAQCBPU1N0
YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiBPU1N0
YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYygpCiB7CiAgICAg
QVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgc3BlYWtlckNhbGxiYWNrLCB0aGlz
IH07Ci0gICAgYXV0byBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91
dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBB
TDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRS
ZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZjYWxsYmFj
aywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJv
YyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgc3BlYWtlciBwcm9jLCBlcnJvciAlZCAoJS40
cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpA
QCAtMzMyLDE0ICszMzMsMTQgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmln
dXJlU3BlYWtlclByb2MoKQogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzcGVha2Vy
UHJvY0Zvcm1hdCA9IHsgfTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKHNwZWFrZXJQcm9j
Rm9ybWF0KTsKLSAgICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRC
dXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0
R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXpl
KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0
IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCiAgICAgc3BlYWtlclBy
b2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUp
OworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVz
LCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3Bl
YWtlclByb2MoJXApIHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQg
KCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVy
cjsKQEAgLTQ1OSw3ICs0NjAsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNsZWFudXBB
dWRpb1VuaXQoKQogICAgIH0KIAogICAgIGlmIChtX2lvVW5pdCkgewotICAgICAgICBBdWRpb0Nv
bXBvbmVudEluc3RhbmNlRGlzcG9zZShtX2lvVW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21w
b25lbnRJbnN0YW5jZURpc3Bvc2UobV9pb1VuaXQpOwogICAgICAgICBtX2lvVW5pdCA9IG51bGxw
dHI7CiAgICAgfQogCkBAIC00NzcsNyArNDc4LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlm
IChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcCht
X2lvVW5pdCk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5p
dCk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdl
YlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRp
b091dHB1dFVuaXRTdG9wIGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQp
ZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtNDkwLDcgKzQ5
MSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0
KCkKICAgICAgICAgcmV0dXJuIGVycjsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAg
ICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOworICAgICAgICBlcnIg
PSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKICAgICAgICAgaWYgKGVycikg
ewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxl
ZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAg
ICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtNTE0LDcgKzUxNSw3IEBAIE9TU3RhdHVzIENvcmVB
dWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwoKQogCiAgICAgdW5kdWNrKCk7CiAKLSAgICBl
cnIgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAgZXJyID0gUEFMOjpBdWRp
b091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzdGFydCglcCkgQXVk
aW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGlu
dCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgY2xlYW51cEF1ZGlvVW5pdCgpOwpAQCAtNTUx
LDcgKzU1Miw3IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKCkKICAg
ICBpZiAoIW1faW9Vbml0IHx8ICFtX2lvVW5pdFN0YXJ0ZWQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8gZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgYXV0byBl
cnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c3RvcCglcCkgQXVkaW9PdXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cyki
LCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm47CkBAIC01NjUs
NyArNTY2LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2
aWNlKHVpbnQzMl90KiBkZXZpY2VJRCkKICAgICBBU1NFUlQobV9pb1VuaXQpOwogCiAgICAgVUlu
dDMyIHByb3BlcnR5U2l6ZSA9IHNpemVvZigqZGV2aWNlSUQpOwotICAgIGF1dG8gZXJyID0gQXVk
aW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJy
ZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZw
cm9wZXJ0eVNpemUpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1Vu
aXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCBkZXZpY2VJRCwgJnByb3BlcnR5U2l6ZSk7CiAgICAg
aWYgKGVycikKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKCVwKSB1bmFibGUgdG8gZ2V0IGRlZmF1bHQgaW5w
dXQgZGV2aWNlIElELCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZl
cnIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggM2Y0
ZTRkY2Y0MmMwZmE5M2VmOWFiNjJkZDIyYTk3YzUxMzg3MDY2My4uNTgyZjRiMjZjZjExOGM0OTcx
YWNkN2QxODMwOTIxOTdlMWU3NjgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hLmNwcApAQCAtNTYsNyArNTYsNiBAQAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5r
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1
cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tBdWRpb1NoYXJlZFVuaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQppbmRleCBhYTdmZjA4NzUwNTQyNTgyZjFl
ZjkxNjdhODFlNmZiNWE1NDhmMTUyLi5iODZiMDVlOGM2NjViYzJlODA1ZjI3YjM4YjFhNGZkMzMx
M2Y5MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAtNDQsMTQgKzQ0LDEwIEBA
CiAjaW1wb3J0IDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KICNpbXBvcnQgPENvcmVB
dWRpby9Db3JlQXVkaW9UeXBlcy5oPgogCisjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCi1TT0ZUX0xJ
TktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkKLQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVk
aW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBp
bkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIp
LCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVy
KSkKLQogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGlj
IGlubGluZSBzaXplX3QgYWxpZ25UbzE2Qnl0ZXMoc2l6ZV90IHNpemUpCiB7CkBAIC0yMjEsNyAr
MjE3LDcgQEAgdm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSgpCiAgICAgbV9h
dWRpb0J1ZmZlckxpc3QgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9zdHJlYW1G
b3JtYXQsIG1fbWF4aW1pdW1GcmFtZUNvdW50KTsKIAogICAgIENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb247Ci0gICAgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
KE5VTEwsICZtX3N0cmVhbUZvcm1hdCwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERl
c2NyaXB0aW9uKTsKKyAgICBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShOVUxM
LCAmbV9zdHJlYW1Gb3JtYXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXREZXNjcmlw
dGlvbik7CiAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRp
b24pOwogCiAgICAgc2l6ZV90IHNhbXBsZUNvdW50ID0gMiAqIHJhdGU7CkBAIC0yNDMsNyArMjM5
LDcgQEAgdm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyh1aW50MzJf
dCBmcmFtZUNvdW50KQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVCht
X2Zvcm1hdERlc2NyaXB0aW9uKTsKIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtl
KG1fc2FtcGxlc0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9
IFBBTDo6Q01UaW1lTWFrZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOwogICAgIG1f
c2FtcGxlc0VtaXR0ZWQgKz0gZnJhbWVDb3VudDsKIAogICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSksICptX2F1ZGlvQnVmZmVyTGlzdCwgQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uKG1fc3RyZWFtRm9ybWF0KSwgZnJhbWVDb3VudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggYjA1OWEzMjUxZDhiOTY1N2Jh
OTAxNGM0NGY4MDYzYWY4MjdiMWQ0My4uYjYwYjg4NjZmYmI4MDQ4OGMyM2ZlMmI1NzY5MmIzMGY4
N2UzODY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAt
NTEsNyArNTEsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VP
ckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlQ29jb2EuY3BwCmluZGV4IDU4MDk0YjM0MjBmMzljOGYyNmMxNzc3YTJhZWQwMTIzZGJl
YTI2MjguLmFhNjk2YWRkZjdmNzc5MjU5MTUyOTU4M2MyMTYwYzEyNDkxMWQ1NWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNDAs
NyArNDAsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlPiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmIGF1ZGlvVHJhY2ss
IFN0cmluZyYmIGF1ZGlvVHJhY2tJZCkKIHsKQEAgLTEzMSw3ICsxMzAsNyBAQCB2b2lkIFJlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hOjpPbkRhdGEoY29uc3Qgdm9pZCogYXVkaW9EYXRh
LCBpbnQgYml0c1BlcgogICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IDA7CiAgICAgfQog
Ci0gICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgc2Ft
cGxlUmF0ZSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX251bWJl
ck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRp
YVRpbWUoc3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJhbWVz
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0K
aW5kZXggOGRmOGY2OGY2ZjcyNDA0NzVkYmQ0MzIzMDZhYTNhNTY5ZjZlNDhjZi4uMGM3MWUxZGIx
MGZhNDM3YTdjMDA0M2QzNjRmNDRiZjcyMzcxMWM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtNDIsNyArNDIsNiBAQCBBTExPV19V
TlVTRURfUEFSQU1FVEVSU19FTkQKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlPiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmIHZp
ZGVvVHJhY2ssIFN0cmluZyYmIHRyYWNrSWQpCiB7CkBAIC0xNzMsMTkgKzE3MiwxOSBAQCB2b2lk
IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpPbkZyYW1lKGNvbnN0IHdlYnJ0Yzo6
VmlkZW9GcmFtZSYgZnJhbWUpCiAgICAgfQogCiAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWlu
Z0luZm87Ci0gICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVRpbWVNYWtl
KGZyYW1lLnRpbWVzdGFtcF91cygpLCAxMDAwMDAwKTsKLSAgICB0aW1pbmdJbmZvLmRlY29kZVRp
bWVTdGFtcCA9IGtDTVRpbWVJbnZhbGlkOwotICAgIHRpbWluZ0luZm8uZHVyYXRpb24gPSBrQ01U
aW1lSW52YWxpZDsKKyAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IFBBTDo6
Q01UaW1lTWFrZShmcmFtZS50aW1lc3RhbXBfdXMoKSwgMTAwMDAwMCk7CisgICAgdGltaW5nSW5m
by5kZWNvZGVUaW1lU3RhbXAgPSBQQUw6OmtDTVRpbWVJbnZhbGlkOworICAgIHRpbWluZ0luZm8u
ZHVyYXRpb24gPSBQQUw6OmtDTVRpbWVJbnZhbGlkOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIE9TU3RhdHVzIG9zdGF0dXMgPSBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsK
KyAgICBPU1N0YXR1cyBvc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilw
aXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAob3N0YXR1cyAhPSBub0Vy
cikgewogICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJG
YWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciAi
LCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBvc3RhdHVzID0gQ01TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAo
Q1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJ
bmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBvc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVm
ZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1w
bGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9z
dGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJ
REVOVElGSUVSLCAiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgc2FtcGxlIGJ1ZmZlciB3aXRoIGVycm9y
ICIsIHN0YXRpY19jYXN0PGludD4ob3N0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNmJmMGNhNDg3ZGQ2NGRiZWY1Mzlk
OTQ4ODBmNjI4YzdmYTE2MWJmMS4uZTMzYmI2ZGE5ZGRkZDAxYTAwZDk5NmZkOWVmMDJhYzk4MTRh
MWViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29j
b2EuY3BwCkBAIC00NSw3ICs0NSw2IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogI2lu
Y2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+IFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZT4mJiB2aWRlb1NvdXJjZSkKIHsKQEAgLTg1LDcgKzg0LDcgQEAgdm9pZCBSZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKICAgICB9CiAKICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9
PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKLSAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsK
KyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNh
bXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIGF1dG8gcGl4ZWxGb3JtYXRUeXBlID0gQ1ZQaXhl
bEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiAKICAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gY29udmVydGVkQnVmZmVyID0gcGl4ZWxCdWZmZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxh
eUNhcHR1cmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQppbmRleCA3OGJiY2FkMTM5OTg2MmY1NWI5NzBi
ZTQ3N2YyNTE0YzRmMzQ4NDU0Li4xMjkzZGE1NTlmOTI5YTdhZWVjNTRkMDdhYTlhZTRmOTk0Zjk1
YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KQEAgLTQ2LDcgKzQ2
LDYgQEAKIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0dJbWFnZSk7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29sIGFueU9mQ0dXaW5k
b3coY29uc3QgRnVuY3Rpb248Ym9vbChDRkRpY3Rpb25hcnlSZWYgaW5mbywgdW5zaWduZWQgaWQs
IGNvbnN0IFN0cmluZyYgdGl0bGUpPiYgcHJlZGljYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdy
YXBwZWQuY3BwCmluZGV4IGExNmQyNDI1NjQxZjM3YTE5ZDBjMDllNTRiYzNlZWY0YWEyODE4ZWEu
LjBiYWMxZTI4OWU3NzcyZWFlN2U2YjM2OTgxMDg1OTRiN2E2ODY4NTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVk
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29y
ZU1lZGlhV3JhcHBlZC5jcHAKQEAgLTM0LDE3ICszNCwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogYm9vbCBjcmVhdGVXcmFwcGVyKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01C
YXNlVlRhYmxlKiBiYXNlVlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVj
dFJlZiogd3JhcHBlcikKIHsKLSAgICByZXR1cm4gQ01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFsbG9j
YXRvciwgYmFzZVZUYWJsZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0gbm9FcnI7CisgICAgcmV0dXJu
IFBBTDo6Q01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZUYWJsZSwgY2xhc3NJ
RCwgd3JhcHBlcikgPT0gbm9FcnI7CiB9CiAKIHZvaWQqIHdyYXBwZXJTdG9yYWdlKENNQmFzZU9i
amVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVybiBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3Rv
cmFnZSh3cmFwcGVyKTsKKyAgICByZXR1cm4gUEFMOjpDTUJhc2VPYmplY3RHZXREZXJpdmVkU3Rv
cmFnZSh3cmFwcGVyKTsKIH0KIAogY29uc3QgQ01CYXNlVlRhYmxlKiB3cmFwcGVyVlRhYmxlKENN
QmFzZU9iamVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVybiBDTUJhc2VPYmplY3RHZXRWVGFi
bGUod3JhcHBlcik7CisgICAgcmV0dXJuIFBBTDo6Q01CYXNlT2JqZWN0R2V0VlRhYmxlKHdyYXBw
ZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFk
ZXIuY3BwCmluZGV4IGMxODRlNDQ3YjJjZDQ0MmE4NDdlYzMxNjIzMzZiNmZhZjc4NzNjN2MuLjVl
Nzc4Y2MwYjdiZGE3NGUzZjc1Yzk5YjU4YmE4YmZhMjUxNzI5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlh
Rm9ybWF0UmVhZGVyLmNwcApAQCAtNDcsNyArNDcsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RS
QUlUKE1UUGx1Z2luRm9ybWF0UmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGNvbnN0
IHZvaWQqIG5leHRMb2dJZGVudGlmaWVyKCkKQEAgLTI0NSw3ICsyNDQsNyBAQCBPU1N0YXR1cyBN
ZWRpYUZvcm1hdFJlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdAogICAgIGlmIChtX2R1cmF0aW9uLmlzSW5kZWZpbml0ZSgpKQogICAgICAg
ICByZXR1cm4ga0NNQmFzZU9iamVjdEVycm9yX1ZhbHVlTm90QXZhaWxhYmxlOwogCi0gICAgaWYg
KGF1dG8gbGVha2VkRHVyYXRpb24gPSBhZG9wdENGKENNVGltZUNvcHlBc0RpY3Rpb25hcnkoUEFM
Ojp0b0NNVGltZShtX2R1cmF0aW9uKSwgYWxsb2NhdG9yKSkubGVha1JlZigpKSB7CisgICAgaWYg
KGF1dG8gbGVha2VkRHVyYXRpb24gPSBhZG9wdENGKFBBTDo6Q01UaW1lQ29weUFzRGljdGlvbmFy
eShQQUw6OnRvQ01UaW1lKG1fZHVyYXRpb24pLCBhbGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKICAg
ICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmKj4odmFsdWVDb3B5KSA9IGxl
YWtlZER1cmF0aW9uOwogICAgICAgICByZXR1cm4gbm9FcnI7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0
ZVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9N
ZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAKaW5kZXggZDgzZWZjZjQ3NzVjZTk2YjEyYTg3NjBmOGQx
NzIzNGFiMGYxZWU3ZC4uNGRlMWQwZWQyYTdiZTQ5ZTNjYmJiOTVlMzc3ZjU0NTA5ZmFjMDdhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCkBAIC0yNSwxMiArMjUsMTIg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQnl0ZVJhbmdl
LmgiCisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNpZiBFTkFCTEUo
V0VCTV9GT1JNQVRfUkVBREVSKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBNZWRpYVNhbXBsZUJ5dGVSYW5n
ZTo6TWVkaWFTYW1wbGVCeXRlUmFuZ2UoTWVkaWFTYW1wbGUmIHNhbXBsZSwgTVRQbHVnaW5CeXRl
U291cmNlUmVmIGJ5dGVTb3VyY2UsIHVpbnQ2NF90IHRyYWNrSUQpCkBAIC01MCw3ICs1MCw3IEBA
IE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZShNZWRpYVNhbXBsZSYg
c2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAgYXV0byBwbGF0Zm9ybVNhbXBsZSA9IHNhbXBs
ZS5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIHN3aXRjaCAocGxhdGZvcm1TYW1wbGUudHlwZSkgewog
ICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZToKLSAgICAgICAgbV9m
b3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxh
dGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAgbV9mb3JtYXREZXNj
cmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9y
bVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFBsYXRmb3JtU2FtcGxlOjpCeXRlUmFuZ2VTYW1wbGVUeXBlOgogICAgICAgICBtX2Zvcm1hdERl
c2NyaXB0aW9uID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLmJ5dGVSYW5nZVNhbXBsZS5zZWNvbmQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
TWVkaWFTYW1wbGVDdXJzb3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcAppbmRleCBjZTI5MDZkYzQ0MjliODc1MTRh
N2IwMGMzMjE3MzkyZDUwN2IzZjk1Li5mYmU0MjI3MzA2ZjgwZjYxYzEyN2MzMzhjNzFlZmE1NGEy
ZDIwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKQEAgLTQzLDcgKzQzLDYg
QEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblNhbXBsZUN1cnNvcik7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIHN0YXRpYyBNZWRpYVRpbWUgYXNzdW1lZERlY29kZVRpbWUoY29uc3QgTWVk
aWFUaW1lJiBwcmVzZW50YXRpb25UaW1lLCBEZWNvZGVPcmRlclNhbXBsZU1hcCYgbWFwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlh
VHJhY2tSZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCmluZGV4IDY0YmYxNDg2MzA0OGI5OWYwMGUzYjZjYjhj
NzM4ZTVlZjE4YmQ4MWEuLmViZTMxZGUyMDJiMGMwMDg2ZjAxYjM1NDNjM2FjMGNhNmNjN2RjNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9N
ZWRpYVRyYWNrUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgV1RGX0RF
Q0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblRyYWNrUmVhZGVyKTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogQ01CYXNlQ2xhc3NJRCBNZWRpYVRyYWNrUmVhZGVyOjp3cmFwcGVyQ2xhc3NJRCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tCmluZGV4IDQyNzk2OWMyODIxMThhYzNjM2Q3NzA4M2VhYjgyZDk1ZmQwYWJlZmYuLjE3MWQ5
Y2E0ODQ5MTVkN2FmNGVlYWQ2OTcwOTk5MWU1MDRkNDI3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNjks
NyArMjY5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lz
dHJhdGlvbnMoKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKLSAgICBpZiAoIWlzQXVk
aW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFjYW5Mb2FkX0F1ZGlvVG9vbGJv
eENvcmVfQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMoKSkKKyAgICBpZiAo
IVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Y2Fu
TG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRp
b25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2Vy
Q29jb2EubW0KaW5kZXggZjM3ODRmYzI3MTJiMGRmNjM4NzEyMDQ3Y2Q3MmY4NTMwYzc3NzIzNC4u
MmE4M2Q5NzEwYmY3MjU1ZTU5Mzg1YzFiMWY2NTkzNGMyNjMwNTU1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFu
YWdlckNvY29hLm1tCkBAIC00Miw3ICs0Miw2IEBAIEBlbmQKIE5TX0FTU1VNRV9OT05OVUxMX0VO
RAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGJvb2wgdXNhZ2VUcmFja2luZ0F2YWlsYWJsZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggYzMyM2E2YTc4YjQ1MDA1YjY3NzQwODYyYjYyOWIx
NmZiYjgwZjQwYi4uZjg5MWE1MzMxNDUwYmYxN2VhZjk1YjAwZTMxOGRhZTNjNzM4NzU0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFu
YWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZVByb3h5LmNwcAppbmRleCA5NWJiZDU0ODNjZmVhMTdjOTEyZWQ1YjVmMTNmNDMxZmFlMzcx
MjY3Li44YTU5YWUxYTI4ZmE0M2E5YjJmMjE1NzYyMTE4OWFlOTc2ZDEwMmRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlUHJveHk6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5k
ZXggNjZhMTllNzNhOWViNTY0ZGNjZTA3NzdkYzMyMDBlNGMwYmM5M2M2MC4uOGFjYzNkMGE4YWIx
Y2NkNGIzZmVjYWQ2MGIzYTZiYzNhZTY0MzAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMzkyLDcgKzEzOTIsNyBAQCB2
b2lkIFdlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKLSAg
ICBpZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFjYW5Mb2Fk
X0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMo
KSkKKyAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkg
fHwgIVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2
ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gcmVnaXN0cmF0
aW9ucyA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRhdGEuZGF0
YSgpLCBkYXRhLnNpemUoKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432047</attachid>
            <date>2021-06-23 08:29:46 -0700</date>
            <delta_ts>2021-06-23 16:13:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210624012945.patch</filename>
            <type>text/plain</type>
            <size>309545</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJlMjllYTAwYjM3YjBk
NTI2ZjRmYzAwMjYxZmE4ODQxNzUzNGFhYS4uZjVlYWYxMjM0ODY3MTdkOThlMmQyZmRkNDMyOGE4
YWI0ZDgxNTRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlIG9m
IEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgVW5pZnkgQXVkaW9Ub29sYm94LCBDb3JlTWVkaWEsIFZpZGVvVG9vbGJveCBhbmQg
TWVkaWFUb29sYm94J3MgbWV0aG9kCisgICAgICAgIGRlZmluaXRpb25zIGFuZCB0aGVpciB1c2Us
IGVuc3VyaW5nIHRoYXQgdGhleSBhcmUgYWx3YXlzIHNvZnQtbGlua2VkLgorICAgICAgICBVbmlm
aWVkIGJ1aWxkcyBhbmQgdGhlIGluY29uc2lzdGVudCB1c2Ugb2YgZXhwbGljaXRseSB1c2luZyB0
aGUgUEFMIG5hbWVzcGFjZQorICAgICAgICBjYXVzZWQgc29tZSBjYWxscyB0byBiZSBhbWJpZ3Vv
dXMgbGVhZGluZyB0byBjb21waWxhdGlvbiBlcnJvcnM7IHNvbWUKKyAgICAgICAgY29kZSB3b3Vs
ZCBhbHNvIHVzZSB0aGUgc29mdGxpbmtlZCBtZXRob2RzIHdoaWxlIG90aGVycyBjYWxsZWQgaW50
byB0aGUgZnJhbWV3b3JrcworICAgICAgICBkaXJlY3RseS4KKyAgICAgICAgVG8gZ2V0IGFyb3Vu
ZCB0aG9zZSB3ZSBlbnN1cmUgdGhhdCBhbnkgY2FsbHMgdG8gQXVkaW9Ub29sYm94IG9yIENvcmVN
ZWRpYSBpcyBhbHdheXMgdXNpbmcKKyAgICAgICAgdGhlIGZ1bGx5IHJlc29sdmVkIFBBTCBuYW1l
LgorICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgYHVzaW5nIG5hbWVzcGFjZSBQQUw7YCBzdGF0
ZW1lbnRzIHdoZXJldmVyIGFwcGxpY2FibGUuCisgICAgICAgIE5vIGNoYW5nZSBpbiBvYnNlcnZh
YmxlIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0ZpbGVSZWFkZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3ApOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW06CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3Vy
ZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9T
YW1wbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnBy
ZXBhcmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
SW1hZ2VHZW5lcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwbGF0Zm9ybU1pblRpbWVTZWVrYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6c3RvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
aXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRD
aGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNlZWtJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRl
c3Ryb3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OnZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJl
Zj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0
ZUltYWdlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6cHJl
c2VudGF0aW9uVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmRlY29kZVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkdXJhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OnNpemVJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpkb2Vz
Q01TYW1wbGVCdWZmZXJIYXZlU3luY0luZm8pOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBs
ZUJ1ZmZlclJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudE5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpD
OjpwcmVzZW50YXRpb25TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6OmlzRGl2aXNhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6aXNIb21vZ2VuZW91cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZl
ckFuZFNldEFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhblNldE1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNr
RGF0YTo6Y29uc3VtZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1l
RnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1
ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQ01Db2xvclByaW1hcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9DTVRy
YW5zZmVyRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01ZQ2JDUk1hdHJp
eCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVj
Q29uZmlndXJhdGlvblJlY29yZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFp
dDxDTVNhbXBsZUJ1ZmZlclJlZj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29t
cHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0VmlkZW9G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1
dG9tYXRpY0RlcXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50YXRpb25UaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RHVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVmZmVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnVwZGF0
ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWth
YmxlUmFuZ2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0
dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dX
YXRlclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm9jZXNzU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29t
cHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNz
ZXRXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjph
cHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXApOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRp
b1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y29tcGxldGVGZXRjaERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpyZXN1bWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZp
bmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZp
ZGVvQ29tcHJlc3Npb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OnZ0UHJvZmlsZUxldmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1w
bGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkxvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZyYW1lRHVyYXRpb25Gb3JGcmFtZVJhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJlc2V0cyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNl
Q2xvY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNl
dHVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNv
bmZpZ3VyZU1pY3JvcGhvbmVQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpD
b3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW06CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbToKKwogMjAyMS0wNi0yMSAgSmVhbi1Z
dmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbWV0
aG9kIGluIEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggODk3MGY2Yzc5MDRm
ZjNmNWVmODAzNGMwYjFkMmNmMjY5N2NlYzI4OC4uZmMwNTcyMGE5Y2E2YTc5MmM2ZDkxNTM2M2I4
MDcyMDhjNWVkNDFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEt
MDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBOb3Qg
YWxsIHVzZSBvZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAg
ICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaDogQWRkIG1ldGhvZHMgd2hvc2Ug
ZGVmaW5pdGlvbnMgd2VyZSBzY2F0dGVyZWQgYWNyb3NzCisgICAgICAgIHRoZSBjb2RlLgorICAg
ICAgICAqIHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFs
L2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmg6IFNhbWUgYXMgYWJvdmUuCisgICAgICAgICog
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9U
b29sYm94U29mdExpbmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kcworICAgICAgICAqIHBhbC9jZi9D
b3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg6IEFkZCBtaXNzaW5nIG1ldGhvZHMKKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQg
bWlzc2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAg
ICAgICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBh
bC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIw
MjEtMDYtMjIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0Nv
Y29hXSBpT1MgZGV2aWNlIHN0ZWFscyBCVCBoZWFkcGhvbmVzIGZyb20gb3RoZXIgZGV2aWNlcyBk
dXJpbmcgc2lsZW50IHBsYXliYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxMDdjZmUzYzA4MWVjMTAzODE5Nzky
OWVmMzFjZTNmNjA1MzNjMjMuLmIxNjgxNGNjYTkzYTJjNGRkMGM0MzQ5NmM1ZjBiNDE3MDkzYjk0
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDYtMjMgIEplYW4tWXZlcyBBdmVu
YXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBOb3QgYWxsIHVzZSBvZiBBdWRpb1Rvb2xi
b3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzk2
MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgor
ICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAoV2ViS2l0Ojp3
cmFwcGVyU3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBwZXJWVGFibGUpOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0
ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2Ft
cGxlQ3Vyc29yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kQXVk
aW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29j
b2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisKIDIwMjEtMDYtMjMgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJldmVydGluZyByMjc5MTA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDZhODIz
ZDYxYWQxMDEwMzJiYmUxOTRhNjJiNWI2MTU2ZDIzY2FiMTIuLjA5YzJlYTMyOWMyYzBjYTZlZTZm
N2JhM2EyYzQ0YWRmODM0OGU1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTUzLDgg
KzUzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwot
CiAjaWYgIVVTRShMSUJXRUJSVEMpCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBlZXJDb25uZWN0
aW9uQmFja2VuZD4gY3JlYXRlTm9QZWVyQ29ubmVjdGlvbkJhY2tlbmQoUlRDUGVlckNvbm5lY3Rp
b24mKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4IDQwMGY5YjhkMTZiNTkzYjQ4NWUw
MGM3Zjc4ZjU5ZGU5OGRjMzdkOWYuLjc0OTk0ZTJjNTEwMGVjYWJhNjE1OTBmYjExODBhYTBiYzM3
YjBkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdp
bnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAgLTU4LDcgKzU4LDYgQEAKICNpbXBv
cnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHN0
YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkLCBKU0NvbnRleHQgKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNWIxMzViMzlhNWEwYTFkODAxYmU2
ODc4ZmJkZmY2NzY2YzJlOGFjZS4uZjFjMmFmMzNjNWZhMmFiNmZjNTE2Njk5ODNmYTcwZTc2OTY0
MDI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtMzcsOCArMzcsNiBAQAog
I2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2luY2x1ZGUgIkNvcmVWaWRl
b1NvZnRMaW5rLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RhdGljIGlubGluZSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gc3RyZWFtRGVzY3Jp
cHRpb24oc2l6ZV90IHNhbXBsZVJhdGUsIHNpemVfdCBjaGFubmVsQ291bnQpCkBAIC03MSw3ICs2
OSw3IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKEF1ZGlvQnVz
JiBidXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fbnVtYmVyT2ZGcmFtZXMsIG1fY3Vy
cmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6
Q01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRl
KCkpOwogICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpOwog
ICAgIG1fbnVtYmVyT2ZGcmFtZXMgKz0gbnVtYmVyT2ZGcmFtZXM7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggNjdiNzhm
NDZhNzgxMTc4ODhmMDBkMDg5N2RiYTU3ZTdhYzUzODUwMi4uMzMzYWEyMjRjNzFhNzUwY2Q5YTBm
NjlmNzgzZGQwMTU5NzUxMGFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTI2LDIwICsyNiw0NiBAQAogCiAjaWYgVVNF
KEFWRk9VTkRBVElPTikKIAorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbXBvbmVudC5o
PgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgorI2luY2x1ZGUgPEF1
ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Gb3Jt
YXQuaD4KLQorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb1VuaXQuaD4KKyNpbmNsdWRlIDxB
dWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtp
bmcuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
KQogU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBBdWRpb1Rvb2xib3hDb3JlLCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8s
IE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252
ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBvdXRTaXplLCBCb29sZWFuKiBv
dXRXcml0YWJsZSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIG91dFNpemUsIG91
dFdyaXRhYmxlKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb0Zvcm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9ybWF0UHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0IHZvaWQqIGlu
U3BlY2lmaWVyLCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlE
YXRhKSwgKGluUHJvcGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmllciwgaW9Qcm9w
ZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252
ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0
aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlLCBPU1N0YXR1cywg
KEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIpLCAoaW5BdWRpb0NvbnZlcnRlcikp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9D
b252ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlv
Q29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIg
aW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlv
Q29udmVydGVyLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURh
dGEpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5B
dWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUlu
dDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkF1ZGlv
Q29udmVydGVyLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlE
YXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVy
dGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3Qg
QXVkaW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXRE
YXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwg
b3V0T3V0cHV0RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRp
b0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1
dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywgdm9pZCogaW5JbnB1dERhdGFQcm9jVXNlckRhdGEs
IFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRw
dXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBvdXRQYWNrZXREZXNjcmlwdGlv
biksIChpbkF1ZGlvQ29udmVydGVyLCBpbklucHV0RGF0YVByb2MsIGluSW5wdXREYXRhUHJvY1Vz
ZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRTaXplLCBvdXRPdXRwdXREYXRhLCBvdXRQYWNrZXRE
ZXNjcmlwdGlvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNp
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRp
b091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJ
bnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbkluc3Rh
bmNlKSwgKGluSW5zdGFuY2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBB
dWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUsIE9TU3RhdHVzLCAoQXVkaW9Db21w
b25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXROYW1lKSwgKGluQ29tcG9uZW50LCBv
dXROYW1lKSkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVn
aXN0cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMp
LCAob3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlvVG9vbGJveENvcmUs
IEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0
YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgUEFM
X0VYUE9SVCkKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxlKSwg
KGluQXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkICppbkNs
aWVudERhdGEsIEF1ZGlvRmlsZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQ
cm9jIGluV3JpdGVGdW5jLCBBdWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVk
aW9GaWxlX1NldFNpemVQcm9jIGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVU
eXBlSGludCwgQXVkaW9GaWxlSUQgKm91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVh
ZEZ1bmMsIGluV3JpdGVGdW5jLCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVU
eXBlSGludCwgb3V0QXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlv
RmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlR2V0UHJvcGVy
dHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0Zp
bGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyICppb1Byb3BlcnR5RGF0YVNpemUsIHZv
aWQgKm91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpb1By
b3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlUmVhZCwgT1NTdGF0dXMsIChF
eHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQzMiAqaW9OdW1iZXJGcmFtZXMsIEF1
ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpb051bWJlckZyYW1lcywg
aW9EYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5F
eHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIg
aW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0YSksIChpbkV4dEF1
ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRh
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRB
dWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5GaWxlSUQs
IEJvb2xlYW4gaW5Gb3JXcml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYgKm91dEV4dEF1ZGlvRmlsZSks
IChpbkZpbGVJRCwgaW5Gb3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5VUkws
IE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9G
aWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4dCwgQXVkaW9D
b21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVkaW9Db21wb25l
bnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5z
dGFuY2VOZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2UqIG91dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9V
bml0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJv
cGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGlu
RWxlbWVudCwgdm9pZCogb3V0RGF0YSwgVUludDMyKiBpb0RhdGFTaXplKSwgKGluVW5pdCwgaW5J
RCwgaW5TY29wZSwgaW5FbGVtZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXpl
LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRTZXRQcm9wZXJ0eSwg
T1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1
ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCBjb25zdCB2
b2lkKiBpbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwg
aW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQogCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRB
VElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExp
bmsuaAppbmRleCA0OWUzMmUxNzk0MDM2M2I4NDk3NzQ0MzViZDIwOTVlNjRhYjQ4ODFiLi5mNzRi
MTQwN2UwMDdiNzUxOWRkYzc4NjhkMjM1MDRkNTkyZmMwMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCkBAIC0yNiwyNyArMjYsMTA4
IEBACiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVB
dWRpb1R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIHR5cGVkZWYgVUlu
dDMyIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRDsKIHR5cGVkZWYgVUludDMyIEF1ZGlvRm9ybWF0
UHJvcGVydHlJRDsKIHR5cGVkZWYgc3RydWN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb247CiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0Nv
bnZlcnRlciogQXVkaW9Db252ZXJ0ZXJSZWY7Cit0eXBlZGVmIHN0cnVjdCBBdWRpb0J1ZmZlckxp
c3QgQXVkaW9CdWZmZXJMaXN0OwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvQ29udmVydGVyQ29t
cGxleElucHV0RGF0YVByb2MpKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsCisg
ICAgVUludDMyKiBpb051bWJlckRhdGFQYWNrZXRzLAorICAgIEF1ZGlvQnVmZmVyTGlzdCogaW9E
YXRhLAorICAgIEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qKiBvdXREYXRhUGFja2V0RGVz
Y3JpcHRpb24sCisgICAgdm9pZCogaW5Vc2VyRGF0YSk7CisKK3R5cGVkZWYgc3RydWN0IE9wYXF1
ZUV4dEF1ZGlvRmlsZSogRXh0QXVkaW9GaWxlUmVmOwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVk
aW9GaWxlSUQqIEF1ZGlvRmlsZUlEOwordHlwZWRlZiBVSW50MzIgQXVkaW9GaWxlVHlwZUlEOwor
dHlwZWRlZiBVSW50MzIgRXh0QXVkaW9GaWxlUHJvcGVydHlJRDsKK3R5cGVkZWYgT1NTdGF0dXMg
KCpBdWRpb0ZpbGVfUmVhZFByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBTSW50
NjQgaW5Qb3NpdGlvbiwKKyAgICBVSW50MzIgcmVxdWVzdENvdW50LAorICAgIHZvaWQqIGJ1ZmZl
ciwKKyAgICBVSW50MzIqIGFjdHVhbENvdW50KTsKK3R5cGVkZWYgT1NTdGF0dXMgKCpBdWRpb0Zp
bGVfV3JpdGVQcm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEsCisgICAgU0ludDY0IGluUG9z
aXRpb24sCisgICAgVUludDMyIHJlcXVlc3RDb3VudCwKKyAgICBjb25zdCB2b2lkKiBidWZmZXIs
CisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7Cit0eXBlZGVmIFNJbnQ2NCAoKkF1ZGlvRmlsZV9H
ZXRTaXplUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhKTsKK3R5cGVkZWYgT1NTdGF0dXMg
KCpBdWRpb0ZpbGVfU2V0U2l6ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBT
SW50NjQgaW5TaXplKTsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29tcG9uZW50KiBBdWRp
b0NvbXBvbmVudDsKK3R5cGVkZWYgc3RydWN0IENvbXBvbmVudEluc3RhbmNlUmVjb3JkKiBBdWRp
b0NvbXBvbmVudEluc3RhbmNlOwordHlwZWRlZiBBdWRpb0NvbXBvbmVudEluc3RhbmNlIEF1ZGlv
VW5pdDsKK3R5cGVkZWYgc3RydWN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gQXVkaW9Db21w
b25lbnREZXNjcmlwdGlvbjsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdFByb3BlcnR5SUQ7Cit0
eXBlZGVmIFVJbnQzMiBBdWRpb1VuaXRTY29wZTsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdEVs
ZW1lbnQ7CiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCkKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUp
CiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRp
b0NvbnZlcnRlckdldFByb3BlcnR5SW5mbywgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBp
bkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBV
SW50MzIqIG91dFNpemUsIEJvb2xlYW4qIG91dFdyaXRhYmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIs
IGluUHJvcGVydHlJRCwgb3V0U2l6ZSwgb3V0V3JpdGFibGUpKQorI2RlZmluZSBBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5SW5mbyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJH
ZXRQcm9wZXJ0eUluZm8KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVy
dGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3Bl
cnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEp
LCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91
dFByb3BlcnR5RGF0YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkgc29mdExp
bmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NT
dGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0
LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQs
IEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwg
aW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQogI2RlZmluZSBBdWRpb0Nv
bnZlcnRlck5ldyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJOZXcKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRl
ckRpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciks
IChpbkF1ZGlvQ29udmVydGVyKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlIHNvZnRM
aW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckRpc3Bvc2UKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5
LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29u
dmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUs
IGNvbnN0IHZvaWQqIGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVy
dHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiAjZGVmaW5lIEF1ZGlv
Q29udmVydGVyU2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVy
U2V0UHJvcGVydHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb0Zvcm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9ybWF0UHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0IHZvaWQqIGlu
U3BlY2lmaWVyLCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlE
YXRhKSwgKGluUHJvcGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmllciwgaW9Qcm9w
ZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0Zvcm1hdEdldFBy
b3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0Zvcm1hdEdldFByb3BlcnR5CitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0
ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1
ZGlvQ29udmVydGVyLCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVy
TGlzdCogaW5JbnB1dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1
ZGlvQ29udmVydGVyLCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERh
dGEpKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyIHNvZnRMaW5r
X0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJG
aWxsQ29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jIGluSW5wdXREYXRhUHJv
Yywgdm9pZCogaW5JbnB1dERhdGFQcm9jVXNlckRhdGEsIFVJbnQzMiogaW9PdXRwdXREYXRhUGFj
a2V0U2l6ZSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhLCBBdWRpb1N0cmVhbVBhY2tl
dERlc2NyaXB0aW9uKiBvdXRQYWNrZXREZXNjcmlwdGlvbiksIChpbkF1ZGlvQ29udmVydGVyLCBp
bklucHV0RGF0YVByb2MsIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBpb091dHB1dERhdGFQYWNr
ZXRTaXplLCBvdXRPdXRwdXREYXRhLCBvdXRQYWNrZXREZXNjcmlwdGlvbikpCisjZGVmaW5lIEF1
ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
Q29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRp
b1VuaXQgY2kpLCAoY2kpKQorI2RlZmluZSBBdWRpb091dHB1dFVuaXRTdGFydCBzb2Z0TGlua19B
dWRpb1Rvb2xib3hfQXVkaW9PdXRwdXRVbml0U3RhcnQKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywg
KEF1ZGlvVW5pdCBjaSksIChjaSkpCisjZGVmaW5lIEF1ZGlvT3V0cHV0VW5pdFN0b3Agc29mdExp
bmtfQXVkaW9Ub29sYm94X0F1ZGlvT3V0cHV0VW5pdFN0b3AKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9z
ZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAoaW5JbnN0
YW5jZSkpCisjZGVmaW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlIHNvZnRMaW5rX0F1
ZGlvVG9vbGJveF9BdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUs
IE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXRO
YW1lKSwgKGluQ29tcG9uZW50LCBvdXROYW1lKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRDb3B5
TmFtZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRDb3B5TmFtZQorCiBTT0ZU
X0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUs
IEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0
YVJlZiogb3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSkK
ICNkZWZpbmUgQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExpbmtB
dWRpb1Rvb2xib3hDb3JlQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMKIFNP
RlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29y
ZSwgQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZE
YXRhUmVmIGluQnVuZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQog
I2RlZmluZSBBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1
ZGlvVG9vbGJveENvcmVBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucwogCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxl
Q2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUp
KQorI2RlZmluZSBBdWRpb0ZpbGVDbG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxl
Q2xvc2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkKiBpbkNsaWVudERhdGEs
IEF1ZGlvRmlsZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3Jp
dGVGdW5jLCBBdWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1Nl
dFNpemVQcm9jIGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwg
QXVkaW9GaWxlSUQqIG91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGlu
V3JpdGVGdW5jLCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwg
b3V0QXVkaW9GaWxlKSkKKyNkZWZpbmUgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mgc29mdExp
bmtfQXVkaW9Ub29sYm94X0F1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9zZSwg
T1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRpb0Zp
bGUpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9F
eHRBdWRpb0ZpbGVEaXNwb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9G
aWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJ
RCwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChp
bkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3Bl
cnR5RGF0YSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9FeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0
QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBVSW50MzIqIGlvTnVtYmVyRnJhbWVzLCBBdWRp
b0J1ZmZlckxpc3QqIGlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlv
RGF0YSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVJlYWQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4
dEF1ZGlvRmlsZVJlYWQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9U
b29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVS
ZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBV
SW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChp
bkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVy
dHlEYXRhKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9U
b29sYm94X0V4dEF1ZGlvRmlsZVNldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0
YXR1cywgKEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVk
aW9GaWxlUmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0
RXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEIHNvZnRM
aW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJM
LCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlv
RmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlT3Bl
blVSTCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlT3BlblVSTAorCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRG
aW5kTmV4dCwgQXVkaW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29u
c3QgQXVkaW9Db21wb25lbnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRl
c2MpKQorI2RlZmluZSBBdWRpb0NvbXBvbmVudEZpbmROZXh0IHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbXBvbmVudEZpbmROZXh0CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChB
dWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0SW5z
dGFuY2UpLCAoaW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKKyNkZWZpbmUgQXVkaW9Db21wb25l
bnRJbnN0YW5jZU5ldyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5j
ZU5ldworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5p
dFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVu
dCBpbkVsZW1lbnQsIHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9EYXRhU2l6ZSksIChpblVuaXQs
IGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCisjZGVmaW5l
IEF1ZGlvVW5pdEdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRHZXRQ
cm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVu
aXQpKQorI2RlZmluZSBBdWRpb1VuaXRJbml0aWFsaXplIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9B
dWRpb1VuaXRJbml0aWFsaXplCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgQXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGlu
VW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBB
dWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5E
YXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRh
dGFTaXplKSkKKyNkZWZpbmUgQXVkaW9Vbml0U2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvVW5pdFNldFByb3BlcnR5CisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAppbmRl
eCAyYjdiYTM0OTk2OWQzYjhiMzJlNWVjYmQ2ODhiYjRmMTgwYmQ0MDRmLi43MTQ1NTNjODM2ZjNj
YTE0YjM5ZDZiN2I2ODQ0YzRkMDNkMDE1ZmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
PHd0Zi9Tb2Z0TGlua2luZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8Q29y
ZU1lZGlhL0NNQnVmZmVyUXVldWUuaD4KICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+
CiAjZW5kaWYKIApAQCAtNDcsNiArNDgsOCBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZl
ckNvcHlEYXRhQnl0ZXMsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVTb3VyY2VCdWZm
ZXIsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCB2b2lkKiBkZXN0aW5h
dGlvbiksICh0aGVTb3VyY2VCdWZmZXIsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZGVzdGlu
YXRpb24pLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3Qs
IChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNv
dXJjZUJ5dGVzLCBDTUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zm
c2V0SW50b0Rlc3RpbmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVz
dGluYXRpb25CdWZmZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxv
Y2tCdWZmZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9j
a0J1ZmZlckdldERhdGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVm
ZmVyLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXplX3QqIHRv
dGFsTGVuZ3RoT3V0LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBvZmZzZXQs
IGxlbmd0aEF0T2Zmc2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25hcnlS
ZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAodm9pZCksICgpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCkBAIC0xMDQsOSArMTA3LDkg
QEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1
bHRMb2NhbENlbnRlciwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsICh2b2lkKSwgKCksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5v
dGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlm
aWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0
IHZvaWQqIG9iamVjdCwgVUludDMyIGZsYWdzKSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNr
LCBub3RpZmljYXRpb24sIG9iamVjdCwgZmxhZ3MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0
aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIsIE9TU3RhdHVzLCAoQ01Ob3RpZmljYXRpb25DZW50ZXJS
ZWYgY2VudGVyLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxsYmFjayBj
YWxsYmFjaywgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBvYmplY3QpLCAo
Y2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0KSwgUEFMX0VY
UE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHks
IENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFj
aywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2Ft
cGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdB
cnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2Ft
cGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRh
dGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5
UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50
cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXpl
QXJyYXksIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNi
dWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3
VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZm
ZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBj
b25zdCBDTVNhbXBsZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZl
clJlZiAqc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRp
bWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNh
bXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZv
aWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRp
bWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXks
IENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNp
emVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVm
ZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNv
biwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5
LCBzQnVmT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBD
TVNhbXBsZUJ1ZmZlclJlZiogc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29w
eU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWlu
ZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVm
IG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3Qg
Q01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYq
IHNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdF
bnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGlt
aW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxv
Y2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVm
T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFn
ZUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNh
bGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwg
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNh
bXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1
ZmZlck91dCksIChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVh
ZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBs
ZVRpbWluZywgc2FtcGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdl
dERlY29kZVRpbWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVm
KSwgUEFMX0VYUE9SVCkKQEAgLTExNiwxNCArMTE5LDE0IEBAIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFBy
ZXNlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbiwgQ01UaW1lLCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91
dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1l
bnRzQXJyYXksIENGQXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNy
ZWF0ZUlmTmVjZXNzYXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgUEFMX0VYUE9SVCkK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2Ft
cGxlVGltaW5nSW5mbyAqdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVu
dHJpZXNOZWVkZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91
dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5m
byogdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRP
dXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJy
YXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENN
VGltZSwgKENNVGltZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdN
ZXRob2QgbWV0aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01CbG9ja0J1ZmZlclJl
ZiBidWZmZXIpLCAoc2J1ZiwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUdldEF0dGFjaG1lbnQs
IENGVHlwZVJlZiwgKENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtl
eSwgQ01BdHRhY2htZW50TW9kZSogYXR0YWNobWVudE1vZGVPdXQpLCAodGFyZ2V0LCBrZXksIGF0
dGFjaG1lbnRNb2RlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChD
TUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENGVHlwZVJlZiB2
YWx1ZSwgQ01BdHRhY2htZW50TW9kZSBhdHRhY2htZW50TW9kZSksICh0YXJnZXQsIGtleSwgdmFs
dWUsIGF0dGFjaG1lbnRNb2RlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZv
aWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFy
Z2V0LCBrZXkpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ss
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNs
b2NrLCBDTVRpbWViYXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2Nr
LCB0aW1lYmFzZU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJD
bG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFz
dGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVy
Q2xvY2ssIHRpbWViYXNlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01U
aW1lLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01UaW1lYmFzZUdldFJhdGUsIEZsb2F0NjQsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRp
bWViYXNlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0UmF0ZSwgT1NTdGF0dXMsIChDTVRp
bWViYXNlUmVmIHRpbWViYXNlLCBGbG9hdDY0IHJhdGUpLCAodGltZWJhc2UsIHJhdGUpLCBQQUxf
RVhQT1JUKQpAQCAtMTQ0LDExICsxNDcsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVEZXF1ZXVlQW4KIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TUJ1ZmZlclF1ZXVlRW5xdWV1ZSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBD
TUJ1ZmZlclJlZiBidWZmZXIpLCAocXVldWUsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZm
ZXJRdWV1ZUlzRW1wdHksIEJvb2xlYW4sIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVl
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlbUNvdW50
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZm
ZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZm
ZXJDYWxsYmFja3MgKiwgKCksICgpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxs
YmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiwg
KCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRp
bWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1l
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZm
ZXJRdWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUs
IENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01C
dWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZm
ZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywg
cmVmY29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVz
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0
cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQs
IENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJp
Z2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhy
ZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVNYXJr
RW5kT2ZEYXRhLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2ht
ZW50S2V5X0RvTm90RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE2OCwz
OCArMTczLDQwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsCiAKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlm
aWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
a0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBP
UlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwg
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaywgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1lbW9yeUJsb2NrLCBz
aXplX3QgYmxvY2tMZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2NhdG9yLCBjb25zdCBD
TUJsb2NrQnVmZmVyQ3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291cmNlLCBzaXplX3Qg
b2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZlckZsYWdzIGZsYWdz
LCBDTUJsb2NrQnVmZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1cmVBbGxvY2F0b3Is
IG1lbW9yeUJsb2NrLCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1c3RvbUJsb2NrU291
cmNlLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBB
TF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRC
bG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1
ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNp
emVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwg
Q0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxv
Y2tCdWZmZXJSZWYgKmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVk
T3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwg
YmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVy
LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNp
emVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZl
ckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRv
clJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJl
ZiogYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZl
ckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5
QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0TnVtU2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
KSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZv
clJhbmdlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZP
dXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCksIFBBTF9FWFBPUlQp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXpl
QXJyYXlPdXQsIENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYs
IHNpemVBcnJheUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91
dCksIFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERl
c2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tC
dWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFr
ZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFS
ZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01J
dGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFj
a2V0RGVzY3JpcHRpb24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNC
dWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlD
YWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBs
ZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2Nh
dG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywg
Y29uc3QgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxv
Y2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1
ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxi
YWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2Ft
cGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24q
IHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2Nh
dG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURh
dGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBh
Y2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywg
Q01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNj
cmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVm
ZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNh
bXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRpb25zLCBzYW1wbGVC
dWZmZXJPdXQpLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJv
bUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFs
bG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5
QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJM
aXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZs
YWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFBy
ZXNlbnRhdGlvblRpbWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBD
TVRpbWUgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNidWYsIG91dHB1dFByZXNlbnRh
dGlvblRpbWVTdGFtcCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHks
IE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBs
ZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6
ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQp
LCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVF
bnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXpl
X3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBt
YWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYg
ZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9j
YXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29v
a2llLCBleHRlbnNpb25zLCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRNYWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZGVzYywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQ
T1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQs
IGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdl
dFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0qLCAoQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01D
bG9ja0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01DbG9ja0dldFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spLCBQ
QUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCogQ01TQU1QTEVCVUZGRVJDQUxMX05P
RVNDQVBFIGNhbGxiYWNrKSggQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1D
b3VudCBpbmRleCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVmY29uKSwgKHNidWYsIGNhbGxiYWNr
LCByZWZjb24pLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNh
bXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXiBDTVNB
TVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRl
bUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNh
bGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3Rh
dHVzICgqQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGNhbGxiYWNrKShDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50IGluZGV4LCB2b2lkKiByZWZjb24pLCB2b2lk
KiByZWZjb24pLCAoc2J1ZiwgY2FsbGJhY2ssIHJlZmNvbiksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYsIE9TU3RhdHVzICheQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIp
KENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlciksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fUHJvdGVjdGVk
Q29udGVudE9yaWdpbmFsRm9ybWF0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiwgQ0ZTdHJpbmdSZWYs
IFBBTF9FWFBPUlQpCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQp
LCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tP
dXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwg
Q01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11
bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwgKENNVGltZVJh
bmdlIHJhbmdlLCBDTVRpbWUgdGltZSksIChyYW5nZSwgdGltZSksIFBBTF9FWFBPUlQpCiAKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBr
Q01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lLCBQQUxfRVhQT1JUKQotI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAKICNpZiBQTEFURk9STShNQUMpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZTdHJpbmdSZWYgZGV2
aWNlVUlELCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGRldmljZVVJRCwgY2xv
Y2tPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9j
a1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCosIChDTUJhc2VPYmpl
Y3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmpl
Y3RHZXRWVGFibGUsIGNvbnN0IENNQmFzZVZUYWJsZSosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9i
amVjdCksIChiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRPYmplY3RDcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFibGUq
IHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIGJhc2VPYmpl
Y3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3QpLCBQQUxfRVhQT1JU
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4
IDg4ZjdjZDdiYTk4ZGZmOWNkZmNhZjE1ODFlODZjZmNjYjIxMDNkYmQuLmI5ZTkxMWNjNWQwZDkw
OGM2ZGE0MDZkNTVlZDI2OTA0OTNlNTMzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKQEAgLTUxLDYgKzUxLDEwIEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0
aCwgc2l6ZV90CiAjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzLCBP
U1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBDTUJsb2NrQnVmZmVyUmVmIGRlc3Rp
bmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3RpbmF0aW9uLCBzaXplX3QgZGF0YUxl
bmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25CdWZmZXIsIG9mZnNldEludG9EZXN0aW5h
dGlvbiwgZGF0YUxlbmd0aCkpCiAjZGVmaW5lIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVz
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcworU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJBc3N1
cmVCbG9ja01lbW9yeSwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0
aGVCdWZmZXIpKQorI2RlZmluZSBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkgc29mdExp
bmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhUG9p
bnRlciwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciwgc2l6ZV90IG9mZnNl
dCwgc2l6ZV90KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0b3RhbExlbmd0aE91dCwgY2hh
cioqIGRhdGFQb2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGhBdE9mZnNldE91
dCwgdG90YWxMZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSkKKyNkZWZpbmUgQ01CbG9ja0J1ZmZl
ckdldERhdGFQb2ludGVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyR2V0RGF0YVBv
aW50ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZv
cm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUZvcm1hdERlc2NyaXB0aW9u
R2V0RXh0ZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4
dGVuc2lvbnMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICh2b2lkKSwgKCkpCkBAIC02Myw2ICs2
Nyw4IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8sCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mbyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1w
bGVUaW1pbmdJbmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJEYXRhSXNSZWFkeSwgQm9vbGVhbiwgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHkgc29mdExp
bmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5LCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRh
QnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25z
dCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1T
YW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxl
QnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3Jt
YXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxl
VGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNhbXBs
ZUJ1ZmZlck91dCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkgc29mdExpbmtf
Q29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENN
VGltZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0
aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSkKICNkZWZpbmUgQ01UaW1lQ29udmVy
dFNjYWxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb252ZXJ0U2NhbGUKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENN
VGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCkBAIC04NywyOSArOTMs
MjkgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZVJhbmdlRXF1YWwsIEJvb2xlYW4sIChDTVRpbWUKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVE
ZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcyBnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9u
RXh0ZW5zaW9uQXRvbXMoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzLCBDRlN0cmlu
Z1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVz
Y3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9Q
MygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzIGdl
dF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERl
c2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQ
cmltYXJpZXNfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCgpCisj
ZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCBnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0
RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUsIENGU3RyaW5nUmVmKQotI2RlZmluZSBr
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJp
bWFyaWVzX1AzX0Q2NSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9u
X2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1KCkKKyNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSgpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fRnVsbFJhbmdlVmlkZW8sIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRl
byBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERl
c2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbygpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1Jf
MjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwKCkKKyNkZWZpbmUga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9r
Q01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCgpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUg
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRp
b25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIx
MDBfSExHKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lU
VV9SXzIxMDBfSExHIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX0lUVV9SXzIxMDBfSExHKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFy
LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NN
Rm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9MaW5lYXIoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fTGluZWFyIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX0xpbmVhcigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRf
UFEsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9r
Q01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSBnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRKCkKKyNkZWZpbmUga0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xLCBDRlN0cmluZ1JlZikK
LSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X1NNUFRFX1NUXzQyOF8xKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX1NNUFRFX1NUXzQyOF8xIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lU
VV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbllD
YkNyTWF0cml4X0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNy
TWF0cml4X0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNy
TWF0cml4X0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3Rl
ZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERl
c2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmln
aW5hbEZvcm1hdCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IsIENG
U3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiBnZXRfQ29yZU1lZGlhX2tDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9zUkdCKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NS
R0IgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JH
QigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4
dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNVGV4dE1h
cmt1cEFsaWdubWVudFR5cGVfRW5kIGdldF9Db3JlTWVkaWFfa0NNVGV4dE1hcmt1cEFsaWdubWVu
dFR5cGVfRW5kKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9NaWRkbGUsIENGU3RyaW5nUmVmKQpAQCAtMTUx
LDcgKzE1Nyw3IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01UZXh0VmVydGljYWxMYXlvdXRfUmlnaHRUb0xlZnQsCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENNVGltZSkKICNkZWZp
bmUga0NNVGltZUludmFsaWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lSW52YWxpZCgpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZVplcm8sIENNVGlt
ZSkKLSNkZWZpbmUga0NNVGltZVplcm8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTVRpbWVaZXJvKCkK
KyNkZWZpbmUga0NNVGltZVplcm8gZ2V0X0NvcmVNZWRpYV9rQ01UaW1lWmVybygpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZVBvc2l0aXZlSW5m
aW5pdHksIENNVGltZSkKICNkZWZpbmUga0NNVGltZVBvc2l0aXZlSW5maW5pdHkgZ2V0X0NvcmVN
ZWRpYV9rQ01UaW1lUG9zaXRpdmVJbmZpbml0eSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52YWxpZCwgQ01UaW1lUmFuZ2UpOwpA
QCAtMTY5LDEzICsxNzUsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIsIE8KICNkZWZpbmUgQ01O
b3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciBzb2Z0TGlua19Db3JlTWVkaWFfQ01Ob3RpZmlj
YXRpb25DZW50ZXJBZGRMaXN0ZW5lcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIsIE9TU3RhdHVz
LCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwg
Q01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9u
LCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlm
aWNhdGlvbiwgb2JqZWN0KSkKICNkZWZpbmUgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0
ZW5lciBzb2Z0TGlua19Db3JlTWVkaWFfQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5l
cgotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9j
a0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJN
YWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkICptYWtlRGF0
YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBD
TUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVz
LCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90ICpzYW1wbGVTaXplQXJyYXksIENN
U2FtcGxlQnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJl
YWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERl
c2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1p
bmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCkp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2Nr
QnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1h
a2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRh
UmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENN
SXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50
IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01T
YW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVh
ZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVz
Y3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWlu
Z0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxl
QnVmZmVyQ3JlYXRlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYgKnNidWZD
b3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIENNU2FtcGxlQnVmZmVyUmVmKiBzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNi
dWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5IHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGlt
aW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJS
ZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25z
dCBDTVNhbXBsZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJl
ZiAqc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWlu
Z0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2Ft
cGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50
cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1w
bGVCdWZmZXJSZWYqIHNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1T
YW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpKQogI2Rl
ZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eVdpdGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENW
SW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBm
b3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmcs
IENNU2FtcGxlQnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZv
cm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlX
aXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVklt
YWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9y
bWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBD
TVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3Jt
YXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVC
dWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZm
ZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVm
IGltYWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJl
YWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVm
Y29uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0
IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2Ft
cGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURh
dGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwg
c2FtcGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZUZvckltYWdlQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0
ZUZvckltYWdlQnVmZmVyCkBAIC0xOTMsNyArMTk5LDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0
aW8KICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5LCBDRkFycmF5UmVmLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgQm9vbGVhbiBjcmVhdGVJZk5lY2Vzc2FyeSksIChzYnVmLCBjcmVh
dGVJZk5lY2Vzc2FyeSkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVu
dHNBcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2ht
ZW50c0FycmF5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBs
ZVRpbWluZ0luZm8gKnRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCAqdGltaW5nQXJyYXlFbnRy
aWVzTmVlZGVkT3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQs
IHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5n
QXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0FycmF5T3V0LCBDTUl0ZW1D
b3VudCogdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50
cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCkpCiAjZGVm
aW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5IHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VG90YWxT
YW1wbGVTaXplLCBzaXplX3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2Rl
ZmluZSBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUKQEAgLTIwNSw3ICsyMTEsNyBAQCBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TZXRBdHRhY2htZW50
LCB2b2lkLCAoQ01BdHRhY2htZQogI2RlZmluZSBDTVNldEF0dGFjaG1lbnQgc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2V0QXR0YWNobWVudAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNUmVtb3ZlQXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWVudEJlYXJl
clJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSksICh0YXJnZXQsIGtleSkpCiAjZGVmaW5lIENN
UmVtb3ZlQXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01SZW1vdmVBdHRhY2htZW50Ci1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNy
ZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYgKnRpbWViYXNlT3V0KSwgKGFs
bG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2Nr
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJD
bG9jaywgQ01UaW1lYmFzZVJlZiogdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9j
aywgdGltZWJhc2VPdXQpKQogI2RlZmluZSBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2Nr
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdldFRp
bWUsIENNVGltZSwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpKQogI2RlZmlu
ZSBDTVRpbWViYXNlR2V0VGltZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUdldFRpbWUK
QEAgLTIyNyw3ICsyMzMsNyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUbwogI2RlZmluZSBDTVRp
bWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5IHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lQ29w
eUFzRGljdGlvbmFyeSwgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01UaW1lIHRpbWUsIENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciksICh0aW1lLCBhbGxvY2F0b3IpKQogI2RlZmluZSBDTVRpbWVDb3B5QXNE
aWN0aW9uYXJ5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb3B5QXNEaWN0aW9uYXJ5Ci1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgKm91dERlc2MpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgb3V0RGVzYykp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgb3V0
RGVzYykpCiAjZGVmaW5lIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJ
bWFnZUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMsIENNVmlkZW9EaW1lbnNpb25z
LCAoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRGVzYyksICh2aWRlb0Rlc2MpKQog
I2RlZmluZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zCkBAIC0yNDksMTUg
KzI1NSwxOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50LCBDTUl0ZQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVl
R2V0QnVmZmVyQ291bnQgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRCdWZmZXJD
b3VudAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVm
ZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5lIENNQnVmZmVyUXVldWVHZXRGaXJzdFBy
ZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdldEZp
cnN0UHJlc2VudGF0aW9uVGltZVN0YW1wCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxl
QnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3MgKiwgKCksICgpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFj
a3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiwgKCks
ICgpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVC
dWZmZXJzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5z
b3J0ZWRTYW1wbGVCdWZmZXJzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1l
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5lIENNQnVmZmVyUXVl
dWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVy
UXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIsIE9TU3Rh
dHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFj
ayBjYWxsYmFjaywgdm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNvbmRpdGlvbiBj
b25kaXRpb24sIENNVGltZSB0aW1lLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2Vy
VG9rZW5PdXQpLCAocXVldWUsIGNhbGxiYWNrLCByZWZjb24sIGNvbmRpdGlvbiwgdGltZSwgdHJp
Z2dlclRva2VuT3V0KSkKKyNkZWZpbmUgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdn
ZXJXaXRoSW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
LCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFjaywgdm9pZCogdHJp
Z2dlclJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJpZ2dlckNvbmRpdGlv
biwgQ01JdGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tl
biogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ssIHRyaWdnZXJSZWZj
b24sIHRyaWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdnZXJUb2tlbk91dCkp
CiAjZGVmaW5lIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xk
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXJXaXRoSW50ZWdl
clRocmVzaG9sZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYg
cXVldWUpLCAocXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEKLQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXREdXJhdGlv
biwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCisjZGVmaW5lIENN
QnVmZmVyUXVldWVHZXREdXJhdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdl
dER1cmF0aW9uCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
a0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIENGU3RyaW5nUmVmKQogI2RlZmlu
ZSBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSBnZXRfQ29yZU1lZGlhX2tDTVNh
bXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMsIENG
U3RyaW5nUmVmKQpAQCAtMjk1LDQ0ICszMDQsNDYgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWMK
IAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llLCBjb25zdCB2b2lkKiwgKENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBkZXNjLCBzaXplX3QqIHNpemVPdXQpLCAoZGVzYywgc2l6ZU91dCkp
CiAjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwg
KGRlc2MpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRT
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaywgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1lbW9yeUJsb2NrLCBz
aXplX3QgYmxvY2tMZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2NhdG9yLCBjb25zdCBD
TUJsb2NrQnVmZmVyQ3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291cmNlLCBzaXplX3Qg
b2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZlckZsYWdzIGZsYWdz
LCBDTUJsb2NrQnVmZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1cmVBbGxvY2F0b3Is
IG1lbW9yeUJsb2NrLCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1c3RvbUJsb2NrU291
cmNlLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1ZmZlck91dCkpCiAj
ZGVmaW5lIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVy
TGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIHNpemVfdCAqYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCAq
YnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVm
U3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50
MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiAqYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVm
ZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVm
U3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJP
dXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90KiBidWZmZXJMaXN0U2l6ZU5lZWRl
ZE91dCwgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNp
emUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJi
dWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmKiBibG9j
a0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91
dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0
b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0QXVk
aW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckdldE51bVNhbXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChz
YnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0
RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtICosIChDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0
RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwgKENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0CiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDb3B5U2Ft
cGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdlIHNhbXBsZVJhbmdlLCBDTVNhbXBsZUJ1ZmZl
clJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNidWYsIHNhbXBsZVJhbmdlLCBzQnVmT3V0KSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Ugc29mdExpbmtf
Q29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVt
Q291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQsIENNSXRlbUNvdW50
KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJheUVudHJpZXMsIHNp
emVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCkpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVNpemVBcnJheQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlv
bnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVm
IGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVh
ZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQgKm1ha2VEYXRhUmVhZHlSZWZj
b24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50
IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2Ny
aXB0aW9uICpwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmT3V0KSwg
KGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ss
IG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVm
UFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFj
a2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01C
bG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZm
ZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtl
RGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywgY29uc3QgQXVkaW9TdHJl
YW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJl
Ziogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVt
U2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVmT3V0KSkKICNkZWZpbmUg
Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgc29mdExpbmtf
Q29yZU1lZGlhX0NNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25z
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFs
bG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJi
dWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgcHJlc2Vu
dGF0aW9uVGltZVN0YW1wLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBwYWNr
ZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxs
b2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgcHJlc2Vu
dGF0aW9uVGltZVN0YW1wLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNhbXBsZUJ1ZmZlck91dCkpCisj
ZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlv
bnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQ
YWNrZXREZXNjcmlwdGlvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0LCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90
IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3QpLCAoc2J1ZiwgYmJ1ZlN0
cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJ1ZmZlckxpc3QpKQog
I2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0IHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZm
ZXJMaXN0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHkgc29mdExpbmtf
Q29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5CitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50
YXRpb25UaW1lU3RhbXAsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01UaW1l
IG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzYnVmLCBvdXRwdXRQcmVzZW50YXRpb25U
aW1lU3RhbXApKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRp
bWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50
YXRpb25UaW1lU3RhbXAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGFzYmQs
IHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRpb0NoYW5uZWxMYXlvdXQqIGxheW91dCwgc2l6
ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9pZCogbWFnaWNDb29raWUsIENGRGljdGlvbmFy
eVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAo
YWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBsYXlvdXQsIG1hZ2ljQ29va2llU2l6ZSwgbWFn
aWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2MpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25DcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
Q2xvY2tHZXRIb3N0VGltZUNsb2NrLCBDTUNsb2NrUmVmLCAodm9pZCksICgpKQotI2RlZmluZSBD
TUNsb2NrR2V0SG9zdFRpbWVDbG9jayAgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRIb3N0
VGltZUNsb2NrCisjZGVmaW5lIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRUaW1lLCBDTVRpbWUsIChDTUNsb2NrUmVmIGNs
b2NrKSwgKGNsb2NrKSkKLSNkZWZpbmUgQ01DbG9ja0dldFRpbWUgIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUNsb2NrR2V0VGltZQorI2RlZmluZSBDTUNsb2NrR2V0VGltZSBzb2Z0TGlua19Db3JlTWVk
aWFfQ01DbG9ja0dldFRpbWUKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCogQ01TQU1QTEVCVUZGRVJDQUxMX05PRVND
QVBFIGNhbGxiYWNrKShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50
IGluZGV4LCB2b2lkICpyZWZjb24pLCB2b2lkICpyZWZjb24pLCAoc2J1ZiwgY2FsbGJhY2ssIHJl
ZmNvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBPU1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjayko
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCog
cmVmY29uKSwgdm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pKQogI2RlZmlu
ZSBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlLCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICheIENNU0FNUExFQlVG
RkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQp
KSwgKHNidWYsIGhhbmRsZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNNU0FNUExFQlVGRkVSQ0FMTF9O
T0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQpKSwgKHNidWYs
IGhhbmRsZXIpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZQog
CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Ns
b2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1Jl
ZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3JlYXRlLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2Nh
dG9yLCBjbG9ja091dCkpCiAjZGVmaW5lIENNQXVkaW9DbG9ja0NyZWF0ZSBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01BdWRpb0Nsb2NrQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRp
bWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUgQ01UaW1lTWF4aW11bSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01UaW1lTWF4aW11bQpAQCAtMzQ0LDE4ICszNTUsMTYgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFpbnNU
aW1lLCBCb29sZWFuLAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVJbmRlZmluaXRl
IGdldF9Db3JlTWVkaWFfa0NNVGltZUluZGVmaW5pdGUoKQogCi0jZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLQogI2lmIFBMQVRGT1JNKE1BQykKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01D
bG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSkKLSNk
ZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlICBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRp
b0RldmljZUNsb2NrQ3JlYXRlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ0ZTdHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmKiBjbG9ja091
dCksIChhbGxvY2F0b3IsIGRldmljZVVJRCwgY2xvY2tPdXQpKQorI2RlZmluZSBDTUF1ZGlvRGV2
aWNlQ2xvY2tDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VDbG9ja0NyZWF0
ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmFzZU9i
amVjdEdldERlcml2ZWRTdG9yYWdlLCB2b2lkKiwgKENNQmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0
KSwgKGJhc2VPYmplY3QpKQotI2RlZmluZSBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSBQ
QUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZQorI2Rl
ZmluZSBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01C
YXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXRWVGFibGUsIGNvbnN0IENNQmFzZVZUYWJs
ZSosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkKLSNkZWZpbmUg
Q01CYXNlT2JqZWN0R2V0VlRhYmxlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVj
dEdldFZUYWJsZQorI2RlZmluZSBDTUJhc2VPYmplY3RHZXRWVGFibGUgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQmFzZU9iamVjdEdldFZUYWJsZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNRGVyaXZlZE9iamVjdENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogdlRhYmxlLCBDTUJhc2VDbGFz
c0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiogYmFzZU9iamVjdCksIChhbGxvY2F0b3IsIHZU
YWJsZSwgY2xhc3NJRCwgYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNRGVyaXZlZE9iamVjdENyZWF0
ZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTURlcml2ZWRPYmplY3RDcmVhdGUKKyNkZWZpbmUg
Q01EZXJpdmVkT2JqZWN0Q3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTURlcml2ZWRPYmplY3RD
cmVhdGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCBmNTFjYmJiMTY2NjNi
ODFlY2UyMDFlOGFkNTcyNWMyNTEyMWY1NmZiLi43MmY0MTE0ZWVhYWRmNjIwY2UzNzAyMzA5OTQ3
NjZiNDhjNzk1YjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVv
VG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVv
VG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMzQsMTMgKzM0LDE5IEBAIFNPRlRfTElOS19GUkFNRVdP
UktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJveCwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBDRlN0cmluZ1JlZikKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lv
blByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgQ0ZTdHJpbmdSZWYpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9BdmVyYWdlQml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxl
TGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUws
IFZpZGVvVG9vbGJveCwga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2Fy
ZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNl
bGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVs
LCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYp
CiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENv
bXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNUeXBlIGNvZGVj
VHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRpY3Rpb25hcnlS
ZWYgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBjb21wcmVzc2Vk
RGF0YUFsbG9jYXRvciwgVlRDb21wcmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1dENhbGxiYWNr
LCB2b2lkKiBvdXRwdXRDYWxsYmFja1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Npb25SZWYqIGNv
bXByZXNzaW9uU2Vzc2lvbk91dCksIChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQsIGNvZGVjVHlw
ZSwgZW5jb2RlclNwZWNpZmljYXRpb24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgY29t
cHJlc3NlZERhdGFBbGxvY2F0b3IsIG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxsYmFja1JlZkNv
biwgY29tcHJlc3Npb25TZXNzaW9uT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRlRnJhbWVzLCBP
U1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENNVGltZSBjb21wbGV0
ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNlc3Npb24sIGNvbXBsZXRlVW50aWxQcmVz
ZW50YXRpb25UaW1lU3RhbXApKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBW
aWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUsIE9TU3RhdHVzLCAo
VlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1
ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIGR1cmF0aW9uLCBDRkRp
Y3Rpb25hcnlSZWYgZnJhbWVQcm9wZXJ0aWVzLCB2b2lkKiBzb3VyY2VGcmFtZVJlZmNvbiwgVlRF
bmNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9uLCBpbWFnZUJ1ZmZlciwgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwgZnJhbWVQcm9wZXJ0aWVzLCBzb3VyY2VGcmFt
ZVJlZmNvbiwgaW5mb0ZsYWdzT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1l
cywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24p
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29t
cHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSwgdm9pZCwgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVm
IHNlc3Npb24pLCAoc2Vzc2lvbikpCiAKIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVmlkZW9Ub29sYm94LCBWVFJlc3RyaWN0VmlkZW9EZWNv
ZGVycywgT1NTdGF0dXMsIChWVFZpZGVvRGVjb2RlclJlc3RyaWN0aW9ucyByZXN0cmljdGlvbkZs
YWdzLCBjb25zdCBDTVZpZGVvQ29kZWNUeXBlKiBhbGxvd2VkQ29kZWNUeXBlTGlzdCwgQ01JdGVt
Q291bnQgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgKHJlc3RyaWN0aW9uRmxhZ3MsIGFsbG93ZWRD
b2RlY1R5cGVMaXN0LCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCBQQUxfRVhQT1JUKQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKaW5kZXgg
ZWMwZmYwMWNjMWZlMWEyMTA2Y2M3YTdmMDJlOGM4NGI3ZGQwZGE4NC4uNjBhOGZmMzc0MmQ0OTYx
MDdiMTRmYWM3YzQxMzczYWJjNmQ2OTRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaApAQCAtMzcsOSArMzcsMjAgQEAgU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfTWF4S2UKICNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlG
cmFtZUludGVydmFsRHVyYXRpb24gZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbigpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9S
ZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlf
UmVhbFRpbWUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxU
aW1lKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBDRlN0cmluZ1JlZikKKyNk
ZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSBnZXRfVmlkZW9U
b29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUoKQorU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9u
UHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCgpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0Vu
YWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIsIENGU3RyaW5nUmVmKQogI2RlZmlu
ZSBrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRW
aWRlb0VuY29kZXIgZ2V0X1ZpZGVvVG9vbGJveF9rVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9u
X0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIoKQorU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jh
c2VsaW5lX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVFByb2ZpbGVMZXZlbF9I
MjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9I
MjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwsIENG
U3RyaW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCBn
ZXRfVmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVsKCkKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxl
TGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVFByb2Zp
bGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZUUHJvZmlsZUxl
dmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwoKQorCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSwgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVp
Z2h0LCBDTVZpZGVvQ29kZWNUeXBlIGNvZGVjVHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIGVuY29kZXJT
cGVjaWZpY2F0aW9uLCBDRkRpY3Rpb25hcnlSZWYgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVz
LCBDRkFsbG9jYXRvclJlZiBjb21wcmVzc2VkRGF0YUFsbG9jYXRvciwgVlRDb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrIG91dHB1dENhbGxiYWNrLCB2b2lkKiBvdXRwdXRDYWxsYmFja1JlZkNvbiwg
VlRDb21wcmVzc2lvblNlc3Npb25SZWYqIGNvbXByZXNzaW9uU2Vzc2lvbk91dCksIChhbGxvY2F0
b3IsIHdpZHRoLCBoZWlnaHQsIGNvZGVjVHlwZSwgZW5jb2RlclNwZWNpZmljYXRpb24sIHNvdXJj
ZUltYWdlQnVmZmVyQXR0cmlidXRlcywgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIG91dHB1dENh
bGxiYWNrLCBvdXRwdXRDYWxsYmFja1JlZkNvbiwgY29tcHJlc3Npb25TZXNzaW9uT3V0KSkKICNk
ZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZU
Q29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlCkBAIC00OSw2ICs2MCw4IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkVu
Y29kZUZyYW1lCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUgc29mdExp
bmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vz
c2lvblByZXBhcmVUb0VuY29kZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lv
blJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogI2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvblBy
ZXBhcmVUb0VuY29kZUZyYW1lcyBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lvblNl
c3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUsIHZvaWQs
IChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQorI2RlZmluZSBW
VENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29t
cHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxf
Rk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRSZXN0cmljdFZpZGVvRGVjb2RlcnMsIE9T
U3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25GbGFncywgY29u
c3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dlZENvZGVjVHlwZUxpc3QsIENNSXRlbUNvdW50IGFs
bG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0cmljdGlvbkZsYWdzLCBhbGxvd2VkQ29kZWNUeXBl
TGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50KSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCA2NzRlNjQ5NGEw
YThiNTk2OTAzZTNjYTVjZmI2YTIzZGRhYzM2MzhjLi5kNDQ0OTMxZWZkOGFlNTU2MGI4YzFiMjdm
MjJhZDkyZTc5MzQ4NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtNDEsNiArNDEsMTAgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xi
b3gsIE1UX0dldFNob3UKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnROb3RpZmljYXRpb25fU2hv
dWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiAKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKSwg
KHRhcCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlhVG9vbGJveCwg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJM
aXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0
LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0
KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFu
Z2VPdXQsIG51bWJlckZyYW1lc091dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyogY2FsbGJhY2tzLCBNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmKiB0YXBPdXQpLCAo
YWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpLCBQQUxfRVhQT1JUKQorCiAjaWYg
SEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFBsdWdpbkZvcm1hdFJlYWRl
clByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaAppbmRleCBj
N2RlMDJjZTYzYzJjMzAwZDk2NTRmNjY3MGJmYzEyNTAyMjkzNDRlLi4yNTVhNzY3YjU1ZWVmNGU4
ZWVkMTlkZWYyOTcxNzg0OTBiZTkzZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCkBAIC00MSw2ICs0MSwxMyBAQCBTT0ZU
X0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRf
R2V0U2hvdWxkUGxheUhEUlZpZAogCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hF
QURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UU3VwcG9ydE5vdGlmaWNhdGlvbl9TaG91bGRQbGF5
SERSVmlkZW9DaGFuZ2VkLCBDRlN0cmluZ1JlZikKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSwg
dm9pZCosIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKKyNkZWZpbmUgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlIHNvZnRMaW5rX01lZGlhVG9vbGJveF9NVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvLCBPU1N0
YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVtYmVyRnJh
bWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENNSXRlbUNvdW50
ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwg
ZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKKyNkZWZpbmUgTVRBdWRp
b1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyBzb2Z0TGlua19NZWRpYVRvb2xib3hfTVRBdWRp
b1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbworU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlM
X0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRl
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nl
c3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlv
bkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwgKGFsbG9jYXRv
ciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNkZWZpbmUgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGUgc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRl
CisKICNpZiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQogCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UUGx1Z2luRm9ybWF0UmVhZGVyUHJv
cGVydHlfRHVyYXRpb24sIENGU3RyaW5nUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NTUyNGVlYzU1ODdkMWU5MTcwZWY5ZjE0OTJjYzA3ZGUyNWM4MGVjNy4uYzU2MmJlNzYzNWVhNmEx
NTg0MDgzM2FiYzJlMTkxMDEwY2MzMTc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0z
NTAsNyArMzUwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKERvY3VtZW50KTsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLXVzaW5nIG5h
bWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwogCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgY01heFdyaXRlUmVjdXJzaW9uRGVwdGggPSAyMTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggOWY1NTYwODAyYmFjMzJiYjQ5OWVjOTdj
OWIwYWUzMmUxMWM2MjFjNy4uODUwY2RlNzI3MGYwZDYxZGMyNTQ0OWMxZGE4OWE0OWExYWY0MzY4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTEwOSw3
ICsxMDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChIVE1MQ2FudmFzRWxlbWVudCk7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBUaGVzZSB2YWx1ZXMgY29tZSBmcm9tIHRoZSBXaGF0
V0cvVzNDIEhUTUwgc3BlYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IGUwNTE2YTRhZjI1ZDJiNWE0ZDQ5NGNlNDM1MDk2ODQxNDFiNjdkOWUuLjZhYzJkZmI5
ZGQ2NGYwZjNmYzBkMGVmNWZjNTExNTkxZDI1ZjBiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTkwLDggKzE5MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxNZWRpYUVsZW1lbnQpOwogCi11
c2luZyBuYW1lc3BhY2UgUEFMOwotCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBTZWVrUmVwZWF0RGVs
YXkgeyAxMDBfbXMgfTsKIHN0YXRpYyBjb25zdCBkb3VibGUgU2Vla1RpbWUgPSAwLjI7CiBzdGF0
aWMgY29uc3QgU2Vjb25kcyBTY2FuUmVwZWF0RGVsYXkgeyAxLjVfcyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVy
Q29jb2EuY3BwCmluZGV4IGZkM2QzZTAzYTAzZjA4MTA1MjEyODZiZDAyNmE5MTAxMTFkM2NjODQu
LjVkNTZiOWVlMWEwZDNkNjdhNzljMzA3NjFkMTM4MTVkN2MwNjQ0Y2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFk
ZXJDb2NvYS5jcHAKQEAgLTM2LDI1ICszNiwxMyBAQAogI2luY2x1ZGUgIkF1ZGlvRmlsZVJlYWRl
ci5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDxD
b3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rv
b2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgogI2lu
Y2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQot
U09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94
LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkF1ZGlvRmlsZSksIChp
bkF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVPcGVuV2l0aENh
bGxiYWNrcywgT1NTdGF0dXMsICh2b2lkICppbkNsaWVudERhdGEsIEF1ZGlvRmlsZV9SZWFkUHJv
YyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBBdWRpb0ZpbGVf
R2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9jIGluU2V0U2l6
ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxlSUQgKm91dEF1
ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5jLCBpbkdldFNp
emVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9GaWxlKSkKLVNP
RlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0
QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkKLVNPRlRfTElO
SyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1
ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3Bl
cnR5SUQsIFVJbnQzMiAqaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9wZXJ0eURhdGEp
LCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQ
cm9wZXJ0eURhdGEpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlUmVhZCwg
T1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQzMiAqaW9OdW1i
ZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpb051
bWJlckZyYW1lcywgaW9EYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmls
ZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwg
RXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0
YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblBy
b3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQotU09GVF9MSU5L
KEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywgKEF1
ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxlUmVm
ICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVkaW9G
aWxlKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5VUkwsIE9TU3Rh
dHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwg
KGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBBdWRpb0J1ZmZlckxpc3QqIHRyeUNyZWF0ZUF1
ZGlvQnVmZmVyTGlzdChzaXplX3QgbnVtYmVyT2ZCdWZmZXJzKQpAQCAtMTAzLDIyICs5MSwyMiBA
QCBBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcihjb25zdCB2b2lkKiBkYXRhLCBzaXpl
X3QgZGF0YVNpemUpCiAgICAgOiBtX2RhdGEoZGF0YSkKICAgICAsIG1fZGF0YVNpemUoZGF0YVNp
emUpCiB7Ci0gICAgaWYgKEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMsIHJlYWRQcm9j
LCAwLCBnZXRTaXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJyKQorICAgIGlm
IChQQUw6OkF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMsIHJlYWRQcm9jLCAwLCBnZXRT
aXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEKG1fYXVkaW9GaWxlSUQsIGZh
bHNlLCAmbV9leHRBdWRpb0ZpbGVSZWYpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlv
RmlsZVdyYXBBdWRpb0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0QXVkaW9GaWxl
UmVmKSAhPSBub0VycikKICAgICAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwogfQogCiBBdWRp
b0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIoKQogewogICAgIGlmIChtX2V4dEF1ZGlvRmls
ZVJlZikKLSAgICAgICAgRXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmlsZVJlZik7Cisg
ICAgICAgIFBBTDo6RXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmlsZVJlZik7CiAKICAg
ICBtX2V4dEF1ZGlvRmlsZVJlZiA9IDA7CiAKICAgICBpZiAobV9hdWRpb0ZpbGVJRCkKLSAgICAg
ICAgQXVkaW9GaWxlQ2xvc2UobV9hdWRpb0ZpbGVJRCk7CisgICAgICAgIFBBTDo6QXVkaW9GaWxl
Q2xvc2UobV9hdWRpb0ZpbGVJRCk7CiAKICAgICBtX2F1ZGlvRmlsZUlEID0gMDsKIH0KQEAgLTE1
NSw3ICsxNDMsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVz
KGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogCiAgICAgLy8gR2V0IGZpbGUncyBk
YXRhIGZvcm1hdAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZmlsZURhdGFGb3JtYXQpOwot
ICAgIGlmIChFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1
ZGlvRmlsZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQp
ICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVk
aW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3JtYXQsICZzaXplLCAm
bV9maWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMgPSBtX2ZpbGVEYXRhRm9ybWF0Lm1DaGFubmVsc1Bl
ckZyYW1lOwpAQCAtMTYzLDcgKzE1MSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVh
ZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAgICAgLy8g
TnVtYmVyIG9mIGZyYW1lcwogICAgIFNJbnQ2NCBudW1iZXJPZkZyYW1lczY0ID0gMDsKICAgICBz
aXplID0gc2l6ZW9mKG51bWJlck9mRnJhbWVzNjQpOwotICAgIGlmIChFeHRBdWRpb0ZpbGVHZXRQ
cm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVMZW5n
dGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIgfHwgbnVtYmVyT2ZG
cmFtZXM2NCA8PSAwKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0
QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZUxlbmd0aEZyYW1lcywgJnNp
emUsICZudW1iZXJPZkZyYW1lczY0KSAhPSBub0VyciB8fCBudW1iZXJPZkZyYW1lczY0IDw9IDAp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgZG91YmxlIGZpbGVTYW1wbGVSYXRlID0g
bV9maWxlRGF0YUZvcm1hdC5tU2FtcGxlUmF0ZTsKQEAgLTE4NSw3ICsxNzMsNyBAQCBSZWZQdHI8
QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJv
b2wgbWl4VG9Nb25vKQogICAgIGlmIChzYW1wbGVSYXRlKQogICAgICAgICBtX2NsaWVudERhdGFG
b3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOwogCi0gICAgaWYgKEV4dEF1ZGlvRmlsZVNl
dFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfQ2xpZW50
RGF0YUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZtX2NsaWVu
dERhdGFGb3JtYXQpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZVNldFByb3Bl
cnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfQ2xpZW50RGF0YUZv
cm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZtX2NsaWVudERhdGFG
b3JtYXQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENoYW5n
ZSBudW1iZXJPZkZyYW1lczY0IHRvIGRlc3RpbmF0aW9uIHNhbXBsZS1yYXRlCkBAIC0yNDMsNyAr
MjMxLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9h
dCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKIAogICAgIC8vIFJlYWQgZnJvbSB0aGUgZmls
ZSAob3IgaW4tbWVtb3J5IHZlcnNpb24pCiAgICAgVUludDMyIGZyYW1lc1RvUmVhZCA9IG51bWJl
ck9mRnJhbWVzOwotICAgIGlmIChFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAm
ZnJhbWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgeworICAgIGlmIChQQUw6OkV4dEF1
ZGlvRmlsZVJlYWQobV9leHRBdWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1ZmZlckxpc3Qp
ICE9IG5vRXJyKSB7CiAgICAgICAgIGRlc3Ryb3lBdWRpb0J1ZmZlckxpc3QoYnVmZmVyTGlzdCk7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oCmluZGV4
IGI3YjkxNjNiNTZlMjZjMjljYWI4NGVlMjQ3NjllMjk3MTQxN2FmZmMuLjBiYmJiYTI3ODU3ZDk3
OWVjYzY4OGY4N2YwMzM5ZjY2NWVmNDI1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaApAQCAtMzEs
MTAgKzMxLDEyIEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCi0jaW5jbHVkZSA8QXVkaW9U
b29sYm94L0F1ZGlvRmlsZS5oPgotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9FeHRlbmRlZEF1ZGlv
RmlsZS5oPgorI2luY2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAordXNpbmcgRXh0QXVkaW9GaWxlUmVmID0gc3RydWN0IE9wYXF1ZUV4
dEF1ZGlvRmlsZSo7Cit1c2luZyBBdWRpb0ZpbGVJRCA9IHN0cnVjdCBPcGFxdWVBdWRpb0ZpbGVJ
RCo7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9CdXM7CkBAIC01OCw3ICs2
MCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qgdm9pZCogbV9kYXRhID0geyBudWxscHRyIH07CiAg
ICAgc2l6ZV90IG1fZGF0YVNpemUgPSB7IDAgfTsKIAotICAgIEF1ZGlvRmlsZUlEIG1fYXVkaW9G
aWxlSUQgPSB7IDAgfTsKKyAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0geyBudWxscHRy
IH07CiAgICAgRXh0QXVkaW9GaWxlUmVmIG1fZXh0QXVkaW9GaWxlUmVmID0geyBudWxscHRyIH07
CiAKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbV9maWxlRGF0YUZvcm1hdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0
VW5pdEFkYXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9PdXRwdXRVbml0QWRhcHRvci5jcHAKaW5kZXggNDc4NzUwNzJhNzg2ZWQ2ODZjMWQ0MDFlODJl
NjI1OWNhMjNjNTRiNi4uMTQ4YjA1NWRiZWM4OTQzZWE1YWFjNjhlNjg1OGRlN2QwYjgyMzEyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRw
dXRVbml0QWRhcHRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVO
QUJMRShXRUJfQVVESU8pCiAKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsu
aD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpBdWRp
b091dHB1dFVuaXRBZGFwdG9yKEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJlcikKQEAgLTM5LDEy
ICs0MSwxMiBAQCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpBdWRpb091dHB1dFVuaXRBZGFwdG9y
KEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJlcikKIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6On5B
dWRpb091dHB1dFVuaXRBZGFwdG9yKCkKIHsKICAgICBpZiAobV9vdXRwdXRVbml0KQotICAgICAg
ICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX291dHB1dFVuaXQpOworICAgICAgICBQ
QUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fb3V0cHV0VW5pdCk7CiB9CiAKIE9T
U3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIHsKLSAgICBhdXRvIHJlc3Vs
dCA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CisgICAgYXV0byByZXN1bHQg
PSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAgICAgaWYgKHJlc3Vs
dCAhPSBub0VycikKICAgICAgICAgV1RGTG9nQWx3YXlzKCJFUlJPUjogQXVkaW9PdXRwdXRVbml0
U3RhcnQoKSBjYWxsIGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVsZCIsIHN0YXRpY19jYXN0PGxv
bmc+KHJlc3VsdCkpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC01Miw3ICs1NCw3IEBAIE9TU3Rh
dHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIAogT1NTdGF0dXMgQXVkaW9PdXRw
dXRVbml0QWRhcHRvcjo6c3RvcCgpCiB7Ci0gICAgcmV0dXJuIEF1ZGlvT3V0cHV0VW5pdFN0b3Ao
bV9vdXRwdXRVbml0KTsKKyAgICByZXR1cm4gUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0
cHV0VW5pdCk7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0IGNhbGxiYWNrCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVC
dWZmZXJMaXN0LmNwcAppbmRleCBmZGY2Nzc1N2QxYjQ3NzYwODA4YjEzZmI0MzRlNDBiM2RmZDMw
ZTA0Li40ZTkwNjRkMGM2ZTkzMDg5YWUwZWFhNmY5OThlY2Q2NTM3MzVkMWU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyTGlzdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJWZWN0b3JNYXRo
LmgiCiAjaW5jbHVkZSA8QWNjZWxlcmF0ZS9BY2NlbGVyYXRlLmg+CiAjaW5jbHVkZSA8QXVkaW9U
b29sYm94L0F1ZGlvQ29udmVydGVyLmg+CisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNv
ZnRMaW5rLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTI3Miw3ICsyNzMsNyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6
OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogCiAgICAg
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGlucHV0Rm9ybWF0OwogICAgIFVJbnQzMiBwcm9w
ZXJ0eURhdGFTaXplID0gc2l6ZW9mKGlucHV0Rm9ybWF0KTsKLSAgICBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVz
Y3JpcHRpb24sICZwcm9wZXJ0eURhdGFTaXplLCAmaW5wdXRGb3JtYXQpOworICAgIFBBTDo6QXVk
aW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJ
bnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlucHV0Rm9ybWF0KTsK
ICAgICBBU1NFUlQoZnJhbWVDb3VudCA8PSBzb3VyY2UubUJ1ZmZlcnNbMF0ubURhdGFCeXRlU2l6
ZSAvIGlucHV0Rm9ybWF0Lm1CeXRlc1BlclBhY2tldCk7CiAKICAgICBBdWRpb0NvbnZlcnRlckZy
b21BQkxDb250ZXh0IGNvbnRleHQgeyBzb3VyY2UsIGZyYW1lQ291bnQsIGlucHV0Rm9ybWF0Lm1C
eXRlc1BlclBhY2tldCB9OwpAQCAtMjgwLDcgKzI4MSw3IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxl
QnVmZmVyTGlzdDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBzb3VyY2UsIHNpemVf
dCBmCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBv
dXRwdXRGb3JtYXQ7CiAgICAgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihvdXRwdXRGb3JtYXQp
OwotICAgIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0
ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0eURhdGFTaXplLCAmb3V0
cHV0Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVy
LCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0
eURhdGFTaXplLCAmb3V0cHV0Rm9ybWF0KTsKIAogICAgIEFTU0VSVChDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24ob3V0cHV0Rm9ybWF0KS5udW1iZXJPZkNoYW5uZWxTdHJlYW1zKCkgPT0gbV9idWZm
ZXJMaXN0LT5idWZmZXJDb3VudCgpKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgbV9i
dWZmZXJMaXN0LT5idWZmZXJDb3VudCgpOyArK2kpIHsKQEAgLTI5MCw3ICsyOTEsNyBAQCBPU1N0
YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVmZmVyTGlz
dCYgc291cmNlLCBzaXplX3QgZgogI2VuZGlmCiAKICAgICBVSW50MzIgc2FtcGxlc0NvbnZlcnRl
ZCA9IG1fc2FtcGxlQ2FwYWNpdHk7Ci0gICAgT1NTdGF0dXMgZXJyID0gQXVkaW9Db252ZXJ0ZXJG
aWxsQ29tcGxleEJ1ZmZlcihjb252ZXJ0ZXIsIGF1ZGlvQ29udmVydGVyRnJvbUFCTENhbGxiYWNr
LCAmY29udGV4dCwgJnNhbXBsZXNDb252ZXJ0ZWQsIG1fYnVmZmVyTGlzdC0+bGlzdCgpLCBudWxs
cHRyKTsKKyAgICBPU1N0YXR1cyBlcnIgPSBQQUw6OkF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhC
dWZmZXIoY29udmVydGVyLCBhdWRpb0NvbnZlcnRlckZyb21BQkxDYWxsYmFjaywgJmNvbnRleHQs
ICZzYW1wbGVzQ29udmVydGVkLCBtX2J1ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0cik7CiAgICAg
aWYgKCFlcnIgfHwgZXJyID09IGtSYW5PdXRPZklucHV0RGF0YVN0YXR1cykgewogICAgICAgICBt
X3NhbXBsZUNvdW50ID0gc2FtcGxlc0NvbnZlcnRlZDsKICAgICAgICAgcmV0dXJuIDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURh
dGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1Nh
bXBsZURhdGFTb3VyY2UubW0KaW5kZXggZTVlYzQ3Nzc4NTgxYTdhY2YwZTcyNTUzMzNmOWUyNjk0
MWM0NzJkMS4uZDJiNWFjNDVmMzBmZDRhM2FmNTFiNDIwZGUzNzY0OWIxMTUxYzIyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRh
U291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
U2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNl
PiBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShzaXplX3QgbWF4aW11bVNhbXBsZUNvdW50
LCBMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlciwgc2l6ZV90IHdhaXRUb1N0YXJ0Rm9yUHVzaENv
dW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2Vi
QXVkaW9CdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKaW5kZXggODllY2VlZDYxY2IxOWJmZDdkNDIwYzc3OGFh
YTEyMGFjMzU2ZGJmZC4uMzBkZWIyZTRjNzQxZGY1NDg4YjM4ZjVlZDU5ZWViZTVhMDI4OWJlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9C
dWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9X
ZWJBdWRpb0J1ZmZlckxpc3QuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSA8cGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQogICAgIDogbV9ieXRlc1BlckZyYW1l
KGZvcm1hdC5ieXRlc1BlckZyYW1lKCkpCkBAIC0xMTYsNyArMTE1LDcgQEAgV2ViQXVkaW9CdWZm
ZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBmb3JtYXQsIEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ01CbG9ja0J1ZmZlclJlZiBidWZm
ZXIgPSBudWxscHRyOwotICAgIGlmIChub0VyciA9PSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVm
ZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwgbnVsbHB0ciwgbV9j
YW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JTeXN0ZW1E
ZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJGbGFnX0F1
ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpKQorICAgIGlmIChu
b0VyciA9PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVk
QmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVyLCBudWxscHRyLCBtX2Nhbm9uaWNhbExpc3QuZ2V0KCks
IG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDRkFsbG9jYXRv
clN5c3RlbURlZmF1bHQsIGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9CdWZmZXJMaXN0X0Fzc3Vy
ZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZlcikpCiAgICAgICAgIG1fYmxvY2tCdWZmZXIgPSBhZG9w
dENGKGJ1ZmZlcik7CiAKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3Bw
CmluZGV4IDJlOTYzMGZiNjBmMjJiM2VlNTZkMjQyZDczMDQzNDg2Yjg3YjU2MmYuLmY4OTEwN2Zm
YjFjM2Y1M2JlMzE5YWEzODY4MTQ3NzRiYjRkMjdhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRv
cklPUy5jcHAKQEAgLTMzLDE1ICszMyw3IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKIAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgotI2luY2x1ZGUg
PHd0Zi9Tb2Z0TGlua2luZy5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkK
LVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50RmluZE5leHQsIEF1ZGlvQ29t
cG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50
RGVzY3JpcHRpb24gKmluRGVzYyksIChpbkNvbXBvbmVudCwgaW5EZXNjKSkKLVNPRlRfTElOSyhB
dWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVzLCAoQXVkaW9D
b21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgKm91dEluc3RhbmNl
KSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBB
dWRpb1VuaXRBZGRQcm9wZXJ0eUxpc3RlbmVyLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQs
IEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0UHJvcGVydHlMaXN0ZW5lclByb2Mg
aW5Qcm9jLCB2b2lkICppblByb2NVc2VyRGF0YSksIChpblVuaXQsIGluSUQsIGluUHJvYywgaW5Q
cm9jVXNlckRhdGEpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0R2V0UHJvcGVy
dHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklE
LCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgdm9p
ZCAqb3V0RGF0YSwgVUludDMyICppb0RhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwg
aW5FbGVtZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gs
IEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVu
aXQpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3Rh
dHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1Vu
aXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCAq
aW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxl
bWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OCwxNSArNTAsMTUgQEAg
dm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1w
bGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1hbnVmYWN0dXJlciA9
IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21wb25lbnRGbGFncyA9
IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNvbXAgPSBBdWRpb0Nv
bXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKKyAgICBjb21wID0gUEFMOjpBdWRpb0NvbXBvbmVu
dEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAotICAgIE9TU3RhdHVz
IHJlc3VsdCA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7
CisgICAgT1NTdGF0dXMgcmVzdWx0ID0gUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGNv
bXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIFVJbnQzMiBm
bGFnID0gMTsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQs
CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsCiAg
ICAgICAgIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywKICAgICAgICAga0F1ZGlv
VW5pdFNjb3BlX091dHB1dCwKICAgICAgICAgMCwKQEAgLTc0LDIwICs2NiwyMCBAQCB2b2lkIEF1
ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUs
IHVuc2lnbmVkIG51bWJlcgogICAgICAgICBzaXplb2YoZmxhZykpOwogICAgIEFTU0VSVCghcmVz
dWx0KTsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsK
KyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKICAg
ICBBU1NFUlQoIXJlc3VsdCk7CiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawogICAgIEFVUmVu
ZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0gaW5wdXRQcm9j
OwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0ID0gQXVkaW9V
bml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVy
Q2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQp
KTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwg
a0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5w
dXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAg
ICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24g
c3RyZWFtRm9ybWF0OwogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2YoQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKTsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX291dHB1
dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9P
dXRwdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCAmc2l6ZSk7CisgICAgcmVzdWx0ID0gUEFM
OjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9T
dHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICh2b2lkKikmc3RyZWFtRm9y
bWF0LCAmc2l6ZSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgY29uc3RleHByIGludCBi
eXRlc1BlckZsb2F0ID0gc2l6ZW9mKEZsb2F0MzIpOwpAQCAtMTAxLDcgKzkzLDcgQEAgdm9pZCBB
dWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRl
LCB1bnNpZ25lZCBudW1iZXIKICAgICBzdHJlYW1Gb3JtYXQubUNoYW5uZWxzUGVyRnJhbWUgPSBu
dW1iZXJPZk91dHB1dENoYW5uZWxzOwogICAgIHN0cmVhbUZvcm1hdC5tQml0c1BlckNoYW5uZWwg
PSBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQ7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQs
IGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5p
dFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1h
dCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9m
KEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAog
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUo
a1ByZWZlcnJlZEJ1ZmZlclNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwCmluZGV4
IGM4ZWQzZWY3OGM4YzZhM2IxZTA3MGNiNDQwNTk2OWFkYTRhYzNkYTIuLjcxNGNjZTg4NjI1NzUx
ODYxZDVlMmI4NTEzMTNhODlkMDQxMmVhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1hYy5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSA8
Q29yZUF1ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCwyMSArNDksMjEgQEAg
dm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1w
bGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1hbnVmYWN0dXJlciA9
IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21wb25lbnRGbGFncyA9
IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNvbXAgPSBBdWRpb0Nv
bXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKKyAgICBjb21wID0gUEFMOjpBdWRpb0NvbXBvbmVu
dEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAotICAgIE9TU3RhdHVz
IHJlc3VsdCA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7
CisgICAgT1NTdGF0dXMgcmVzdWx0ID0gUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGNv
bXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAotICAgIHJlc3VsdCA9
IEF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKKyAgICByZXN1bHQgPSBQQUw6OkF1
ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAK
ICAgICAvLyBTZXQgcmVuZGVyIGNhbGxiYWNrCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBp
bnB1dDsKICAgICBpbnB1dC5pbnB1dFByb2MgPSBpbnB1dFByb2M7CiAgICAgaW5wdXQuaW5wdXRQ
cm9jUmVmQ29uID0gdGhpczsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291
dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5p
dFNjb3BlX0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKKyAgICByZXN1bHQgPSBQ
QUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmaW5wdXQsIHNp
emVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCBzdHJlYW0g
Zm9ybWF0CkBAIC03OSw3ICs4MCw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29u
ZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgc3Ry
ZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKICAg
ICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBieXRlc1BlckZs
b2F0OwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBr
QXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAs
ICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQs
IGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwg
MCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAppbmRleCBhNTMzMzJjZjdkYmQ2NDY2ZjQ0
ZjU3NmQxY2Q3YWRlNzYxNTBhYTRmLi43ODQ3NGQ4ZTVhNWFjMDcwMzUzMzU5OTBjZGRmOGFmY2Q4
MDU2MTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGls
aXRpZXMuY3BwCkBAIC0zMywxMyArMzMsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11
c2luZyBuYW1lc3BhY2UgUEFMOwotCiBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4g
Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9pZCogbWFnaWND
b29raWUpCiB7CiAgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLmRlc2NyaXB0aW9uKTsKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCA9IG51
bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxscHRyLCBtYWdpY0Nv
b2tpZVNpemUsIG1hZ2ljQ29va2llLCBudWxscHRyLCAmZm9ybWF0KTsKKyAgICBhdXRvIGVycm9y
ID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nv
b2tpZSwgbnVsbHB0ciwgJmZvcm1hdCk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIExPR19F
UlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01NSwxNCArNTMsMTQgQEAgUmV0YWluUHRy
PENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYgZGEKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBudWxscHRyLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1w
bGVDb3VudCwgdGltZSwgbnVsbHB0ciwgJnNhbXBsZUJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9
IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIGZvcm1h
dC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZmZXIpOwogICAg
IGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVy
IHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVC
dWZmZXIpOwogCi0gICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVk
aW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2Nh
dG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkp
OworICAgIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9C
dWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOwog
ICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVm
ZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBlcnJvcik7CiAgICAgICAg
IHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCmluZGV4IDU3Y2YyOWQwZDc3ZTY3ODg5YmRjZWZk
NDA1ODUxMjllZDEyYTQ1NTUuLjY0ZTMwYmMyOTNjYThmOTM4ODQ4OGYxNDg4NTA2YzU3YmUwYTUx
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1v
dGVWaWRlb1NhbXBsZS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlICJDb3JlVmlkZW9T
b2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwog
CiBzdGF0aWMgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHRyYW5zZmVyQkdSQVBp
eGVsQnVmZmVyVG9JT1N1cmZhY2UoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcikKIHsKQEAg
LTkwLDcgKzg5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVW
aWRlb1NhbXBsZTo6Y3JlYXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUKIHsKICAgICBBU1NFUlQoc2Ft
cGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZm
ZXJUeXBlKTsKIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Cisg
ICAgYXV0byBpbWFnZUJ1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihz
YW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwogICAgIGlmICgh
aW1hZ2VCdWZmZXIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJSZW1vdGVW
aWRlb1NhbXBsZTo6Y3JlYXRlOiBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyIHJldHVybmVk
IG51bGxwdHIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggOTgzOWIzNzBhNzEzYjdjMWQy
M2Q4NDdmYTg2NTA1ZDVhZTk3OWFiMi4uZGZmNGZhNGVkZjI2NGI0NTJiZjhkYTdhZmFlZjRjYmQ3
YTAyN2IwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5tbQpAQCAtNDYsMjIgKzQ2LDEzIEBACiAjaW1wb3J0IDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KICNlbmRpZgogCisjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4K
ICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0KLVNPRlRfTElOS19GUkFNRVdPUksoTWVkaWFUb29s
Ym94KQotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi0KLVNPRlRfTElOSyhBdWRp
b1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAo
QXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJh
bWVzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3Qq
IG91dE91dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGlu
SW5wdXREYXRhLCBvdXRPdXRwdXREYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlv
Q29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5E
ZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVyKSwg
KGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRlcikp
Ci0KLVNPRlRfTElOSyhNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFn
ZSwgdm9pZCosIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKLVNPRlRfTElO
SyhNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8sIE9TU3Rh
dHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1iZXJGcmFt
ZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01JdGVtQ291bnQg
Km51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBm
bGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQpKQotU09GVF9MSU5LX01BWV9G
QUlMKE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxi
YWNrcyAqY2FsbGJhY2tzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3Ms
IE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmICp0YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3Ms
IGZsYWdzLCB0YXBPdXQpKQorI2ltcG9ydCA8cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5r
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHN0YXRp
YyBjb25zdCBkb3VibGUga1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7CiAKIGNsYXNzIEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlPiB7CkBAIC03Myw3ICs2
NCw3IEBAIHB1YmxpYzoKIAogUmVmUHRyPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDPiBBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKEFWUGxheWVySXRlbSAqaXRlbSkKIHsKLSAg
ICBpZiAoIWNhbkxvYWRNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSgpKQorICAgIGlmICghUEFM
OjpjYW5Mb2FkX01lZGlhVG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSgpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQyhpdGVtKSk7CiB9CkBAIC0xNTIsNyArMTQzLDcgQEAgdm9pZCBBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVf
dCBmcmFtZXNUb1Byb2MKICAgICBtX3JlYWRDb3VudCArPSBmcmFtZXNUb1Byb2Nlc3M7CiAKICAg
ICBpZiAobV9jb252ZXJ0ZXIpCi0gICAgICAgIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhC
dWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0LmdldCgpLCBt
X2xpc3QuZ2V0KCkpOworICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhC
dWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0LmdldCgpLCBt
X2xpc3QuZ2V0KCkpOwogfQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRD
bGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQpAQCAtMjI1LDcgKzIxNiw3
IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZU1peElmTmVlZGVkKCkK
ICAgICB9OwogCiAgICAgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwID0gbnVsbHB0cjsKLSAg
ICBPU1N0YXR1cyBzdGF0dXMgPSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBQ
QUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZjYWxs
YmFja3MsIDEsICZ0YXApOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgaWYg
KHRhcCkKICAgICAgICAgICAgIENGUmVsZWFzZSh0YXApOwpAQCAtMjU4LDE0ICsyNDksMTQgQEAg
dm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6aW5pdENhbGxiYWNrKE1UQXVkaW9Qcm9j
ZXNzaW5nVGFwUmVmIHRhcCwgdm9pZCoKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OmZpbmFsaXplQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogewogICAgIEFT
U0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBT
dG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0
b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAgICAgdGFwU3RvcmFnZS0+ZGVyZWYoKTsK
IH0KIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxiYWNrKE1U
QXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbWF4RnJhbWVzLCBjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKnByb2Nlc3NpbmdGb3JtYXQpCiB7CiAgICAgQVNT
RVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0
b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CisgICAgVGFwU3Rv
cmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Q
cm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExvY2tlciBsb2NrZXIgeyB0YXBT
dG9yYWdlLT5sb2NrIH07CiAKQEAgLTI3Niw3ICsyNjcsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFw
LCBDTQogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJlQ2FsbGJhY2so
TVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRh
cFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1By
b2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2Ug
PSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0
b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9Owog
CkBAIC0yODcsNyArMjc4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5w
cmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogdm9pZCBBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzc0NhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmIHRhcCwgQ01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEZs
YWdzIGZsYWdzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgQ01JdGVtQ291bnQg
Km51bWJlckZyYW1lc091dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQpCiB7
CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19j
YXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7Cisg
ICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihQQUw6
Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExvY2tlciBsb2Nr
ZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTMxNyw3ICszMDgsNyBAQCB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKENNSXRlbUNvdW50IG1heEZyYW1lcywgY29u
c3QgQXVkaW9TdHJlYQogCiAgICAgaWYgKCptX3RhcERlc2NyaXB0aW9uICE9ICptX291dHB1dERl
c2NyaXB0aW9uKSB7CiAgICAgICAgIEF1ZGlvQ29udmVydGVyUmVmIG91dENvbnZlcnRlciA9IG51
bGxwdHI7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyTmV3KG1fdGFwRGVzY3JpcHRpb24uZ2V0KCks
IG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOworICAgICAgICBQQUw6
OkF1ZGlvQ29udmVydGVyTmV3KG1fdGFwRGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0cHV0RGVzY3Jp
cHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRlciA9IG91dENv
bnZlcnRlcjsKICAgICB9CiAKQEAgLTM1Nyw3ICszNDgsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm9jZXNzKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVt
Q291bgogICAgIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7CiAgICAgQ01UaW1lUmFu
Z2UgcmFuZ2VPdXQ7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRBdWRpb1Byb2Nlc3NpbmdUYXBH
ZXRTb3VyY2VBdWRpbyh0YXAsIG51bWJlck9mRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdz
T3V0LCAmcmFuZ2VPdXQsICZpdGVtQ291bnQpOworICAgIE9TU3RhdHVzIHN0YXR1cyA9IFBBTDo6
TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyh0YXAsIG51bWJlck9mRnJhbWVzLCBi
dWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCAmcmFuZ2VPdXQsICZpdGVtQ291bnQpOwogICAgIGlm
IChzdGF0dXMgIT0gbm9FcnIgfHwgIWl0ZW1Db3VudCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQppbmRleCAzMDViM2QyN2UzNDJmOTg3MjExMmYxMTc0YzE0ZmY0ZjNj
NjA4NTVkLi5kMTRhZmY0ZjQ0OTdmOTI3ZGZhMWM2NmNkMTBmMGE3YmViMjM5MmI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KQEAgLTIzMiw3ICsyMzIsNiBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8
QVZQbGF5ZXJUaW1lQ29udHJvbFN0YXR1cz4gewogfTsgLy8gbmFtZXNwYWNlIFdURgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgTlNBcnJheSAq
YXNzZXRNZXRhZGF0YUtleU5hbWVzKCk7CiBzdGF0aWMgTlNBcnJheSAqaXRlbUtWT1Byb3BlcnRp
ZXMoKTsKQEAgLTU4Miw4ICs1ODEsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNyZWF0ZUltYWdlR2VuZXJhdG9yKCkKIAogICAgIFttX2ltYWdlR2VuZXJhdG9y
LmdldCgpIHNldEFwZXJ0dXJlTW9kZTpBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1vZGVD
bGVhbkFwZXJ0dXJlXTsKICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcHBsaWVzUHJl
ZmVycmVkVHJhY2tUcmFuc2Zvcm06WUVTXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBz
ZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOmtDTVRpbWVaZXJvXTsKLSAgICBbbV9pbWFn
ZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6a0NNVGltZVpl
cm9dOworICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFu
Y2VCZWZvcmU6UEFMOjprQ01UaW1lWmVyb107CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkg
c2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUFmdGVyOlBBTDo6a0NNVGltZVplcm9dOwogfQogCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lDb250ZXh0Vmlk
ZW9SZW5kZXJlcigpCkBAIC02NzEsNyArNjcwLDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiAgICAgaWYgKCFkYXRl
KQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOwogCi0gICAgZG91Ymxl
IGN1cnJlbnRUaW1lID0gQ01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0ZW0gY3VycmVudFRp
bWVdKSAqIDEwMDA7CisgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWVHZXRTZWNv
bmRzKFttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV0pICogMTAwMDsKIAogICAgIC8vIFJvdW5k
aW5nIGR1ZSB0byBzZWNvbmQgb2Zmc2V0IGVycm9yIHdoZW4gc3VidHJhY3RpbmcuCiAgICAgcmV0
dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZShyb3VuZChkYXRlIC0gY3VycmVudFRpbWUp
KTsKQEAgLTEwODksNyArMTA4OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIoKQogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRUaW1lT2Jz
ZXJ2ZXIpOwogICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7Ci0gICAgbV9j
dXJyZW50VGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJG
b3JJbnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpIHVzaW5nQmxvY2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRpbWUpIHsKKyAgICBtX2N1cnJlbnRU
aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVy
dmFsOlBBTDo6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSB1c2luZ0Jsb2NrOlt3ZWFrVGhpc10gKENNVGltZSB0aW1lKSB7CiAgICAgICAgIGlmICh3ZWFr
VGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5jdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKFBB
TDo6dG9NZWRpYVRpbWUodGltZSkpOwogICAgIH1dOwpAQCAtMTQyMyw3ICsxNDIyLDcgQEAgTWVk
aWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRNZWRpYVRp
bWUoKSBjb25zdAogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCiAgICAg
aWYgKCFtX3dhbGxDbG9ja0F0Q2FjaGVkQ3VycmVudFRpbWUpCi0gICAgICAgIGN1cnJlbnRNZWRp
YVRpbWVEaWRDaGFuZ2UodG9NZWRpYVRpbWUoW21fYXZQbGF5ZXJJdGVtLmdldCgpIGN1cnJlbnRU
aW1lXSkpOworICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKFBBTDo6dG9NZWRpYVRp
bWUoW21fYXZQbGF5ZXJJdGVtLmdldCgpIGN1cnJlbnRUaW1lXSkpOwogICAgIEFTU0VSVChtX3dh
bGxDbG9ja0F0Q2FjaGVkQ3VycmVudFRpbWUpOwogCiAgICAgYXV0byBpdGVtVGltZSA9IG1fY2Fj
aGVkQ3VycmVudE1lZGlhVGltZTsKQEAgLTE0NjgsOCArMTQ2Nyw4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRp
bWUsIGNvbnN0CiAgICAgQ01UaW1lIGNtQWZ0ZXIgPSBQQUw6OnRvQ01UaW1lKHBvc2l0aXZlVG9s
ZXJhbmNlKTsKIAogICAgIC8vIFtBVlBsYXllckl0ZW0gc2Vla1RvVGltZV0gd2lsbCB0aHJvdyBh
biBleGNlcHRpb24gaWYgdG9sZXJhbmNlQmVmb3JlIGlzIG5lZ2F0aXZlLgotICAgIGlmIChDTVRp
bWVDb21wYXJlKGNtQmVmb3JlLCBrQ01UaW1lWmVybykgPCAwKQotICAgICAgICBjbUJlZm9yZSA9
IGtDTVRpbWVaZXJvOworICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoY21CZWZvcmUsIFBBTDo6
a0NNVGltZVplcm8pIDwgMCkKKyAgICAgICAgY21CZWZvcmUgPSBQQUw6OmtDTVRpbWVaZXJvOwog
ICAgIAogICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAKQEAgLTE1ODYs
NiArMTU4NSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0
UGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKE1lZGlhUGxheWVyCiAKIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBs
YXRmb3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2Ug
UEFMOworCiAgICAgYXV0byB0aW1lUmFuZ2VzID0gbWFrZVVuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5n
ZXM+KCk7CiAKICAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtKQpAQCAtMTU5NCwxMyArMTU5NSwxNSBA
QCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybQogICAgIGZvciAoTlNWYWx1ZSAqdGhpc1JhbmdlVmFs
dWUgaW4gbV9jYWNoZWRMb2FkZWRSYW5nZXMuZ2V0KCkpIHsKICAgICAgICAgQ01UaW1lUmFuZ2Ug
dGltZVJhbmdlID0gW3RoaXNSYW5nZVZhbHVlIENNVGltZVJhbmdlVmFsdWVdOwogICAgICAgICBp
ZiAoQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSAmJiAhQ01USU1FUkFOR0VfSVNfRU1Q
VFkodGltZVJhbmdlKSkKLSAgICAgICAgICAgIHRpbWVSYW5nZXMtPmFkZChQQUw6OnRvTWVkaWFU
aW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lUmFuZ2VHZXRFbmQo
dGltZVJhbmdlKSkpOworICAgICAgICAgICAgdGltZVJhbmdlcy0+YWRkKFBBTDo6dG9NZWRpYVRp
bWUodGltZVJhbmdlLnN0YXJ0KSwgUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZVJhbmdlR2V0
RW5kKHRpbWVSYW5nZSkpKTsKICAgICB9CiAgICAgcmV0dXJuIHRpbWVSYW5nZXM7CiB9CiAKIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1pblRp
bWVTZWVrYWJsZSgpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGlm
ICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyB8fCAhW21fY2FjaGVkU2Vla2FibGVSYW5nZXMgY291
bnRdKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCkBAIC0xNjIxLDYg
KzE2MjQsOCBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAog
eworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CisKICAgICBpZiAoIW1fY2FjaGVkU2Vla2FibGVS
YW5nZXMpCiAgICAgICAgIG1fY2FjaGVkU2Vla2FibGVSYW5nZXMgPSBbbV9hdlBsYXllckl0ZW0g
c2Vla2FibGVUaW1lUmFuZ2VzXTsKIApAQCAtMTYzMyw3ICsxNjM4LDcgQEAgTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxl
KCkgY29uc3QKICAgICAgICAgaWYgKCFDTVRJTUVSQU5HRV9JU19WQUxJRCh0aW1lUmFuZ2UpIHx8
IENNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5nZSkpCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgCi0gICAgICAgIE1lZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGlt
ZShDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKKyAgICAgICAgTWVkaWFUaW1lIGVuZE9m
UmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdl
KSk7CiAgICAgICAgIGlmIChtYXhUaW1lU2Vla2FibGUgPCBlbmRPZlJhbmdlKQogICAgICAgICAg
ICAgbWF4VGltZVNlZWthYmxlID0gZW5kT2ZSYW5nZTsKICAgICB9CkBAIC0xNjQyLDYgKzE2NDcs
OCBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZv
cm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkKCkgY29uc3QKIHsKKyAgICB1
c2luZyBuYW1lc3BhY2UgUEFMOworCiAgICAgaWYgKCFtX2NhY2hlZExvYWRlZFJhbmdlcykKICAg
ICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIApAQCAtMTY1MSw3ICsxNjU4LDcg
QEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3Jt
TWF4VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFMSUQo
dGltZVJhbmdlKSB8fCBDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBB
TDo6dG9NZWRpYVRpbWUoQ01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CisgICAgICAgIE1l
ZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZVJhbmdlR2V0
RW5kKHRpbWVSYW5nZSkpOwogICAgICAgICBpZiAobWF4VGltZUxvYWRlZCA8IGVuZE9mUmFuZ2Up
CiAgICAgICAgICAgICBtYXhUaW1lTG9hZGVkID0gZW5kT2ZSYW5nZTsKICAgICB9CkBAIC0xODAz
LDcgKzE4MTAsNyBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZQogICAgIE1vbm90b25pY1RpbWUg
c3RhcnQgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIAogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdl
dCgpIHNldE1heGltdW1TaXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiByYXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29w
eUNHSW1hZ2VBdFRpbWU6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGlt
ZTpuaWwgZXJyb3I6bmlsXSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHJhd0ltYWdlID0g
YWRvcHRDRihbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFnZUF0VGltZTpQQUw6OkNN
VGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0p
OwogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0
ZUNvcHlXaXRoQ29sb3JTcGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSkp
OwogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGltYWdlIHRvb2sgIiwg
KE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7CkBAIC0xOTg5LDcgKzE5
OTYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFN0b3BM
b2FkaW5nUmVxdWVzdChBVkFzc2V0UmVzb3VyY2VMbwogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gUEFMOjppc0FW
Rm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZh
aWxhYmxlKCk7CisgICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFi
bGUoKSAmJiBQQUw6OmlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7CiB9CiAKIE1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZWRpYVRpbWVGb3JUaW1l
VmFsdWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lVmFsdWUpIGNvbnN0CkBAIC0zMjM1LDkgKzMyNDIs
OSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhR3Jv
dXBEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPAogICAgICAgICBmb3IgKEFWTWV0YWRhdGFJdGVt
ICppdGVtIGluIGdyb3VwLml0ZW1zKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8QVZNdXRhYmxl
TWV0YWRhdGFJdGVtPiBpdGVtQ29weSA9IGFkb3B0TlMoW2l0ZW0gbXV0YWJsZUNvcHldKTsKICAg
ICAgICAgICAgIGlmICghQ01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgpLnRpbWUpKQotICAg
ICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLnRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHMo
Z3JvdXBTdGFydFRpbWUsIE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7CisgICAgICAgICAg
ICAgICAgaXRlbUNvcHkuZ2V0KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGdy
b3VwU3RhcnRUaW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwogICAgICAgICAgICAg
aWYgKCFDTVRJTUVfSVNfVkFMSUQoaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24pKQotICAgICAgICAg
ICAgICAgIGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7
CisgICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24gPSBQQUw6OnRvQ01UaW1l
KGdyb3VwRHVyYXRpb24pOwogICAgICAgICAgICAgW2dyb3VwQ29weSBhZGRPYmplY3Q6aXRlbUNv
cHkuZ2V0KCldOwogICAgICAgICB9CiAKQEAgLTMyNzksNyArMzI4Niw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUoY29uc3QgUmV0
YWluUHRyPE5TQXJyCiAKICAgICAgICAgTWVkaWFUaW1lIGVuZCA9IE1lZGlhVGltZTo6cG9zaXRp
dmVJbmZpbml0ZVRpbWUoKTsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGl0ZW0uZHVyYXRpb247
Ci0gICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIENNVGltZUdldFNlY29u
ZHMoZHVyYXRpb24pID4gMC4wMDEpCisgICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRp
b24pICYmIFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkKICAgICAgICAg
ICAgIGVuZCA9IHN0YXJ0ICsgUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7CiAKICAgICAgICAg
QXRvbVN0cmluZyB0eXBlID0gbnVsbEF0b20oKTsKQEAgLTM0NTgsNyArMzQ2NSw3IEBAIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGlt
ZShXVEY6OkZ1bmN0aW9uPHZvCiAgICAgaWYgKG1fdGltZU9ic2VydmVyKQogICAgICAgICBbbV9h
dlBsYXllciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV90aW1lT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAg
bV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRp
bWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAgbV90aW1lT2JzZXJ2ZXIg
PSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUg
dmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7CiAgICAgfV07CiAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNWE2OWFhNjc5
NTE4OWNiNGUwNzZkMzE5NDY5Zjk5NjUwNGZmOTQ2Yy4uNzNhZGViOWJiNzNhNzgyOGRmNWEzZjQ4
NGM1ZjkwZTMzM2QyNDFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNjYsNyAr
NjYsNiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KE5T
VVJMICopc3RvcmFnZURpcmVjdG9yeTsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNp
bmcgbmFtZXNwYWNlIFBBTDsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0YXRlIGVudW1lcmF0aW9u
VmFsdWUpCiB7CkBAIC0xMTYsMTUgKzExNSwxNSBAQCBzdGF0aWMgdm9pZCBDTVRpbWViYXNlRWZm
ZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgY29ucwog
CiB2b2lkIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3AoQ01UaW1lYmFzZVJlZiB0
aW1lYmFzZSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IENNTm90aWZpY2F0
aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50
ZXJSZW1vdmVMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2Vk
Q2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0
aW1lYmFzZSk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZp
Y2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFMOjpDTU5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0
ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVS
YXRlQ2hhbmdlZCwgdGltZWJhc2UpOwogfQogCiBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVy
OjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQyYgY2xpZW50LCBDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAgIDogbV9jbGll
bnQobWFrZVdlYWtQdHIoY2xpZW50KSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBu
YyA9IENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01O
b3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2
ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJh
dGVDaGFuZ2VkLCB0aW1lYmFzZSwgMCk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMg
PSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAg
UEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNl
RWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlv
bl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwogfQogCiBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQyhNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMTU3LDcgKzE1Niw3IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDKE1lZGlhCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hyb25pemVyIGZp
cmVkIGZvciAiLCB0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywg
IiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CisgICAgICAgIERFQlVHX0xPRyhsb2dT
aXRlSWRlbnRpZmllciwgInN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFMOjp0b01lZGlhVGlt
ZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9w
ZW5kaW5nU2Vlayk7CiAKICAgICAgICAgaWYgKG1fc2Vla2luZyAmJiAhbV9wZW5kaW5nU2Vlaykg
ewogICAgICAgICAgICAgbV9zZWVraW5nID0gZmFsc2U7CkBAIC0yMzgsMTEgKzIzNywxMSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKICAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlv
bkZyYW1ld29ya0F2YWlsYWJsZSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZh
aWxhYmxlKCkKLSAgICAgICAgJiYgZ2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKQotICAgICAg
ICAmJiBnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCi0gICAgICAgICYmIGdl
dEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQotICAgICAgICAmJiBjbGFz
c19nZXRJbnN0YW5jZU1ldGhvZChnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygp
LCBAc2VsZWN0b3Ioc2V0TXV0ZWQ6KSk7CisgICAgICAgICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFt
ZXdvcmtBdmFpbGFibGUoKQorICAgICAgICAmJiBQQUw6OmdldEFWU3RyZWFtRGF0YVBhcnNlckNs
YXNzKCkKKyAgICAgICAgJiYgUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFz
cygpCisgICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJvbml6ZXJD
bGFzcygpCisgICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFBBTDo6Z2V0QVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11dGVkOikpOwogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKQpA
QCAtNDE3LDcgKzQxNiw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OmR1cmF0aW9uTWVkaWFUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiB7
Ci0gICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGlt
ZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBNZWRpYVRpbWUg
c3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGlt
ZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUg
PCBNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9U
aW1lKCk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBtX2xhc3RTZWVrVGltZSkKQEAgLTQz
MCw3ICs0MjksNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
c2V0Q3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhNZWRpYQogICAgIG1fY3VycmVudFRpbWVE
aWRDaGFuZ2VDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAgICAgaWYgKG1fY3VycmVu
dFRpbWVEaWRDaGFuZ2VDYWxsYmFjaykgewotICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIg
PSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpDTVRp
bWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6
XihDTVRpbWUgdGltZSkgeworICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIgPSBbbV9zeW5j
aHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1h
a2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENN
VGltZSB0aW1lKSB7CiAgICAgICAgICAgICBpZiAobV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxi
YWNrKQogICAgICAgICAgICAgICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhDTVRJ
TUVfSVNfTlVNRVJJQyh0aW1lKSA/IFBBTDo6dG9NZWRpYVRpbWUodGltZSkgOiBNZWRpYVRpbWU6
Onplcm9UaW1lKCkpOwogICAgICAgICB9XTsKQEAgLTQ4Miw3ICs0ODEsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFsKCkKICAgICBpZiAo
bV9sYXN0U2Vla1RpbWUuaGFzRG91YmxlVmFsdWUoKSkKICAgICAgICAgbV9sYXN0U2Vla1RpbWUg
PSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUobV9sYXN0U2Vla1RpbWUudG9Eb3VibGUoKSwg
TWVkaWFUaW1lOjpEZWZhdWx0VGltZVNjYWxlKTsKIAotICAgIE1lZGlhVGltZSBzeW5jaHJvbml6
ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6
ZXIgdGltZWJhc2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNl
XSkpOwogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJzZWVrVGltZSA9ICIsIG1fbGFzdFNl
ZWtUaW1lLCAiLCBzeW5jaHJvbml6ZXJUaW1lID0gIiwgc3luY2hyb25pemVyVGltZSk7CiAKICAg
ICBib29sIGRvZXNOb3RSZXF1aXJlU2VlayA9IHN5bmNocm9uaXplclRpbWUgPT0gbV9sYXN0U2Vl
a1RpbWU7CkBAIC01OTksNyArNTk4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAgaWYgKG1fdmlkZW9PdXRw
dXQpIHsKICAgICAgICAgQ01UaW1lIG91dHB1dFRpbWU7CiAgICAgICAgIGlmIChhdXRvIHBpeGVs
QnVmZmVyID0gYWRvcHRDRihbbV92aWRlb091dHB1dCBjb3B5UGl4ZWxCdWZmZXJGb3JTb3VyY2VU
aW1lOnRvQ01UaW1lKGN1cnJlbnRNZWRpYVRpbWUoKSkgc291cmNlVGltZUZvckRpc3BsYXk6Jm91
dHB1dFRpbWVdKSkgewotICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIm5ldyBw
aXhlbGJ1ZmZlciBmb3VuZCBmb3IgdGltZSAiLCB0b01lZGlhVGltZShvdXRwdXRUaW1lKSk7Cisg
ICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVmZmVyIGZvdW5k
IGZvciB0aW1lICIsIFBBTDo6dG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOwogICAgICAgICAgICAg
bV9sYXN0UGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CkBAIC04MDksNyArODA4LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigpCiAgICAgaWYgKCFtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ01UaW1lIGN1
cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7
CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5j
aHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3ZlUmVuZGVyZXI6
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhD
b21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAg
LTEwMTgsNyArMTAxNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpmbHVzaFBlbmRpbmdTaXplQ2hhbmdlcygpCiAjaWYgSEFWRShBVlNUUkVBTVNFU1NJT04p
CiBBVlN0cmVhbVNlc3Npb24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
c3RyZWFtU2Vzc2lvbigpCiB7Ci0gICAgaWYgKCFnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIHx8
ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVj
dG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkKKyAgICBpZiAo
IVBBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0QVZTdHJlYW1TZXNz
aW9uQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhT
dG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBpZiAo
IW1fc3RyZWFtU2Vzc2lvbikgewpAQCAtMTIxNyw3ICsxMjE2LDcgQEAgQUxMT1dfTkVXX0FQSV9X
SVRIT1VUX0dVQVJEU19FTkQKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGltZSBjdXJyZW50VGlt
ZSA9IENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOworICAgIENN
VGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVy
IHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRlcmVyOmF1ZGlvUmVu
ZGVyZXIgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewog
ICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAgLTEzMDEsNyArMTMwMCw3IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1l
KFdURjo6RnVuY3Rpb248CiAgICAgaWYgKG1fcGVyZm9ybVRhc2tPYnNlcnZlcikKICAgICAgICAg
W21fc3luY2hyb25pemVyIHJlbW92ZVRpbWVPYnNlcnZlcjptX3BlcmZvcm1UYXNrT2JzZXJ2ZXIu
Z2V0KCldOwogCi0gICAgbV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFk
ZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6
dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxv
Y2s6XnsKKyAgICBtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkQm91
bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTpQQUw6
OnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Js
b2NrOl57CiAgICAgICAgIHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGUxYWQxMDJiYjk4MWJmMzc0ZTZiZDkzN2MwYzZl
MmE4N2Y0MGYxNWYuLjU1YjUwMGM1N2U5M2ViYmE0OTZhZTc0MTZmZDVkZjc4ZDdiOTQ1OGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJMb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXIuaCIKICNpbXBv
cnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2
YXRlLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCkBAIC0xMjEsNyArMTIy
LDYgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGgg
b2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMKQEAgLTIxMCw3ICsyMTAsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBpc0FWRm91bmRhdGlvbkZy
YW1ld29ya0F2YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYg
Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpOworICAgIHJldHVybiBQQUw6Omlz
QVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1l
d29ya0F2YWlsYWJsZSgpICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFz
cygpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0
U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4m
IHR5cGVzKQpAQCAtMjMwLDcgKzIzMCw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uCiBzdGF0
aWMgaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgoTWVk
aWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIg
PSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXI7Ci0gICAgQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+
KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIpKTsKICAgICBzaXpl
X3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwogICAgIHNpemVf
dCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKICAgICBpZiAo
IXdpZHRoIHx8ICFoZWlnaHQpCkBAIC05NjAsNyArOTYwLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCkKICAgICBp
ZiAoIW1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQogICAgICAgICByZXR1cm47
CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4o
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+
cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVs
QnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldEltYWdlQnVmZmVyKG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBs
ZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIG1faW1hZ2VQYWludGVyLmNnSW1hZ2Ug
PSBOYXRpdmVJbWFnZTo6Y3JlYXRlKG1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVy
LT5jcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXggMmY0OTgzODc2NWQz
Yzk0NDFiNjliYjk1MThiM2IxZjlhODc5NTA5Yi4uN2JmNDJkNGU3ZDdjY2IyOGFjYWYzOTA4MDg5
ZTE1MWM0MjRkN2Y5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZG
T2JqQy5tbQpAQCAtMzYsOSArMzYsMTEgQEAKICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgi
CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKLQotV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBX
VEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKK3RlbXBsYXRlIDw+Citz
dHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJlZj4geworICAgIHN0YXRpYyBp
bmxpbmUgQ0ZUeXBlSUQgdHlwZUlEKHZvaWQpIHsgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRUeXBlSUQoKTsgfQorfTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02NywzNSArNjks
MzUgQEAgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGVJbWFnZVNhbXBsZShQaXhlbEJ1ZmZlciYmIHAKICAgICBBU1NFUlRfVU5VU0VEKHN0YXR1cywg
IXN0YXR1cyk7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb25SYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIu
Z2V0KCksICZmb3JtYXREZXNjcmlwdGlvblJhdyk7CisgICAgc3RhdHVzID0gUEFMOjpDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBjdlBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb25SYXcpOwogICAgIEFTU0VS
VCghc3RhdHVzKTsKICAgICBhdXRvIGZvcm1hdERlc2NyaXB0aW9uID0gYWRvcHRDRihmb3JtYXRE
ZXNjcmlwdGlvblJhdyk7CiAKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2FtcGxlVGltaW5nSW5m
b3JtYXRpb24gPSB7IGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52YWxpZCwga0NNVGltZUludmFs
aWQgfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2FtcGxlVGltaW5nSW5mb3JtYXRpb24gPSB7
IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6a0NNVGltZUlu
dmFsaWQgfTsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJSYXcgPSBudWxscHRy
OwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRp
b24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1ZmZlclJhdyk7Cisg
ICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVy
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0
aW9uLmdldCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVCdWZmZXJSYXcpOwog
ICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0Yoc2Ft
cGxlQnVmZmVyUmF3KTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRy
dWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CiAg
ICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50
c0FycmF5KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJl
ZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihD
RkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgQ0ZE
aWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlz
cGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgIENGRGljdGlvbmFyeVNl
dFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUlt
bWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogICAgIHJldHVybiBjcmVhdGUoc2Ft
cGxlQnVmZmVyLmdldCgpKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJl
c2VudGF0aW9uVGltZSgpIGNvbnN0CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1
ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAg
YXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9u
VGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQodGlt
ZVN0YW1wKSkKLSAgICAgICAgdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRp
b25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOworICAgICAgICB0aW1lU3RhbXAgPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAg
ICByZXR1cm4gUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApOwogfQogCiBNZWRpYVRpbWUgTWVk
aWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIHsKLSAgICBhdXRvIHRpbWVTdGFt
cCA9IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKKyAg
ICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAo
bV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQog
ICAgICAgICByZXR1cm4gcHJlc2VudGF0aW9uVGltZSgpOwogICAgIHJldHVybiBQQUw6OnRvTWVk
aWFUaW1lKHRpbWVTdGFtcCk7CkBAIC0xMDMsMTUgKzEwNSwxNSBAQCBNZWRpYVRpbWUgTWVkaWFT
YW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxl
QVZGT2JqQzo6ZHVyYXRpb24oKSBjb25zdAogewotICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBs
ZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICBhdXRvIGR1cmF0
aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1fc2FtcGxlLmdldCgp
KTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAgICAgICBkdXJhdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOworICAgICAgICBk
dXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7
CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUoZHVyYXRpb24pOwogfQogCiBzaXplX3QgTWVk
aWFTYW1wbGVBVkZPYmpDOjpzaXplSW5CeXRlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENNU2Ft
cGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplKG1fc2FtcGxlLmdldCgpKTsKKyAgICByZXR1cm4g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBsZS5nZXQoKSk7CiB9
CiAKIFBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxhdGZvcm1TYW1wbGUoKQpA
QCAtMTIyLDIzICsxMjQsMjMgQEAgUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1wbGVBVkZPYmpDOjpw
bGF0Zm9ybVNhbXBsZSgpCiAKIHVpbnQzMl90IE1lZGlhU2FtcGxlQVZGT2JqQzo6dmlkZW9QaXhl
bEZvcm1hdCgpIGNvbnN0CiB7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENW
UGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0
KCkpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJl
Zj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7CiAg
ICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwog
fQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2VzcyhD
RkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCiB7Ci0gICAgcmV0dXJuICFDRkRpY3Rpb25h
cnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RT
eW5jKTsKKyAgICByZXR1cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0
LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7CiB9CiAKIHN0YXRpYyBib29s
IGRvZXNDTVNhbXBsZUJ1ZmZlckhhdmVTeW5jSW5mbyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUp
CiB7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShz
YW1wbGUsIGZhbHNlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0
dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAgIENG
QXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRz
QXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwog
ICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIApAQCAtMTUx
LDEyICsxNTMsMTIgQEAgc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJB
dHRhY2htZW50Tm9uRGlzcGxheWluZyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCiB7
Ci0gICAgcmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBrQ01T
YW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSk7CisgICAgcmV0dXJuIENGRGljdGlvbmFy
eUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlf
RG9Ob3REaXNwbGF5KTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlck5vbkRpc3Bs
YXlpbmcoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAgIENGQXJyYXlSZWYgYXR0YWNo
bWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBm
YWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNo
bWVudHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTE4NiwxMSArMTg4LDExIEBA
IE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBNZWRpYVNhbXBsZUFWRk9iakM6OmZsYWdzKCkgY29u
c3QKIAogRmxvYXRTaXplIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0aW9uU2l6ZSgpIGNv
bnN0CiB7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9zYW1wbGUuZ2V0KCkpOwotICAgIGlm
IChDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKSAhPSBr
Q01NZWRpYVR5cGVfVmlkZW8pCisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3NhbXBs
ZS5nZXQoKSk7CisgICAgaWYgKFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShm
b3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQogICAgICAgICByZXR1cm4g
RmxvYXRTaXplKCk7CiAgICAgCi0gICAgcmV0dXJuIEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVl
LCB0cnVlKSk7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRy
dWUpKTsKIH0KIAogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJpbnRTdHJlYW0mIG91
dCkgY29uc3QKQEAgLTIwMSwxMiArMjAzLDEyIEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zm
c2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogewogICAgIENNSXRlbUNv
dW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50
KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCiAgICAgICAg
IHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZv
QXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBpZiAobm9F
cnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0
KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAgaWYg
KG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9z
YW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikp
CiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWluZyA6IHRpbWluZ0lu
Zm9BcnJheSkgewpAQCAtMjE1LDcgKzIxNyw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpv
ZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiAgICAgfQogICAgIAog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1w
bGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3Nh
bXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxl
KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3
VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRp
bWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAgICAgICByZXR1cm47CiAgICAg
CiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0yMjQsMTIgKzIyNiwxMiBA
QCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlh
VGltZSYgb2Zmc2V0KQogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29u
c3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGFtcCwgY29uc3QgV1RGOjpNZWRp
YVRpbWUgJmRlY29kZVRpbWVzdGFtcCkKIHsKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAw
OwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisgICAgaWYgKG5vRXJy
ICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUu
Z2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1cm47CiAgICAgCiAg
ICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5OwogICAgIHRpbWlu
Z0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRp
bWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBpdGVt
Q291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgZm9yIChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZvQXJyYXkpIHsKQEAgLTIz
OCw3ICsyNDAsNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyhjb25z
dCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogICAgIH0KICAgICAKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUu
Z2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCisg
ICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWlu
ZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJ
bmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUpOwpAQCAtMjQ2LDEwICsyNDgsMTAgQEAgdm9p
ZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RGOjpNZWRpYVRpbWUg
JnByZXNlbnRhdGlvblRpbWVzdGEKIAogYm9vbCBNZWRpYVNhbXBsZUFWRk9iakM6OmlzRGl2aXNh
YmxlKCkgY29uc3QKIHsKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzKG1fc2Ft
cGxlLmdldCgpKSA9PSAxKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxl
cyhtX3NhbXBsZS5nZXQoKSkgPT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYg
KENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxs
cHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVCdWZmZXJFcnJvcl9CdWZmZXJIYXNOb1NhbXBsZVNp
emVzKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5KG1fc2Ft
cGxlLmdldCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVCdWZmZXJFcnJvcl9C
dWZmZXJIYXNOb1NhbXBsZVNpemVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTI2MiwxNyArMjY0LDE3IEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1w
bGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZShjCiAK
ICAgICBDRkluZGV4IHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lID0gMDsKIAotICAgIENN
U2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5nZXQoKSwgWyZdIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAtPiBPU1N0YXR1cyB7
Ci0gICAgICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50
YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ2Fs
bEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5nZXQoKSwgWyZdIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAtPiBPU1N0YXR1cyB7CisgICAgICAgIGF1dG8g
dGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVT
dGFtcChzYW1wbGVCdWZmZXIpOwogICAgICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQodGltZVN0
YW1wKSkKLSAgICAgICAgICAgIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0
aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICB0aW1lU3RhbXAgPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CiAK
ICAgICAgICAgaWYgKHVzZUVuZFRpbWUgPT0gVXNlRW5kVGltZTo6VXNlKSB7Ci0gICAgICAgICAg
ICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihzYW1wbGVC
dWZmZXIpOworICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRPdXRwdXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwogICAgICAgICAgICAgaWYgKENNVElNRV9J
U19JTlZBTElEKGR1cmF0aW9uKSkKLSAgICAgICAgICAgICAgICBkdXJhdGlvbiA9IENNU2FtcGxl
QnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgICAgICBkdXJhdGlv
biA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwogCi0gICAg
ICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShDTVRpbWVBZGQodGltZVN0YW1wLCBkdXJhdGlv
bikpID4gcHJlc2VudGF0aW9uVGltZSkKKyAgICAgICAgICAgIGlmIChQQUw6OnRvTWVkaWFUaW1l
KFBBTDo6Q01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+IHByZXNlbnRhdGlvblRpbWUp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0gZWxzZSBpZiAoUEFMOjp0b01l
ZGlhVGltZSh0aW1lU3RhbXApID49IHByZXNlbnRhdGlvblRpbWUpCiAgICAgICAgICAgICByZXR1
cm4gMTsKQEAgLTI4MywxOSArMjg1LDE5IEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1wbGU+
LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZShjCiAgICAg
aWYgKCFzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgcmV0dXJuIHsgbnVs
bHB0ciwgdGhpcyB9OwogCi0gICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQgPSBDTVNhbXBsZUJ1
ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpOworICAgIENNSXRlbUNvdW50IHNhbXBs
ZUNvdW50ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkp
OwogICAgIGlmIChzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSA+PSBzYW1wbGVDb3VudCkK
ICAgICAgICAgcmV0dXJuIHsgdGhpcywgbnVsbHB0ciB9OwogCiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgcmF3U2FtcGxlQmVmb3JlID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdlQmVmb3JlID0g
Q0ZSYW5nZU1ha2UoMCwgc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUpOwotICAgIGlmIChD
TVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VCZWZvcmUsICZyYXdTYW1wbGVCZWZvcmUpICE9IG5vRXJy
KQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9yZSwgJnJhd1NhbXBs
ZUJlZm9yZSkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsK
ICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJlZm9yZSA9IGFkb3B0Q0Yo
cmF3U2FtcGxlQmVmb3JlKTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUFmdGVy
ID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdlQWZ0ZXIgPSBDRlJhbmdlTWFrZShzYW1wbGVz
QmVmb3JlUHJlc2VudGF0aW9uVGltZSwgc2FtcGxlQ291bnQgLSBzYW1wbGVzQmVmb3JlUHJlc2Vu
dGF0aW9uVGltZSk7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJh
bmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUFmdGVyLCAmcmF3
U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNh
bXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBy
YW5nZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4geyBu
dWxscHRyLCBudWxscHRyIH07CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzYW1w
bGVBZnRlciA9IGFkb3B0Q0YocmF3U2FtcGxlQWZ0ZXIpOwogCkBAIC0zMDUsMTMgKzMwNywxMyBA
QCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlhU2FtcGxlPj4gTWVk
aWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogUmVmPE1lZGlhU2FtcGxlPiBNZWRpYVNhbXBsZUFW
Rk9iakM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3QKIHsKICAgICBDTVNhbXBsZUJ1
ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXIgPSAwOwotICAgIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29w
eShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7
CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
bV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAgIEFTU0VSVChuZXdTYW1wbGVC
dWZmZXIpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG5ld1NhbXBsZUJ1ZmZlciwgdHJ1ZSk7CisgICAg
Q0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsKICAgICBmb3IgKENGSW5k
ZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7ICsraSkgewog
ICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9j
YXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNo
bWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50
cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xlYW5UcnVlKTsK
KyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxl
QXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiAKICAg
ICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRvcHRDRihuZXdTYW1wbGVCdWZm
ZXIpLmdldCgpLCBtX2lkKTsKQEAgLTMyNiw3ICszMjgsNyBAQCBSZWZQdHI8SlNDOjpVaW50OENs
YW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhKCkgY29uc3QK
ICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShjb25mb3JtZXJPcHRpb25zLmdldCgpLCBrQ1ZQaXhl
bEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgaW1hZ2VGb3JtYXROdW1iZXIuZ2V0KCkpOwogICAg
IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgcGl4ZWxCdWZmZXJDb25mb3JtZXIoY29uZm9ybWVyT3B0
aW9ucy5nZXQoKSk7CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhl
bEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkp
OworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsKICAgICBh
dXRvIHJnYmFQaXhlbEJ1ZmZlciA9IHBpeGVsQnVmZmVyQ29uZm9ybWVyLmNvbnZlcnQocGl4ZWxC
dWZmZXIpOwogICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhy
Z2JhUGl4ZWxCdWZmZXIuZ2V0KCksIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFkT25seSk7CiAgICAg
QVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CkBAIC0zNDMsMTAgKzM0NSwxMCBAQCBSZWZQdHI8SlND
OjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRh
KCkgY29uc3QKIAogc3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUlt
bWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsKLSAgICBDRkFycmF5
UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRz
QXJyYXkoc2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJy
YXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVC
dWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3Vu
dChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlS
ZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4o
Q0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgIENG
RGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rp
c3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlT
ZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJ
bW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KIH0KIApAQCAtMzU3LDcgKzM1OSw3
IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRp
YVNhbXBsZSYgc2FtcGxlKQogCiBib29sIE1lZGlhU2FtcGxlQVZGT2JqQzo6aXNIb21vZ2VuZW91
cygpIGNvbnN0CiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKKyAg
ICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFhdHRh
Y2htZW50c0FycmF5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzg1LDcgKzM4Nyw3IEBA
IFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZp
ZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiB7CiAgICAgdXNpbmcgU2FtcGxlVmVjdG9yID0gVmVj
dG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PjsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVu
dHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBs
ZS5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCksIHRy
dWUpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkKICAgICAgICAgcmV0dXJuIFNhbXBsZVZl
Y3Rvcjo6ZnJvbShtYWtlUmVmKCp0aGlzKSk7CiAKQEAgLTQxOCw3ICs0MjAsNyBAQCBWZWN0b3I8
UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlSW50b0hv
bW9nZW5lb3VzU2FtcGxlcwogICAgIHNhbXBsZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyYW5n
ZXMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIHJhbmdlIDogcmFuZ2VzKSB7CiAgICAgICAgIENN
U2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZSA9IG51bGxwdHI7Ci0gICAgICAgIGlmIChDTVNhbXBs
ZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3Nh
bXBsZS5nZXQoKSwgcmFuZ2UsICZyYXdTYW1wbGUpICE9IG5vRXJyIHx8ICFyYXdTYW1wbGUpCisg
ICAgICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1NhbXBsZSkgIT0g
bm9FcnIgfHwgIXJhd1NhbXBsZSkKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIHNh
bXBsZXMudW5jaGVja2VkQXBwZW5kKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKGFkb3B0Q0Yo
cmF3U2FtcGxlKS5nZXQoKSwgbV9pZCkpOwogICAgIH0KQEAgLTQzMiwyNCArNDM0LDI0IEBAIFJl
dGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBs
ZUJ1ZmZlckFuZFNldEFzRGlzcGxhCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAg
ICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24p
OworICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVG
b3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgJmZvcm1hdERl
c2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICBhdXRvIHJldGFpbmVkRm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0
aW9uKTsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgc3RhdHVzID0gQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAm
aXRlbUNvdW50KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CiAgICAgaWYgKHN0
YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1p
bmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNv
dW50KTsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7Cisg
ICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShz
YW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CiAgICAg
aWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBuZXdTYW1wbGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgZm9y
bWF0RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGVCdWZmZXIp
OworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24s
IHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAgIGlmIChzdGF0
dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDBiOWJiNjQ4NWYzZTll
MjUzNDVhYWQ0ZjRlNDcwOTJjNDI5YTVjYzguLjAyMTkyMTZkN2MyZDg4ZWY1Nzc1MjZkODgyMzBj
M2U1MDNmZDhjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yNTgsNyArMjU4LDYgQEAgLSAodm9pZClhdWRpb1Jl
bmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQ6KE5TTm90aWZpY2F0aW9uKilub3RlCiBAZW5k
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNwcmFnbWEg
bWFyayAtCiAjcHJhZ21hIG1hcmsgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMKQEAgLTI3Nyw3
ICsyNzYsNyBAQCBzdGF0aWMgdWludDY0X3QgbmV4dE1hcElEKCkKIAogc3RhdGljIHZvaWQgYnVm
ZmVyV2FzQ29uc3VtZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgY29uc3Qgdm9p
ZCogbGlzdGVuZXIsIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUsIGNvbnN0IHZvaWQqLCBD
RlR5cGVSZWYpCiB7Ci0gICAgaWYgKCFDRkVxdWFsKGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90
aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkKKyAgICBpZiAoIUNG
RXF1YWwoUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25z
dW1lZCwgbm90aWZpY2F0aW9uTmFtZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghaXNN
YWluVGhyZWFkKCkpIHsKQEAgLTMxNiw3ICszMTUsNyBAQCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2Jq
QwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAoIVtQQUw6OmdldEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3Rv
cjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhDb21wbGV0aW9uSGFuZGxlcjopXSkKLSAgICAg
ICAgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRlckdl
dERlZmF1bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQqPihtX21hcElEKSwg
YnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywga0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmlj
YXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIsIDApOworICAgICAgICBQQUw6OkNNTm90aWZp
Y2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1
bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQqPihtX21hcElEKSwgYnVmZmVy
V2FzQ29uc3VtZWRDYWxsYmFjaywgUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNh
dGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICBtX3BhcnNlci0+c2V0TG9nZ2VyKG1fbG9nZ2VyLmdldCgpLCBtX2xvZ0lkZW50
aWZpZXIpOwpAQCAtMzU0LDcgKzM1Myw3IEBAIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQogICAgIGNsZWFyVHJhY2tzKCk7CiAKICAgICBp
ZiAoIVtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNS
ZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhDb21wbGV0aW9uSGFu
ZGxlcjopXSkKLSAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihDTU5v
dGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCB0aGlzLCBidWZmZXJXYXND
b25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZm
ZXJDb25zdW1lZCwgbnVsbHB0cik7CisgICAgICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJS
ZW1vdmVMaXN0ZW5lcihQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2Vu
dGVyKCksIHRoaXMsIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIFBBTDo6a0NNU2FtcGxlQnVm
ZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIpOwogCiAgICAg
aWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkKICAgICAgICAgbV9oYXNTZXNzaW9uU2VtYXBob3Jl
LT5zaWduYWwoKTsKQEAgLTk5Myw3ICs5OTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcgog
CiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2Fs
bHlGbHVzaGVkKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqcmVuZGVyZXIsIGNvbnN0IENN
VGltZSYgdGltZSkKIHsKLSAgICBhdXRvIG1lZGlhVGltZSA9IHRvTWVkaWFUaW1lKHRpbWUpOwor
ICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZSh0aW1lKTsKICAgICBFUlJPUl9M
T0coTE9HSURFTlRJRklFUiwgbWVkaWFUaW1lKTsKICAgICBBdG9tU3RyaW5nIHRyYWNrSWQ7CiAg
ICAgZm9yIChhdXRvJiBwYWlyIDogbV9hdWRpb1JlbmRlcmVycykgewpAQCAtMTEwMSwxMyArMTEw
MCwxMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJl
ZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAgICAgYXV0byBsb2dTaXRlSWRlbnRpZmll
ciA9IExPR0lERU5USUZJRVI7CiAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAidHJh
Y2sgSUQgPSAiLCB0cmFja0lELCAiLCBzYW1wbGUgPSAiLCBzYW1wbGUuZ2V0KCkpOwogCi0gICAg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVy
R2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVy
KTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlcik7CiAgICAgQVNTRVJUKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAo
IWZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEVSUk9SX0xPRyhsb2dTaXRlSWRlbnRpZmll
ciwgIlJlY2VpdmVkIHNhbXBsZSB3aXRoIGEgbnVsbCBmb3JtYXREZXNjcmlwdGlvbi4gQmFpbGlu
Zy4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBhdXRvIG1lZGlhVHlwZSA9IENNRm9y
bWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGF1dG8g
bWVkaWFUeXBlID0gUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERl
c2NyaXB0aW9uKTsKIAogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCkg
ewogICAgICAgICAvLyBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciB3aWxsIHRocm93IGFuIHVu
LWRvY3VtZW50ZWQgZXhjZXB0aW9uIGlmIHBhc3NlZCBhIHNhbXBsZQpAQCAtMTEyMCw3ICsxMTE5
LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8
TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAogICAgICAgICB9CiAKICAgICAgICAgYXV0byBw
bGF5ZXIgPSB0aGlzLT5wbGF5ZXIoKTsKLSAgICAgICAgRmxvYXRTaXplIGZvcm1hdFNpemUgPSBG
bG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9u
cyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgICAgICBGbG9hdFNpemUgZm9y
bWF0U2l6ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNl
bnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKICAgICAg
ICAgaWYgKCFtX2NhY2hlZFNpemUgfHwgZm9ybWF0U2l6ZSAhPSBtX2NhY2hlZFNpemUudmFsdWUo
KSkgewogICAgICAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic2l6ZSBjaGFu
Z2VkIHRvICIsIGZvcm1hdFNpemUpOwogICAgICAgICAgICAgYm9vbCBzaXplV2FzTnVsbCA9ICFt
X2NhY2hlZFNpemU7CkBAIC0xMTQ2LDkgKzExNDUsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0
CiAKICAgICAgICAgICAgIGlmICghaGF2ZVByZXJvbGxEZWNvZGVXaXRoQ29tcGxldGlvbkhhbmRs
ZXIpIHsKICAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVDb3B5Owot
ICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsICZyYXdTYW1wbGVDb3B5
KTsKKyAgICAgICAgICAgICAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsICZyYXdT
YW1wbGVDb3B5KTsKICAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUNvcHkgPSBhZG9wdENGKHJh
d1NhbXBsZUNvcHkpOwotICAgICAgICAgICAgICAgIENNU2V0QXR0YWNobWVudChzYW1wbGVDb3B5
LmdldCgpLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRpb25XaGVu
Q29uc3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9fYnJpZGdlIE5TU3RyaW5n
ICopa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hlbkNvbnN1
bWVkIDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9wYWdhdGUpOworICAg
ICAgICAgICAgICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUNvcHkuZ2V0KCksIFBBTDo6
a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hlbkNvbnN1bWVk
LCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7IChfX2JyaWRnZSBOU1N0cmluZyAqKVBBTDo6
a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hlbkNvbnN1bWVk
IDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9wYWdhdGUpOwogICAgICAg
ICAgICAgICAgIFttX2Rpc3BsYXlMYXllciBlbnF1ZXVlU2FtcGxlQnVmZmVyOnNhbXBsZUNvcHku
Z2V0KCldOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgICAgICAgICAgcGxheWVy
LT5zZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHRydWUpOwpAQCAtMTI5OCwxNCArMTI5NywxNCBA
QCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlG
b3JNb3JlU2FtcGxlcyhjb25zdCBBdG9tUwogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6Y2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5n
JiB0cmFja0lEU3RyaW5nKSBjb25zdAogewogICAgIHJldHVybiBwYXJzZUludGVnZXJBbGxvd2lu
Z1RyYWlsaW5nSnVuazx1aW50NjRfdD4odHJhY2tJRFN0cmluZykudmFsdWVfb3IoMCkgPT0gbV9l
bmFibGVkVmlkZW9UcmFja0lECi0gICAgICAgICYmIFtnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGV4cGVjdE1p
bmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6KV07CisgICAgICAgICYm
IFtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNw
b25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVy
UHJlc2VudGF0aW9uVGltZTopXTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6c2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiB0
cmFja0lEU3RyaW5nLCBjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRpbWUpCiB7CiAgICAg
QVNTRVJUKGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJhY2tJRFN0cmlu
ZykpOwogICAgIGlmIChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKHRyYWNr
SURTdHJpbmcpKQotICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZXhwZWN0TWluaW11bVVwY29taW5n
U2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTp0b0NNVGltZShwcmVzZW50YXRpb25UaW1lKV07
CisgICAgICAgIFttX2Rpc3BsYXlMYXllciBleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZm
ZXJQcmVzZW50YXRpb25UaW1lOlBBTDo6dG9DTVRpbWUocHJlc2VudGF0aW9uVGltZSldOwogfQog
CiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjbGVhck1pbmltdW1VcGNvbWluZ1By
ZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRFN0cmluZykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBh
cnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291
cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5kZXggZTZkZmNiMzQ5NmY5MmQyYWEyMWY4NzY4NDY0
ODA4YjE2MWQ1Nzc2Yi4uYjVkOGY1MzZhMjA3OGY5NGU0NGRhYzcxODM1NzEzNTg4ZGY0MzE4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNl
QnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAgLTI1OCw4ICsyNTgsNiBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjpTdGF0ZT4gewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7Ci0KIHN0YXRpYyBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgeyByZXR1cm4gTG9nTWVk
aWE7IH0KIHN0YXRpYyBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJldHVybiAiU291cmNl
QnVmZmVyUGFyc2VyV2ViTSI7IH0KIApAQCAtMTA1Nyw3ICsxMDU1LDcgQEAgd2VibTo6U3RhdHVz
IFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJhbWUoY29uc3QgRnJhbWVNZXRhZGF0YSYgbWV0
YWRhdGEsIFJlYWQKICAgICAgICAgcmV0dXJuIFNraXAocmVhZGVyLCBieXRlc1JlbWFpbmluZyk7
CiAgICAgfQogCi0gICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZyYW1lRGF0YSgqcmVhZGVy
LCBtZXRhZGF0YSwgYnl0ZXNSZW1haW5pbmcsIENNVGltZU1ha2UoYmxvY2stPnRpbWVjb2RlICsg
bV9jdXJyZW50VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9mcmFtZXMpOworICAg
IHJldHVybiB0cmFja0RhdGEtPmNvbnN1bWVGcmFtZURhdGEoKnJlYWRlciwgbWV0YWRhdGEsIGJ5
dGVzUmVtYWluaW5nLCBQQUw6OkNNVGltZU1ha2UoYmxvY2stPnRpbWVjb2RlICsgbV9jdXJyZW50
VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9mcmFtZXMpOwogfQogCiB2b2lkIFNv
dXJjZUJ1ZmZlclBhcnNlcldlYk06OnByb3ZpZGVNZWRpYURhdGEoUmV0YWluUHRyPENNU2FtcGxl
QnVmZmVyUmVmPiBzYW1wbGVCdWZmZXIsIHVpbnQ2NF90IHRyYWNrSUQsIHN0ZDo6b3B0aW9uYWw8
c2l6ZV90PiBieXRlUmFuZ2VPZmZzZXQpCkBAIC0xMDgxLDcgKzEwNzksNyBAQCB3ZWJtOjpTdGF0
dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURh
dGEod2VibTo6UmVhZAogICAgIENNQmxvY2tCdWZmZXJSZWYgcmF3QmxvY2tCdWZmZXIgPSBudWxs
cHRyOwogCiAgICAgaWYgKCFtX2N1cnJlbnRCbG9ja0J1ZmZlcikgewotICAgICAgICBhdXRvIGVy
ciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwg
MCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKKyAgICAgICAgYXV0byBlcnIg
PSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVm
YXVsdCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0
ciwgMCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKICAgICAgICAgaWYgKGVy
cikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1
ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAg
ICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CkBAIC0xMDkwLDcg
KzEwODgsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgICAgICBtX2N1cnJlbnRCbG9j
a0J1ZmZlciA9IGFkb3B0Q0YocmF3QmxvY2tCdWZmZXIpOwogICAgICAgICBtX2N1cnJlbnRCbG9j
a0J1ZmZlclBvc2l0aW9uID0gMDsKIAotICAgICAgICBlcnIgPSBDTUJsb2NrQnVmZmVyQXNzdXJl
QmxvY2tNZW1vcnkobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOworICAgICAgICBlcnIgPSBQ
QUw6OkNNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRCbG9ja0J1ZmZlci5n
ZXQoKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1Jf
SUZfUE9TU0lCTEUoIkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRp
b25zIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZy
ZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKQEAgLTExMDEsNyArMTA5OSw3IEBAIHdlYm06OlN0YXR1
cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0
YSh3ZWJtOjpSZWFkCiAgICAgd2hpbGUgKGJ5dGVzVG9SZWFkKSB7CiAgICAgICAgIHNpemVfdCBz
ZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwogICAgICAgICB1aW50OF90KiBibG9ja0J1ZmZlckRh
dGEgPSBudWxscHRyOwotICAgICAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZmZXJHZXREYXRhUG9p
bnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3Np
dGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZm
ZXJEYXRhKTsKKyAgICAgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhUG9p
bnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3Np
dGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZm
ZXJEYXRhKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJP
Ul9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyIGZhaWxlZCB3aXRoIGVy
cm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWlu
aW5nKTsKQEAgLTExMzUsNyArMTEzMyw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6
VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAjaWYg
RU5BQkxFKFZQOSkKICAgICB1aW50OF90KiBibG9ja0J1ZmZlckRhdGEgPSBudWxscHRyOwogICAg
IHNpemVfdCBzZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwotICAgIGF1dG8gZXJyID0gQ01CbG9j
a0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCAwLCAmc2Vn
bWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOwor
ICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJyZW50
QmxvY2tCdWZmZXIuZ2V0KCksIDAsICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChj
aGFyKiopJmJsb2NrQnVmZmVyRGF0YSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBQQVJTRVJf
TE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIgZmFpbGVk
IHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICByZXR1cm47CkBAIC0xMTc5LDkgKzExNzcsOSBA
QCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1w
bGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogICAgICAgICBkdXJhdGlvbiA9IHRyYWNrLmRlZmF1
bHRfZHVyYXRpb24udmFsdWUoKSAqIHByZXNlbnRhdGlvblRpbWUudGltZXNjYWxlIC8gMTAwMDAw
MDAwMDsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9IG51bGxwdHI7
Ci0gICAgc2l6ZV90IGZyYW1lU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fY3Vy
cmVudEJsb2NrQnVmZmVyLmdldCgpKTsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nID0g
eyBDTVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRpbWVzY2FsZSksIHByZXNl
bnRhdGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKLSAgICBlcnIgPSBDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJsb2NrQnVmZmVyLmdl
dCgpLCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVDb3VudCwgMSwgJnRp
bWluZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CisgICAgc2l6ZV90IGZyYW1l
U2l6ZSA9IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9jdXJyZW50QmxvY2tCdWZm
ZXIuZ2V0KCkpOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmcgPSB7IFBBTDo6Q01UaW1l
TWFrZShkdXJhdGlvbiwgcHJlc2VudGF0aW9uVGltZS50aW1lc2NhbGUpLCBwcmVzZW50YXRpb25U
aW1lLCBwcmVzZW50YXRpb25UaW1lIH07CisgICAgZXJyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgp
LCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVDb3VudCwgMSwgJnRpbWlu
ZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAg
ICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5IGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTE5MSw3
ICsxMTg5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6
Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICBtX2N1cnJlbnRCbG9ja0J1
ZmZlciA9IG51bGxwdHI7CiAgICAgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3NpdGlvbiA9IDA7CiAK
LSAgICBhdXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFj
aG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKKyAgICBhdXRvIGF0dGFjaG1l
bnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShz
YW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOwogICAgIEFTU0VSVChhdHRhY2htZW50c0FycmF5KTsK
ICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9J
Rl9QT1NTSUJMRSgiQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5IHJldHVy
bmVkIE5VTEwiKTsKQEAgLTEyMDEsNyArMTE5OSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2Vy
V2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHBy
CiAgICAgaWYgKCFpc0tleSkgewogICAgICAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0g
Q0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsraSkgewogICAg
ICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2Zf
Y2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFj
aG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFj
aG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMsIGtDRkJvb2xlYW5UcnVlKTsK
KyAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNh
bXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYywga0NGQm9vbGVhblRydWUpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC0xMjgyLDEyICsxMjgwLDEyIEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAg
ICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CiAgICAgICAg
IH0KIAotICAgICAgICBhdXRvIHN0cmVhbURlc2NyaXB0aW9uID0gQ01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSk7
CisgICAgICAgIGF1dG8gc3RyZWFtRGVzY3JpcHRpb24gPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24oZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCkp
OwogICAgICAgICBpZiAoIXN0cmVhbURlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICBQQVJTRVJf
TE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uIGZhaWxlZCIpOwogICAgICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRl
ciwgYnl0ZXNSZW1haW5pbmcpOwogICAgICAgICB9Ci0gICAgICAgIG1fcGFja2V0RHVyYXRpb24g
PSBDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFja2V0LCBzdHJlYW1E
ZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOworICAgICAgICBtX3BhY2tldER1cmF0aW9uID0gUEFM
OjpDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFja2V0LCBzdHJlYW1E
ZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOwogCiAgICAgICAgIHNldEZvcm1hdERlc2NyaXB0aW9u
KFdURk1vdmUoZm9ybWF0RGVzY3JpcHRpb24pKTsKICAgICB9IGVsc2UgaWYgKGNvZGVjKCkgPT0g
Q29kZWNUeXBlOjpPcHVzKSB7CkBAIC0xMzA5LDcgKzEzMDcsNyBAQCB3ZWJtOjpTdGF0dXMgU291
cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2Vi
bTo6UmVhZAogICAgIG1fY3VycmVudFBhY2tldEJ5dGVPZmZzZXQgPSBzdGQ6Om51bGxvcHQ7CiAg
ICAgbV9jdXJyZW50UGFja2V0U2l6ZSA9IHN0ZDo6bnVsbG9wdDsKIAotICAgIGF1dG8gc2FtcGxl
RHVyYXRpb24gPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZVN1YnRyYWN0KHByZXNlbnRhdGlvblRp
bWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgQ01UaW1lR2V0U2Vjb25kcyhtX3BhY2tl
dER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OworICAgIGF1dG8gc2FtcGxlRHVyYXRpb24gPSBQQUw6
OkNNVGltZUdldFNlY29uZHMoUEFMOjpDTVRpbWVTdWJ0cmFjdChwcmVzZW50YXRpb25UaW1lLCBt
X3NhbXBsZVByZXNlbnRhdGlvblRpbWUpKSArIFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhtX3BhY2tl
dER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OwogICAgIGlmIChzYW1wbGVEdXJhdGlvbiA+PSBtX21p
bmltdW1TYW1wbGVEdXJhdGlvbikKICAgICAgICAgY3JlYXRlU2FtcGxlQnVmZmVyKG1ldGFkYXRh
LnBvc2l0aW9uKTsKIApAQCAtMTMyNCwyMSArMTMyMiwyMSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBh
cnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoc3RkOjpvcHRpb25h
bDxzaQogICAgIEFTU0VSVCghbV9wYWNrZXREYXRhLmlzRW1wdHkoKSk7CiAKICAgICBDTUJsb2Nr
QnVmZmVyUmVmIGJsb2NrQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVyciA9IENNQmxvY2tC
dWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwg
bV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIs
IDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9y
eU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CisgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbV9w
YWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAs
IG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5v
d0ZsYWcsICZibG9ja0J1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAgICBQQVJTRVJfTE9H
X0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZh
aWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIGJ1
ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgZXJyID0gQ01CbG9ja0J1ZmZlclJl
cGxhY2VEYXRhQnl0ZXMobV9wYWNrZXREYXRhLmRhdGEoKSwgYnVmZmVyLmdldCgpLCAwLCBtX3Bh
Y2tldERhdGEuc2l6ZUluQnl0ZXMoKSk7CisgICAgZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyUmVw
bGFjZURhdGFCeXRlcyhtX3BhY2tldERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0KCksIDAsIG1fcGFj
a2V0RGF0YS5zaXplSW5CeXRlcygpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9M
T0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIGZhaWxl
ZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIENNU2FtcGxl
QnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgZXJyID0gQ01BdWRpb1Nh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIG1fcGFja2V0
RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lLCBtX3BhY2tldERl
c2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOworICAgIGVyciA9IFBBTDo6Q01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIG1f
cGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lLCBtX3Bh
Y2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOwogICAgIGlmIChlcnIp
IHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb1NhbXBsZUJ1
ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCmluZGV4IGU5Zjg2ZGVhNDM4ZTg5
NWU2M2RiZGUwN2M0ZDk1ZjliNWFlZjE4Y2MuLmFhNzM2Y2YxNDlhNDc0YmEyNjNjYWFjZDY2NDJk
ZTc4Zjc3ODg3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCkBAIC00Nyw3ICs0Nyw2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVz
cGFjZSB3ZWJtOwogCiBWUDlUZXN0aW5nT3ZlcnJpZGVzJiBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpz
aW5nbGV0b24oKQpAQCAtMzYyLDExICszNjEsMTEgQEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZl
cnRUb0NNQ29sb3JQcmltYXJpZXModWludDhfdCBwcmltYXJpZXMpCiAgICAgY2FzZSBWUENvbmZp
Z3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfU1RfMjQwOgogICAgICAgICByZXR1cm4ga0NW
SW1hZ2VCdWZmZXJDb2xvclByaW1hcmllc19TTVBURV9DOwogICAgIGNhc2UgVlBDb25maWd1cmF0
aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX1JQXzQzMV8yOgotICAgICAgICByZXR1cm4ga0NNRm9y
bWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7CisgICAgICAgIHJldHVybiBQQUw6
OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzOwogICAgIGNhc2UgVlBD
b25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX0VHXzQzMl8xOgotICAgICAgICByZXR1
cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjU7CisgICAgICAgIHJl
dHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1OwogICAg
IGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OkJUXzIwMjBfTm9uY29uc3RhbnRf
THVtaW5hbmNlOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1h
cmllc19JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CiAgICAgfQogCiAgICAgcmV0dXJuIG51bGxwdHI7
CkBAIC00MjAsMTggKzQxOSwxOCBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRvQ01UcmFu
c2ZlckZ1bmN0aW9uKHVpbnQ4X3QgY2hhcmFjdGVyaXN0aWNzKQogICAgIGNhc2UgVlBDb25maWd1
cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OlNNUFRFX1NUXzI0MDoKICAgICAgICAgcmV0
dXJuIGtDVkltYWdlQnVmZmVyVHJhbnNmZXJGdW5jdGlvbl9TTVBURV8yNDBNXzE5OTU7CiAgICAg
Y2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfMjA4
NDoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9T
TVBURV9TVF8yMDg0X1BROworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUTsKICAgICBjYXNlIFZQQ29uZmlndXJh
dGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpCVF8yMDIwXzEwYml0OgogICAgIGNhc2UgVlBD
b25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBfMTJiaXQ6Ci0gICAg
ICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAy
MDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0lUVV9SXzIwMjA7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3Rl
cmlzdGljczo6U01QVEVfU1RfNDI4XzE6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzE7CisgICAgICAgIHJldHVybiBQQUw6
OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMTsKICAg
ICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpCVF8yMTAwX0hM
RzoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9J
VFVfUl8yMTAwX0hMRzsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9u
VHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OklFQ182MTk2Nl8yXzE6Ci0gICAgICAgIHJldHVybiBj
YW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JH
QigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9zUkdCKCkgOiBudWxscHRyOworICAgICAgICByZXR1cm4gUEFMOjpjYW5Mb2FkX0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpID8gUEFMOjpn
ZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkg
OiBudWxscHRyOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3Rp
Y3M6OkxpbmVhcjoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9MaW5lYXI7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CiAgICAgfQogCiAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC00NjcsNyArNDY2LDcgQEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZlcnRUb0NNWUNiQ1JNYXRy
aXgodWludDhfdCBjb2VmZmljaWVudHMpCiB7CiAgICAgc3dpdGNoIChjb2VmZmljaWVudHMpIHsK
ICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfMjAyMF9Ob25j
b25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbllD
YkNyTWF0cml4X0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2Ny
aXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1h
dHJpeENvZWZmaWNpZW50czo6QlRfNDcwXzdfQkc6CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25N
YXRyaXhDb2VmZmljaWVudHM6OkJUXzYwMV83OgogICAgICAgICByZXR1cm4ga0NWSW1hZ2VCdWZm
ZXJZQ2JDck1hdHJpeF9JVFVfUl82MDFfNDsKQEAgLTU0MywxMSArNTQyLDExIEBAIHN0YXRpYyBS
ZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlRm9ybWF0RGVzY3JpcHRpb25G
cm9tVlBDb2RlY0NvbmZpCiAgICAgQ0ZUeXBlUmVmIGNvbmZpZ3VyYXRpb25WYWx1ZXNbXSA9IHsg
ZGF0YS5nZXQoKSB9OwogICAgIGF1dG8gY29uZmlndXJhdGlvbkRpY3QgPSBhZG9wdENGKENGRGlj
dGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb25maWd1cmF0aW9uS2V5cywgY29u
ZmlndXJhdGlvblZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChjb25maWd1cmF0aW9uS2V5cyksICZr
Q0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxs
QmFja3MpKTsKIAotICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNLZXlzIHsga0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcyB9
OworICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNLZXlzIHsgUEFMOjprQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zIH07CiAg
ICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc1ZhbHVlcyA9IHsgY29uZmlndXJhdGlvbkRp
Y3QuZ2V0KCkgfTsKIAogICAgIGlmIChyZWNvcmQudmlkZW9GdWxsUmFuZ2VGbGFnID09IFZQQ29u
ZmlndXJhdGlvblJhbmdlOjpGdWxsUmFuZ2UpIHsKLSAgICAgICAgZXh0ZW5zaW9uc0tleXMuYXBw
ZW5kKGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvKTsKKyAgICAg
ICAgZXh0ZW5zaW9uc0tleXMuYXBwZW5kKFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fRnVsbFJhbmdlVmlkZW8pOwogICAgICAgICBleHRlbnNpb25zVmFsdWVzLmFwcGVuZChrQ0ZC
b29sZWFuVHJ1ZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b24ubW0KaW5kZXggY2VhMTU2YWUyZmJlMjVhZGEwMDc2NjhlOTFkNTBlNTYxYzY0MmU0ZS4uN2I1
MzhiMWU5OGVmODk5NTVlZWU4Zjc5ODRhNTM3MDBlMTkzN2I3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQpAQCAtNDMsOSArNDMsMTEgQEAKICNpbXBvcnQgIkNv
cmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgogCi11
c2luZyBuYW1lc3BhY2UgUEFMOwotCi1XVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxl
QnVmZmVyKTsKKy8vIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOwor
dGVtcGxhdGUgPD4KK3N0cnVjdCBXVEY6OkNGVHlwZVRyYWl0PENNU2FtcGxlQnVmZmVyUmVmPiB7
CisgICAgc3RhdGljIGlubGluZSBDRlR5cGVJRCB0eXBlSUQodm9pZCkgeyByZXR1cm4gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFR5cGVJRCgpOyB9Cit9OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTcyLDcgKzc0LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNldFRp
bWViYXNlKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNlUmVtb3ZlVGltZXJEaXNwYXRjaFNvdXJj
ZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgUEFMOjpD
TVRpbWViYXNlUmVtb3ZlVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3Rp
bWVyU291cmNlLmdldCgpKTsKIAogICAgIG1fdGltZWJhc2UgPSB0aW1lYmFzZTsKIApAQCAtODQs
NyArODYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c2V0VGltZWJhc2Uo
Q01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgZGlz
cGF0Y2hfYWN0aXZhdGUobV90aW1lclNvdXJjZS5nZXQoKSk7CiAgICAgICAgIH0KLSAgICAgICAg
Q01UaW1lYmFzZUFkZFRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1l
clNvdXJjZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZUFkZFRpbWVyRGlzcGF0Y2hT
b3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAgICAgfQogfQog
CkBAIC0xMDQsMTIgKzEwNiwxMiBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
bWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKQogdm9pZCBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVy
LCBib29sIGRpc3BsYXlpbmcpCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAg
ICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2Ft
cGxlQnVmZmVyLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIDAs
IG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8Q01T
YW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdy
b3coaXRlbUNvdW50KTsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5k
YXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZv
QXJyYXkuZGF0YSgpLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ01CdWZm
ZXJDYWxsYmFja3MgY29udGFpbnMgNjQtYml0IHBvaW50ZXJzIHRoYXQgYXJlbid0IDgtYnl0ZSBh
bGlnbmVkLiBUbyBzdXBwcmVzcyB0aGUgbGlua2VyCkBAIC0xMzQsNyArMTM2LDcgQEAgdm9pZCBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlQnVmZmVyLAogICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihjYWxsYmFja3Mu
Y2FsbGJhY2tzLnZlcnNpb24pID09IHNpemVvZih1aW50MzJfdCksICJWZXJzaW9uIGZpZWxkIG11
c3QgYmUgNCBieXRlcyIpOwogICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoQnVmZmVyQ2Fs
bGJhY2tzKSA9PSA0LCAiQ01CdWZmZXJDYWxsYmFja3Mgc3RydWN0IG11c3QgaGF2ZSA0IGJ5dGUg
YWxpZ25tZW50Iik7CiAKLSAgICAgICAgQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVl
KTsKKyAgICAgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGtNYXhpbXVtQ2FwYWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOwogICAg
ICAgICBtX3Byb2R1Y2VyUXVldWUgPSBhZG9wdENGKG91dFF1ZXVlKTsKICAgICB9CiAKQEAgLTE1
Niw3ICsxNTgsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNh
bXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsCiAgICAgICAgIHN0YXRpY19hc3Nl
cnQoc2l6ZW9mKGNhbGxiYWNrcy5jYWxsYmFja3MudmVyc2lvbikgPT0gc2l6ZW9mKHVpbnQzMl90
KSwgIlZlcnNpb24gZmllbGQgbXVzdCBiZSA0IGJ5dGVzIik7CiAgICAgICAgIHN0YXRpY19hc3Nl
cnQoYWxpZ25vZihCdWZmZXJDYWxsYmFja3MpID09IDQsICJDTUJ1ZmZlckNhbGxiYWNrcyBzdHJ1
Y3QgYWxpZ25tZW50IG11c3QgYmUgNCIpOwogCi0gICAgICAgIENNQnVmZmVyUXVldWVDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFj
a3MsICZvdXRRdWV1ZSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91
dFF1ZXVlKTsKICAgICAgICAgbV9jb25zdW1lclF1ZXVlID0gYWRvcHRDRihvdXRRdWV1ZSk7CiAg
ICAgfQogCkBAIC0xNzcsMjAgKzE3OSwyMCBAQCBib29sIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6c2hvdWxkRGVjb2RlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYgogICAg
IGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBhdXRvIGN1cnJl
bnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSk7Ci0gICAgYXV0byBw
cmVzZW50YXRpb25TdGFydFRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVT
dGFtcChzYW1wbGUpOwotICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0
aW9uKHNhbXBsZSk7Ci0gICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gQ01UaW1lQWRkKHBy
ZXNlbnRhdGlvblN0YXJ0VGltZSwgZHVyYXRpb24pOwotICAgIGlmIChDTVRpbWVDb21wYXJlKHBy
ZXNlbnRhdGlvbkVuZFRpbWUsIGN1cnJlbnRUaW1lKSA+PSAwKQorICAgIGF1dG8gY3VycmVudFRp
bWUgPSBQQUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpOworICAgIGF1dG8g
cHJlc2VudGF0aW9uU3RhcnRUaW1lID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlv
blRpbWVTdGFtcChzYW1wbGUpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBQ
QUw6OkNNVGltZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9uKTsKKyAgICBpZiAo
UEFMOjpDTVRpbWVDb21wYXJlKHByZXNlbnRhdGlvbkVuZFRpbWUsIGN1cnJlbnRUaW1lKSA+PSAw
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7Cisg
ICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVB
dHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgZm9yIChDRkluZGV4IGluZGV4ID0gMCwgY291bnQg
PSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHMpOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7
CiAgICAgICAgIENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCA9IChDRkRpY3Rpb25hcnlS
ZWYpQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50cywgaW5kZXgpOwotICAgICAgICBD
RkJvb2xlYW5SZWYgZGVwZW5kZWRPbiA9IChDRkJvb2xlYW5SZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFs
dWUoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlP
dGhlcnMpOworICAgICAgICBDRkJvb2xlYW5SZWYgZGVwZW5kZWRPbiA9IChDRkJvb2xlYW5SZWYp
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0YWNobWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNo
bWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycyk7CiAgICAgICAgIGlmIChkZXBlbmRlZE9uICYm
ICFDRkJvb2xlYW5HZXRWYWx1ZShkZXBlbmRlZE9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkBAIC0yMDMsMTQgKzIwNSwxNCBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5zdXJlRGVjb21wcmVzc2lvblNlc3Npb25Gb3JTYW1wbGUoQ01TYW1wbGVCdQog
ICAgIGlmIChpc0ludmFsaWRhdGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOworICAgIENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKHNhbXBsZSk7CiAgICAgaWYgKG1fZGVjb21wcmVzc2lvblNlc3Npb24g
JiYgIVZURGVjb21wcmVzc2lvblNlc3Npb25DYW5BY2NlcHRGb3JtYXREZXNjcmlwdGlvbihtX2Rl
Y29tcHJlc3Npb25TZXNzaW9uLmdldCgpLCB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uKSkgewogICAg
ICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcyhtX2Rl
Y29tcHJlc3Npb25TZXNzaW9uLmdldCgpKTsKICAgICAgICAgbV9kZWNvbXByZXNzaW9uU2Vzc2lv
biA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKCFtX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7
Ci0gICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0
aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOworICAgICAg
ICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOwogICAgICAgICBh
dXRvIHZpZGVvRGVjb2RlclNwZWNpZmljYXRpb24gPSBAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilr
VlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRl
b0RlY29kZXI6IEAoIG1faGFyZHdhcmVEZWNvZGVyRW5hYmxlZCApIH07CiAKICAgICAgICAgTlNE
aWN0aW9uYXJ5ICphdHRyaWJ1dGVzOwpAQCAtMjU2LDcgKzI1OCw3IEBAIHZvaWQgV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpkZWNvZGVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
LCBib29sIGRpCiAKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpOwogICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZVdpdGhPdXRwdXRI
YW5kbGVyKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCksIHNhbXBsZSwgZmxhZ3MsIG51bGxw
dHIsIFt0aGlzLCBkaXNwbGF5aW5nLCBzdGFydFRpbWVdKE9TU3RhdHVzIHN0YXR1cywgVlREZWNv
ZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVRp
bWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUgcHJlc2VudGF0aW9uRHVyYXRpb24pIHsK
LSAgICAgICAgZG91YmxlIGRlbHRhUmF0aW8gPSAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFy
dFRpbWUpLnNlY29uZHMoKSAvIENNVGltZUdldFNlY29uZHMocHJlc2VudGF0aW9uRHVyYXRpb24p
OworICAgICAgICBkb3VibGUgZGVsdGFSYXRpbyA9IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0
YXJ0VGltZSkuc2Vjb25kcygpIC8gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKHByZXNlbnRhdGlvbkR1
cmF0aW9uKTsKIAogICAgICAgICB1cGRhdGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MoZGVs
dGFSYXRpbyk7CiAgICAgICAgIGhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoZGlzcGxheWluZywg
c3RhdHVzLCBpbmZvRmxhZ3MsIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIHBy
ZXNlbnRhdGlvbkR1cmF0aW9uKTsKQEAgLTI4OSw3ICsyOTEsNyBAQCB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlp
bmcsIE9TUwogICAgICAgICArK21fZHJvcHBlZFZpZGVvRnJhbWVzOwogCiAgICAgQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIHJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24gPSBudWxscHRyOwot
ICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgbm9FcnIgIT0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZm
ZXIsICZyYXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uKSkgeworICAgIGlmIChzdGF0dXMgIT0gbm9F
cnIgfHwgbm9FcnIgIT0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFn
ZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgJnJhd0ltYWdlQnVm
ZmVyRGVzY3JpcHRpb24pKSB7CiAgICAgICAgICsrbV9jb3JydXB0ZWRWaWRlb0ZyYW1lczsKICAg
ICAgICAgLS1tX2ZyYW1lc0JlaW5nRGVjb2RlZDsKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZv
ck1vcmVNZWRpYURhdGEoKTsKQEAgLTMwNCw3ICszMDYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlpbmcs
IE9TUwogICAgIH07CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdJbWFnZVNhbXBsZUJ1ZmZl
ciA9IG51bGxwdHI7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlX
aXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsIGltYWdl
QnVmZmVyRGVzY3JpcHRpb24uZ2V0KCksICZpbWFnZUJ1ZmZlclRpbWluZywgJnJhd0ltYWdlU2Ft
cGxlQnVmZmVyKSkgeworICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIs
IGltYWdlQnVmZmVyRGVzY3JpcHRpb24uZ2V0KCksICZpbWFnZUJ1ZmZlclRpbWluZywgJnJhd0lt
YWdlU2FtcGxlQnVmZmVyKSkgewogICAgICAgICArK21fY29ycnVwdGVkVmlkZW9GcmFtZXM7CiAg
ICAgICAgIC0tbV9mcmFtZXNCZWluZ0RlY29kZWQ7CiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlG
b3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMTgsMTEgKzMyMCwxMSBAQCB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlp
bmcsIE9TUwogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjpnZXRGaXJzdFZpZGVvRnJhbWUoKQogewotICAgIGlmICghbV9wcm9kdWNlclF1
ZXVlIHx8IENNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpCisgICAg
aWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJldGFpblB0
cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9j
YXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKSk7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGlt
YWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihjdXJyZW50U2FtcGxlLmdldCgpKTsKKyAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJl
Zj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKSk7CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENW
UGl4ZWxCdWZmZXJSZWYpUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRT
YW1wbGUuZ2V0KCkpOwogICAgIEFTU0VSVChDRkdldFR5cGVJRChpbWFnZUJ1ZmZlci5nZXQoKSkg
PT0gQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJRCgpKTsKIAogICAgIG1heWJlQmVjb21lUmVhZHlGb3JN
b3JlTWVkaWFEYXRhKCk7CkBAIC0zMzUsMjUgKzMzNywyNSBAQCB2b2lkIFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSgpCiAgICAgaWYgKCFtX3RpbWViYXNlKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGlt
ZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKKyAgICBhdXRvIHRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOwogICAg
IExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1
ZSglcCkgLSBwdXJnaW5nIGFsbCBzYW1wbGVzIGJlZm9yZSB0aW1lKCVzKSIsIHRoaXMsIHRvU3Ry
aW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgTWVkaWFUaW1lIG5leHRGaXJlVGltZSA9
IE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKICAgICBib29sIHJlbGVhc2VkSW1h
Z2VCdWZmZXJzID0gZmFsc2U7CiAKLSAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RT
YW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVH
ZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1lZGlhVGltZSBwcmVz
ZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJl
c2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1lZGlhVGltZSBkdXJh
dGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNh
bXBsZSkpOworICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNr
ZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZCht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9u
VGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlhVGltZSBkdXJhdGlv
biA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0
U2FtcGxlKSk7CiAgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPSBw
cmVzZW50YXRpb25UaW1lc3RhbXAgKyBkdXJhdGlvbjsKICAgICAgICAgaWYgKHRpbWUgPiBwcmVz
ZW50YXRpb25FbmRUaW1lc3RhbXApIHsKLSAgICAgICAgICAgIENGUmVsZWFzZShDTUJ1ZmZlclF1
ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAg
IENGUmVsZWFzZShQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSB0cnVlOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogI2lmICFMT0dfRElTQUJMRUQKLSAg
ICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0
UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgICAgICBh
dXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBiZWdpbiA9
IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25U
aW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgIGF1dG8gZW5kID0gUEFM
Ojp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3Rh
bXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSglcCkgLSBxdWV1ZSglcyAtPiAl
cykiLCB0aGlzLCB0b1N0cmluZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51
dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCkBAIC0zNjUsNyArMzY3LDcgQEAgdm9pZCBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoKQogICAgICAgICBtYXliZUJl
Y29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwogCiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHF1ZXVlIGVtcHR5Iiwg
dGhpcyk7Ci0gICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUo
bV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0b0NNVGltZShuZXh0
RmlyZVRpbWUpLCAwKTsKKyAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNl
TmV4dEZpcmVUaW1lKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCksIFBBTDo6
dG9DTVRpbWUobmV4dEZpcmVUaW1lKSwgMCk7CiB9CiAKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUs
IGJvb2wgZGlzcGxheWluZykKQEAgLTM4MywxNyArMzg1LDE3IEBAIHZvaWQgV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGUsCiAgICAgYm9vbCBzaG91bGROb3RpZnkgPSB0cnVlOwogCiAgICAgaWYgKGRpc3BsYXlp
bmcgJiYgbV90aW1lYmFzZSkgewotICAgICAgICBhdXRvIGN1cnJlbnRSYXRlID0gQ01UaW1lYmFz
ZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7Ci0gICAgICAgIGF1dG8gY3VycmVudFRpbWUgPSBQ
QUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKLSAg
ICAgICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2Ft
cGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOwotICAgICAgICBhdXRv
IHByZXNlbnRhdGlvbkVuZFRpbWUgPSBwcmVzZW50YXRpb25TdGFydFRpbWUgKyBQQUw6OnRvTWVk
aWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKSk7CisgICAgICAgIGF1dG8g
Y3VycmVudFJhdGUgPSBQQUw6OkNNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOwor
ICAgICAgICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJh
c2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBwcmVzZW50YXRpb25T
dGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50
YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7CisgICAgICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGlt
ZSA9IHByZXNlbnRhdGlvblN0YXJ0VGltZSArIFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSkpOwogICAgICAgICBpZiAoY3VycmVudFRpbWUgPCBw
cmVzZW50YXRpb25TdGFydFRpbWUgfHwgY3VycmVudFRpbWUgPj0gcHJlc2VudGF0aW9uRW5kVGlt
ZSkKICAgICAgICAgICAgIHNob3VsZE5vdGlmeSA9IGZhbHNlOwogCiAgICAgICAgIGlmIChjdXJy
ZW50UmF0ZSA+IDAgJiYgcHJlc2VudGF0aW9uRW5kVGltZSA8IGN1cnJlbnRUaW1lKSB7CiAjaWYg
IUxPR19ESVNBQkxFRAotICAgICAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUo
Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOwotICAgICAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVm
ZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSk7CisgICAgICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVm
ZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKTsKKyAgICAgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVm
ZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSk7CiAgICAgICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmVucXVldWVEZWNvZGVkU2FtcGxlKCVwKSAtIGRyb3BwaW5nIGZyYW1lIGxhdGUgYnkgJXMsIGZy
YW1lc0JlaW5nRGVjb2RlZCglZCksIHByb2R1Y2VyUXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9T
dHJpbmcocHJlc2VudGF0aW9uRW5kVGltZSAtIGN1cnJlbnRUaW1lKS51dGY4KCkuZGF0YSgpLCBt
X2ZyYW1lc0JlaW5nRGVjb2RlZCwgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3Ry
aW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKICAgICAgICAgICAgICsrbV9kcm9wcGVk
VmlkZW9GcmFtZXM7CkBAIC00MDEsMTcgKzQwMywxNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
LAogICAgICAgICB9CiAgICAgfQogCi0gICAgQ01CdWZmZXJRdWV1ZUVucXVldWUobV9wcm9kdWNl
clF1ZXVlLmdldCgpLCBzYW1wbGUpOworICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUVucXVldWUobV9w
cm9kdWNlclF1ZXVlLmdldCgpLCBzYW1wbGUpOwogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgIGF1
dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRh
dGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBhdXRvIGVuZCA9IFBB
TDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBQQUw6
OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBs
ZSkpOworICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1
ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwor
ICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgYXV0byBw
cmVzZW50YXRpb25UaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOwogICAgIExPRyhNZWRpYSwgIldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoJXApIC0gcHJlc2VudGF0
aW9uVGltZSglcyksIGZyYW1lc0JlaW5nRGVjb2RlZCglZCksIHByb2R1Y2VyUXVldWUoJXMgLT4g
JXMpIiwgdGhpcywgdG9TdHJpbmcocHJlc2VudGF0aW9uVGltZSkudXRmOCgpLmRhdGEoKSwgbV9m
cmFtZXNCZWluZ0RlY29kZWQsIHRvU3RyaW5nKGJlZ2luKS51dGY4KCkuZGF0YSgpLCB0b1N0cmlu
ZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAKICAgICBpZiAobV90aW1lYmFzZSkKLSAg
ICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseSht
X3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgUEFMOjpDTVRp
bWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2Uu
Z2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgaWYgKCFtX2hhc0F2YWlsYWJsZUZy
YW1lQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKQEAgLTQyNiw3ICs0MjgsNyBAQCB2b2lkIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlLAogCiBib29sIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aXNS
ZWFkeUZvck1vcmVNZWRpYURhdGEoKSBjb25zdAogewotICAgIENNSXRlbUNvdW50IHByb2R1Y2Vy
Q291bnQgPSBtX3Byb2R1Y2VyUXVldWUgPyBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQobV9w
cm9kdWNlclF1ZXVlLmdldCgpKSA6IDA7CisgICAgQ01JdGVtQ291bnQgcHJvZHVjZXJDb3VudCA9
IG1fcHJvZHVjZXJRdWV1ZSA/IFBBTDo6Q01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50KG1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOwogICAgIHJldHVybiBtX2ZyYW1lc0JlaW5nRGVjb2RlZCAr
IHByb2R1Y2VyQ291bnQgPD0ga0hpZ2hXYXRlck1hcms7CiB9CiAKQEAgLTQ1Miw3ICs0NTQsNyBA
QCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c3RvcFJlcXVlc3RpbmdNZWRpYURh
dGEoKQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhhc0F2
YWlsYWJsZVZpZGVvRnJhbWUoc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNhbGxiYWNrKQogewotICAg
IGlmIChjYWxsYmFjayAmJiBtX3Byb2R1Y2VyUXVldWUgJiYgIUNNQnVmZmVyUXVldWVJc0VtcHR5
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKKyAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNl
clF1ZXVlICYmICFQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQo
KSkpIHsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja10gewogICAg
ICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSk7CkBAIC00NjMsNyArNDY1LDcgQEAgdm9p
ZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKHN0ZDo6ZnVuY3Rpb24KIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSwgSW1hZ2VGb3JUaW1lRmxhZ3MgZmxhZ3MpCiB7Ci0gICAgaWYgKENNQnVmZmVyUXVldWVJc0Vt
cHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKKyAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVl
SXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKCVwKSAtIHRpbWUoJXMpLCBx
dWV1ZSBlbXB0eSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC00NzEsOSArNDczLDkgQEAgUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1l
KGNvbnN0IE1lZGkKICAgICBib29sIGFsbG93RWFybGllciA9IGZsYWdzID09IFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dFYXJsaWVyOwogICAgIGJvb2wgYWxsb3dMYXRlciA9IGZs
YWdzID09IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dMYXRlcjsKIAotICAgIE1l
ZGlhVGltZSBzdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJz
dFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBNZWRp
YVRpbWUgc3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRG
aXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICNpZiAh
TE9HX0RJU0FCTEVECi0gICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENN
QnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdl
dCgpKSk7CisgICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01C
dWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKTsKICNlbmRpZgogICAgIGlmICghYWxsb3dMYXRlciAmJiB0aW1lIDwgc3RhcnRUaW1lKSB7
CiAgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VG
b3JUaW1lKCVwKSAtIHRpbWUoJXMpIHRvbyBlYXJseSBmb3IgcXVldWUoJXMgLT4gJXMpIiwgdGhp
cywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoc3RhcnRUaW1lKS51dGY4
KCkuZGF0YSgpLCB0b1N0cmluZyhlbmRUaW1lKS51dGY4KCkuZGF0YSgpKTsKQEAgLTQ4MiwyNCAr
NDg0LDI0IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiAKICAgICBib29sIHJlbGVhc2VkSW1h
Z2VCdWZmZXJzID0gZmFsc2U7CiAKLSAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RT
YW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVH
ZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1lZGlhVGltZSBwcmVz
ZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJl
c2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1lZGlhVGltZSBkdXJh
dGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNh
bXBsZSkpOworICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNr
ZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZCht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9u
VGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlhVGltZSBkdXJhdGlv
biA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0
U2FtcGxlKSk7CiAgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPSBw
cmVzZW50YXRpb25UaW1lc3RhbXAgKyBkdXJhdGlvbjsKICAgICAgICAgaWYgKCFhbGxvd0xhdGVy
ICYmIHByZXNlbnRhdGlvblRpbWVzdGFtcCA+IHRpbWUpCiAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgaWYgKCFhbGxvd0VhcmxpZXIgJiYgcHJlc2VudGF0aW9uRW5kVGltZXN0
YW1wIDwgdGltZSkgewotICAgICAgICAgICAgQ0ZSZWxlYXNlKENNQnVmZmVyUXVldWVEZXF1ZXVl
QW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgQ0ZSZWxlYXNl
KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgp
KSk7CiAgICAgICAgICAgICByZWxlYXNlZEltYWdlQnVmZmVycyA9IHRydWU7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVm
ZmVyUmVmPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKSk7Ci0gICAgICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9
IChDVlBpeGVsQnVmZmVyUmVmKUNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNh
bXBsZS5nZXQoKSk7CisgICAgICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVu
dFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6
OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsK
KyAgICAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4
ZWxCdWZmZXJSZWYpUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1w
bGUuZ2V0KCkpOwogICAgICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoaW1hZ2VCdWZmZXIuZ2V0KCkp
ID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQoKSk7CiAKICAgICAgICAgaWYgKG1fdGltZWJhc2Up
Ci0gICAgICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVk
aWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICAg
ICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5
KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgICAgIG1heWJl
QmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CiAKQEAgLTUwOCw3ICs1MTAsNyBAQCBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFn
ZUZvclRpbWUoY29uc3QgTWVkaQogICAgIH0KIAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAg
ICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGlt
ZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJh
c2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQo
KSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICBpZiAocmVsZWFzZWRJbWFnZUJ1ZmZlcnMp
CiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC01MjAsOSAr
NTIyLDkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjpmbHVzaCgpCiB7CiAgICAgbV9kZWNvbXByZXNzaW9uUXVldWUtPmRpc3BhdGNo
U3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIG11dGFibGUgewot
ICAgICAgICBDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9wcm9kdWNlclF1ZXVl
LmdldCgpKTsKKyAgICAgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+
bV9wcm9kdWNlclF1ZXVlLmdldCgpKTsKICAgICAgICAgbV9lbnF1ZWluZ1F1ZXVlLT5kaXNwYXRj
aFN5bmMoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7Ci0gICAgICAg
ICAgICBDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25zdW1lclF1ZXVlLmdl
dCgpKTsKKyAgICAgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMt
Pm1fY29uc3VtZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2Zy
YW1lc1NpbmNlTGFzdFFvc0NoZWNrID0gMDsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
Y3VycmVudFFvc1RpZXIgPSAwOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmVzZXRRb3NU
aWVyKCk7CkBAIC01MzMsMjQgKzUzNSwyNCBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6Zmx1c2goKQogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RGVj
b2RlVGltZShDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsKLSAgICBy
ZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoc2FtcGxlKTsKKyAgICByZXR1
cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChzYW1wbGUpOwogfQogCiBD
TVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50YXRpb25UaW1lKENN
QnVmZmVyUmVmIGJ1Ziwgdm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0g
Y2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVybiBDTVNh
bXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOworICAgIHJldHVybiBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7CiB9CiAK
IENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKENNQnVmZmVy
UmVmIGJ1Ziwgdm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gY2hlY2tl
ZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1
ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXREdXJhdGlvbihzYW1wbGUpOwogfQogCiBDRkNvbXBhcmlzb25SZXN1bHQgV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVmZmVycyhDTUJ1ZmZlclJlZiBidWYxLCBDTUJ1ZmZl
clJlZiBidWYyLCB2b2lkKiByZWZjb24pCiB7Ci0gICAgcmV0dXJuIChDRkNvbXBhcmlzb25SZXN1
bHQpQ01UaW1lQ29tcGFyZShnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjEsIHJlZmNvbiksIGdldFBy
ZXNlbnRhdGlvblRpbWUoYnVmMiwgcmVmY29uKSk7CisgICAgcmV0dXJuIChDRkNvbXBhcmlzb25S
ZXN1bHQpUEFMOjpDTVRpbWVDb21wYXJlKGdldFByZXNlbnRhdGlvblRpbWUoYnVmMSwgcmVmY29u
KSwgZ2V0UHJlc2VudGF0aW9uVGltZShidWYyLCByZWZjb24pKTsKIH0KIAogdm9pZCBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OnJlc2V0UW9zVGllcigpCkBAIC02MDIsNyArNjA0LDcgQEAg
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnVwZGF0ZVFvc1dpdGhEZWNvZGVUaW1l
U3RhdGlzdGljcyhkb3VibGUgcmF0aW8KICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGRvdWJsZSByYXRlID0gQ01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5n
ZXQoKSk7CisgICAgZG91YmxlIHJhdGUgPSBQQUw6OkNNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJh
c2UuZ2V0KCkpOwogICAgIGlmICghcmF0ZSkKICAgICAgICAgcmF0ZSA9IDE7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNz
aW9uVlQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5z
ZmVyU2Vzc2lvblZULm1tCmluZGV4IGUzZjA5MjcwMzQ4ZTdhNWFlZjcyNjZlYjQ3MmRkYmFlNzNi
YzM0MDcuLmYzMTY5YWJjMDI3NzA4MmYwY2ZjZTQ3MjY3OWUxMTA3OTdjOGM5ZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNz
aW9uVlQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVC5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKIHN0YXRpYyBpbmxpbmUgQ0ZTdHJpbmdSZWYgY3ZQaXhlbEZvcm1hdE9wZW5HTEtl
eSgpCiB7CkBAIC0xMzgsNyArMTM3LDcgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IElt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcihDVlBpeGVsQnUKIAogUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBp
eGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkKIHsKLSAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSwgc2l6ZSk7CisgICAgcmV0dXJuIGNvbnZlcnRQaXhl
bEJ1ZmZlcihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSwg
c2l6ZSk7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1
ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKQEAgLTE0Niw5ICsxNDUsOSBAQCBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBs
ZUJ1ZmZlcihDTVNhbQogICAgIGlmICghc291cmNlQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIGF1dG8gZGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERl
c2NyaXB0aW9uKHNvdXJjZUJ1ZmZlcik7Ci0gICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRTaXpl
KENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVzY3Jp
cHRpb24sIHRydWUsIHRydWUpKTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8
Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZm
ZXIpKTsKKyAgICBhdXRvIGRlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKHNvdXJjZUJ1ZmZlcik7CisgICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRT
aXplKFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9u
cyhkZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0
aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZm
ZXIoc291cmNlQnVmZmVyKSk7CiAgICAgaWYgKHNpemUgPT0gZXhwYW5kZWRJbnRTaXplKHNvdXJj
ZVNpemUpICYmIG1fcGl4ZWxGb3JtYXQgPT0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlw
ZShwaXhlbEJ1ZmZlcikpCiAgICAgICAgIHJldHVybiByZXRhaW5QdHIoc291cmNlQnVmZmVyKTsK
IApAQCAtMTYwLDcgKzE1OSw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBhdXRv
IHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1
ZmZlciwgMSwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgMSwgbnVs
bHB0ciwgJml0ZW1Db3VudCk7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBs
ZUJ1ZmZlcjogQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkgZmFpbGVkIHdp
dGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKQEAgLTE2OSw3ICsxNjgsNyBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZm
ZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNh
bQogICAgIENNU2FtcGxlVGltaW5nSW5mbyogdGltZWluZ0luZm9QdHIgPSBudWxscHRyOwogICAg
IGlmIChpdGVtQ291bnQpIHsKICAgICAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50
KTsKLSAgICAgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkoc291cmNlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxw
dHIpOworICAgICAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCBudWxscHRyKTsKICAgICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAg
UkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1w
bGVCdWZmZXI6IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5IGZhaWxlZCB3
aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwpAQCAtMTc4LDE0ICsxNzcsMTQgQEAgUmV0YWluUHRyPENNU2Ft
cGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZm
ZXIoQ01TYW0KICAgICB9CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0
RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBp
eGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIHN0YXR1cyA9IFBBTDo6
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7
CiAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwg
IkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIgcmV0dXJuZWQ6ICVkIiwgc3RhdGlj
X2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgcmVzaXplZFNhbXBsZUJ1ZmZlcjsKLSAgICBzdGF0dXMgPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltZWlu
Z0luZm9QdHIsICZyZXNpemVkU2FtcGxlQnVmZmVyKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
Y29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCB0aW1laW5nSW5m
b1B0ciwgJnJlc2l6ZWRTYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlw
dGlvbik7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBSRUxFQVNFX0xPRyhN
ZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogZmFp
bGVkIHRvIGNyZWF0ZSBDTVNhbXBsZUJ1ZmZlciB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGlj
X2Nhc3Q8aW50PihzdGF0dXMpKTsKQEAgLTIzNywxNiArMjM2LDE2IEBAIFJldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZm
ZXIoQ1ZQaXhlCiAgICAgfQogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVklt
YWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAg
IGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFn
ZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZl
ci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVs
QnVmZmVyOiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0
aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
cjsKLSAgICBhdXRvIGNtVGltZSA9IHRvQ01UaW1lKHNhbXBsZVRpbWUpOwotICAgIENNU2FtcGxl
VGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgY21UaW1lLCBjbVRpbWUg
fTsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVy
KGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgp
LCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOworICAgIGF1
dG8gY21UaW1lID0gUEFMOjp0b0NNVGltZShzYW1wbGVUaW1lKTsKKyAgICBDTVNhbXBsZVRpbWlu
Z0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgY21UaW1lLCBjbVRpbWUg
fTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIu
Z2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7CiAg
ICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBp
eGVsQnVmZmVyOiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVNhbXBsZUJ1ZmZlciB3aXRoIGVycm9y
IGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktp
dC5tbQppbmRleCBlMGRhYWM4NWI4NzNhZDZhYTliNGFiMmRiN2EwMDljYzM3ZDQ3ODk1Li4zMmEw
NDQ5NmNmZjdkODQxMTEyMGZjZDEzM2U2ZDY3NDI1NGE4NmIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0Lm1tCkBAIC00Nyw3ICs0Nyw2IEBAIFNPRlRMSU5LX0FWS0lUX0ZSQU1FV09SSygpCiBTT0ZU
X0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWVmFsdWVUaW1pbmcpCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFBsYXliYWNrU2Vzc2lvbkludGVyZmFj
ZUFWS2l0OjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdChQbGF5YmFja1Nlc3Npb25Nb2Rl
bCYgbW9kZWwpCiAgICAgOiBtX3BsYXllckNvbnRyb2xsZXIoYWRvcHROUyhbW1dlYkFWUGxheWVy
Q29udHJvbGxlciBhbGxvY10gaW5pdF0pKQpAQCAtMTQ1LDcgKzE0NCw3IEBAIHZvaWQgUGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWthYmxlUmFuZ2VzQ2hhbmdlZChjb25zdCBUaW1l
UmFuZ2VzJiB0aW1lCiAgICAgICAgIGRvdWJsZSBzdGFydCA9IHRpbWVSYW5nZXMuc3RhcnQoaSku
cmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAgIGRvdWJsZSBlbmQgPSB0aW1lUmFuZ2VzLmVu
ZChpKS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAotICAgICAgICBDTVRpbWVSYW5nZSByYW5nZSA9
IENNVGltZVJhbmdlTWFrZShDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBDTVRp
bWVNYWtlV2l0aFNlY29uZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CisgICAgICAgIENNVGltZVJhbmdl
IHJhbmdlID0gUEFMOjpDTVRpbWVSYW5nZU1ha2UoUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMo
c3RhcnQsIDEwMDApLCBQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhlbmQtc3RhcnQsIDEwMDAp
KTsKICAgICAgICAgW3NlZWthYmxlUmFuZ2VzIGFkZE9iamVjdDpbTlNWYWx1ZSB2YWx1ZVdpdGhD
TVRpbWVSYW5nZTpyYW5nZV1dOwogICAgIH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRl
eCBlYTQyM2M3MTdjN2FlOTFiZDRlZTk5MDg3ZTA3YzRlNWMzN2U0YzNmLi41ZGYzNDlmYzZmY2Rm
Y2ZhZWE3NTU2MzIwZjNhZTZlNjY3NjM0ZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTM3
Myw3ICszNzMsNiBAQCAtICh2b2lkKXBpcEFjdGlvblN0b3A6KFBJUFZpZXdDb250cm9sbGVyICop
cGlwCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAK
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
KFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYyYgcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKQog
ICAgIDogbV9wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UocGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCmluZGV4IDg4NDA5NDI5
NzkyNmM4YWViZGVmNmYzZTk1Nzg0MmY4MzQyOGI4OTIuLmQ0MTllMGUxOTI1NTVkNzM2MDg1ODUx
ZjU0Y2EwMDQwZDQ2YjY2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsOjpjcmVhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0sIGNvbnN0IE1l
ZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKQEAgLTg4LDEyICs4NywxMiBA
QCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUo
TWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcgogewogICAgIGlmIChzaG91bGRNdXRlVmlkZW8oKSkg
ewogICAgICAgICBpZiAoIW1fYmxhY2tGcmFtZSkgewotICAgICAgICAgICAgbV9ibGFja0ZyYW1l
RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1
ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Ci0gICAgICAgICAg
ICBhdXRvIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25z
KG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpKTsKKyAgICAgICAgICAgIG1fYmxhY2tGcmFt
ZURlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNh
bXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAg
ICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0KCkpOwogICAgICAgICAgICAg
bV9ibGFja0ZyYW1lID0gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihkaW1lbnNpb25zLndpZHRoLCBk
aW1lbnNpb25zLmhlaWdodCk7CiAKICAgICAgICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICBhdXRvIHN0YXR1
cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAg
ICAgICAgICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCks
ICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7
CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlIDo6dW5hYmxlIHRvIGNyZWF0ZSBh
IGJsYWNrIGZyYW1lIGRlc2NyaXB0aW9uOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7
CiAgICAgICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gbnVsbHB0cjsKQEAgLTEwMyw4ICsxMDIs
OCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFi
bGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcgogICAgICAgICB9CiAKICAgICAgICAgQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlID0gbnVsbHB0cjsKLSAgICAgICAgQ01TYW1wbGVUaW1pbmdJbmZv
IHRpbWluZ0luZm8geyBrQ01UaW1lSW52YWxpZCwgdG9DTVRpbWUoc2FtcGxlQnVmZmVyLnByZXNl
bnRhdGlvblRpbWUoKSksIHRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5kZWNvZGVUaW1lKCkpIH07Ci0g
ICAgICAgIGF1dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNrRnJhbWUu
Z2V0KCksIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5nSW5mbywgJnNhbXBs
ZSk7CisgICAgICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvIHsgUEFMOjprQ01UaW1l
SW52YWxpZCwgUEFMOjp0b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0aW9uVGltZSgpKSwg
UEFMOjp0b0NNVGltZShzYW1wbGVCdWZmZXIuZGVjb2RlVGltZSgpKSB9OworICAgICAgICBhdXRv
IHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNrRnJhbWUuZ2V0KCks
IG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5nSW5mbywgJnNhbXBsZSk7CiAK
ICAgICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2Ft
cGxlQXZhaWxhYmxlIC0gdW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lOiAlZCIsIHN0YXRp
Y19jYXN0PGludD4oc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yLm1tCmluZGV4IDUxYTNlMThhMmNlZGQzY2Q1ZGE5M2YzNGViZjM3MTFlMDIw
ZjhiNjIuLmMyNmEzNzBkNThkYTE5NTE4YWU4NTg1OWIxMjE1NjQxYzViN2MyMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCkBAIC0zNiwxMyAr
MzYsMTIgQEAKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogI2ltcG9ydCA8cGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4K
IAogI2RlZmluZSBMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRTIDAuMQogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y3JlYXRl
KENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2Jq
ZWN0KQogewogICAgIGF1dG8gY29tcHJlc3NvciA9IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I+KG5ldyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKSk7CkBA
IC01MywxNCArNTIsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUKIAogQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogICAgIDogbV9z
ZXJpYWxEaXNwYXRjaFF1ZXVlIHsgV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IiKSB9Ci0gICAgLCBtX2xvd1dhdGVyVGltZSB7IENNVGltZU1h
a2VXaXRoU2Vjb25kcyhMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRTLCAxMDAwKSB9CisgICAgLCBt
X2xvd1dhdGVyVGltZSB7IFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKExPV19XQVRFUl9USU1F
X0lOX1NFQ09ORFMsIDEwMDApIH0KIHsKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV9jb252ZXJ0ZXIp
IHsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAg
UEFMOjpBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZl
cnRlciA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNjgsMTkgKzY3LDE5IEBAIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBib29sIEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dl
ckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZl
clF1ZXVlUmVmIGlucHV0QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZl
clF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxs
YmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUpKSB7Cisg
ICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1w
bGVCdWZmZXJzKCksICZpbnB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1
ZXVlQ3JlYXRlIGZvciBtX2lucHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9pbnB1dEJ1ZmZlclF1ZXVlID0g
YWRvcHRDRihpbnB1dEJ1ZmZlclF1ZXVlKTsKIAogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0
QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRl
ZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBB
TDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAm
b3V0cHV0QnVmZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVhdGUgZm9y
IG1fb3V0cHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0
cHV0QnVmZmVyUXVldWUpOwotICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1
dEJ1ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1
ZXVlVHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwpOworICAg
IFBBTDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0
KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1doZW5E
YXRhQmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1faXNFbmNv
ZGluZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBAIC04OSw4ICs4OCw4IEBAIGJvb2wgQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q2FsbGJhY2sgY2FsbGJhCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNo
KCkKIHsKICAgICBtX3NlcmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10gewot
ICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKGtDTVRpbWVJbnZh
bGlkKTsKLSAgICAgICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1f
b3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpOworICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1Vu
dGlsTG93V2F0ZXJUaW1lKFBBTDo6a0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9y
ID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdl
dCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZh
aWxlZCAlZCIsIGVycm9yKTsKICAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CiAgICAgfSk7
CkBAIC0xMTIsNyArMTExLDcgQEAgVUludDMyIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
ZGVmYXVsdE91dHB1dEJpdFJhdGUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0QKIAogYm9vbCBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1h
dERlc2NyaXB0aW9uKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIEF1
ZGlvRm9ybWF0SUQgb3V0cHV0Rm9ybWF0SUQpCiB7Ci0gICAgY29uc3QgYXV0byAqYXVkaW9Gb3Jt
YXRMaXN0SXRlbSA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVG
b3JtYXQoZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGNvbnN0IGF1dG8gKmF1ZGlvRm9ybWF0TGlz
dEl0ZW0gPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVG
b3JtYXQoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIG1fc291cmNlRm9ybWF0ID0gYXVkaW9Gb3Jt
YXRMaXN0SXRlbS0+bUFTQkQ7CiAKICAgICBtZW1zZXQoJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAs
IHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKQEAgLTEyMSwzNCArMTIwLDM0
IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJG
b3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgbV9kZXN0aW5hdGlvbkZvcm1hdC5tQ2hh
bm5lbHNQZXJGcmFtZSA9IG1fc291cmNlRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lOwogCiAgICAg
VUludDMyIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5X0Zvcm1h
dEluZm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAo
YXV0byBlcnJvciA9IFBBTDo6QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9w
ZXJ0eV9Gb3JtYXRJbmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHkgZmFpbGVkIHdpdGggJWQiLCBlcnJv
cik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBBdWRpb0NvbnZlcnRlclJl
ZiBjb252ZXJ0ZXI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlck5ldygmbV9z
b3VyY2VGb3JtYXQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgeworICAgIGlm
IChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZt
X2Rlc3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZl
cnRlck5ldyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KICAgICBtX2NvbnZlcnRlciA9IGNvbnZlcnRlcjsKIAogICAgIGF1dG8gY2xlYW51cElu
Q2FzZU9mRXJyb3IgPSBtYWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVy
RGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3Nl
KG1fY29udmVydGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0pOwog
CiAgICAgc2l6ZV90IGNvb2tpZVNpemUgPSAwOwotICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IENN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAm
Y29va2llU2l6ZSk7CisgICAgY29uc3Qgdm9pZCAqY29va2llID0gUEFMOjpDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNvb2tpZVNpemUp
OwogICAgIGlmIChjb29raWVTaXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9D
b252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVz
c2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKKyAgICAgICAg
aWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0
ZXIsIGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29r
aWVTaXplLCBjb29raWUpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRl
ckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIHNpemUgPSBzaXpl
b2YobV9zb3VyY2VGb3JtYXQpOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJH
ZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFt
RGVzY3JpcHRpb24sICZzaXplLCAmbV9zb3VyY2VGb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJy
b3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0Nv
bnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9y
bWF0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0
cmVhbURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQpAQCAtMTU5LDcgKzE1OCw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihD
CiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtB
dWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rl
c3RpbmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0
U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRp
b24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CkBAIC0xNjcsMTQgKzE2NiwxNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIGlmICht
X2Rlc3RpbmF0aW9uRm9ybWF0Lm1Gb3JtYXRJRCA9PSBrQXVkaW9Gb3JtYXRNUEVHNEFBQykgewog
ICAgICAgICBib29sIHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gdHJ1ZTsKICAgICAg
ICAgaWYgKG1fb3V0cHV0Qml0UmF0ZSkgewotICAgICAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJp
dFJhdGUsIHNpemVvZigqbV9vdXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgp
KTsKKyAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigqbV9v
dXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0
ZSA9ICEhZXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZFNldERlZmF1bHRPdXRw
dXRCaXRSYXRlKSB7CiAgICAgICAgICAgICBhdXRvIG91dHB1dEJpdFJhdGUgPSBkZWZhdWx0T3V0
cHV0Qml0UmF0ZShtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKICAgICAgICAgICAgIHNpemUgPSBzaXpl
b2Yob3V0cHV0Qml0UmF0ZSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29u
dmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJh
dGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0
ZXJFbmNvZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCiAgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3Igc2V0dGluZyBkZWZhdWx0IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0xODMsNyArMTgyLDcgQEAgYm9v
bCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJj
ZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9uIGZvcm1h
dCBpcyBWQlIsIHdlIG5lZWQgdG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0aGUgY29u
dmVydGVyLgogICAgICAgICBzaXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CiAK
LSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29u
dmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAm
c2l6ZSwgJm1fbWF4T3V0cHV0UGFja2V0U2l6ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlclByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQ
YWNrZXRTaXplKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0s
ICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9w
ZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0yMTEsNiArMjEwLDggQEAgc2l6
ZV90IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y29tcHV0ZUJ1ZmZlclNpemVGb3JBdWRp
b0Zvcm1hdChBdWRpb1N0cmVhbUIKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmF0dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsK
KyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOworCiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1f
cmVtYWluaW5nUHJpbWVEdXJhdGlvbikpIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUlu
Zm8gcHJpbWVJbmZvIHsgMCwgMCB9OwogICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmlt
ZUluZm8pOwpAQCAtMjM2LDI1ICsyMzcsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkKIHsKICAg
ICBVSW50MzIgZGVsYXlTaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJfdCBvcmln
aW5hbERlbGF5TW9kZSA9IDA7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVs
YXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6
OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVy
dHlEZWxheU1vZGUsICZkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIHVpbnQzMl90IG9wdGlt
YWxEZWxheU1vZGUgPSBrQXVkaW9Db2RlY0RlbGF5TW9kZV9PcHRpbWFsOwotICAgIGlmIChhdXRv
IGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29k
ZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERl
bGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlN
b2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0K
IAogICAgIFVJbnQzMiBwcmltZVNpemUgPSBzaXplb2YoQXVkaW9Db2RlY1ByaW1lSW5mbyk7CiAg
ICAgQXVkaW9Db2RlY1ByaW1lSW5mbyBwcmltZUluZm8geyAwLCAwIH07Ci0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2Rl
Y1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBr
QXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKGF1
dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsK
KyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2lu
YWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURl
bGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAg
ICB9CkBAIC0yNjcsMTggKzI2OCwxOCBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIGlm
ICghbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIFVJbnQzMiBjb29r
aWVTaXplID0gMDsKIAotICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9w
ZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29r
aWUsICZjb29raWVTaXplLCBOVUxMKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9D
b252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXBy
ZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBOVUxMKTsKICAgICAgICAgaWYgKChlcnJv
ciA9PSBub0VycikgJiYgISFjb29raWVTaXplKSB7CiAgICAgICAgICAgICBjb29raWUucmVzaXpl
KGNvb2tpZVNpemUpOwogCi0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFn
aWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUuZGF0YSgpKSkgeworICAgICAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIs
IGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29r
aWUuZGF0YSgpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVy
Q29tcHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uOwotICAg
ICAgICBpZiAoYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29va2llU2l6
ZSwgY29va2llLmRhdGEoKSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pKSB7
CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEws
IGNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2Ny
aXB0aW9uKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAg
ICAgfQpAQCAtMjkwLDI2ICsyOTEsMjYgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBz
aXplX3QgZGF0YVNpemUgPSBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXpl
OwogCiAgICAgQ01CbG9ja0J1ZmZlclJlZiBibG9ja0J1ZmZlcjsKLSAgICBpZiAoYXV0byBlcnJv
ciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVs
dCwgTlVMTCwgZGF0YVNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXpl
LCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9j
ayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwgTlVMTCwgMCwgZGF0YVNpemUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywg
JmJsb2NrQnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
IkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAg
IH0KICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgaWYgKGF1
dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0
KCksIDAsIGRhdGFTaXplKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVm
ZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5n
ZXQoKSwgdHJ1ZSwgTlVMTCwgTlVMTCwgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdl
dCgpLCBudW1QYWNrZXRzLCBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1f
ZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKKyAg
ICBhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERl
c2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIHRydWUsIE5VTEws
IE5VTEwsIG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgbnVtUGFja2V0cywg
bV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wLCBtX2Rlc3RpbmF0aW9uUGFja2V0
RGVzY3JpcHRpb25zLmRhdGEoKSwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25z
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAog
ICAgIGlmIChbbV9nZHJDb3VudE51bSBpbnRWYWx1ZV0pCi0gICAgICAgIENNU2V0QXR0YWNobWVu
dChzYW1wbGVCdWZmZXIsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29k
ZXJSZWZyZXNoLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCksIGtDTUF0
dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CisgICAgICAgIFBBTDo6Q01TZXRBdHRhY2ht
ZW50KHNhbXBsZUJ1ZmZlciwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1
YWxEZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgp
LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogCiAgICAgcmV0dXJuIHNhbXBs
ZUJ1ZmZlcjsKIH0KQEAgLTM0MSwyNCArMzQyLDI0IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioK
ICAgICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eSht
X2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGlmIChQQUw6OkNNQnVm
ZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9w
dENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURl
cXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAg
ICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNh
bXBsZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBh
ZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZl
clF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAg
ICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmICghbV9z
YW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTVNhbXBsZUJ1ZmZl
ckdldERhdGFCdWZmZXIgZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxv
Y2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5T
YW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9
IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOwor
ICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVm
ZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAg
ICAgICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAg
ICAgICBzaXplX3QgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5
dGVzVG9Db3B5LCAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNh
bXBsZUJsb2NrQnVmZmVyKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJl
bnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVm
LCAobV9zb3VyY2VCdWZmZXIuZGF0YSgpICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNv
cHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5T
YW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNl
QnVmZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAg
ICAgICAgfQpAQCAtMzkzLDI4ICszOTQsMjggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAg
ICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1
ZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lu
cHV0QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAg
ICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25z
dF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVy
UXVldWUuZ2V0KCkpKSkpOwotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0
Q0YoKENNQmxvY2tCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENNU2FtcGxl
QnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAgICAgICAg
IGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZl
clF1ZXVlLmdldCgpKSkpKTsKKyAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBhZG9w
dENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKICAgICAg
ICAgICAgIGlmICghbV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENN
U2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICBtX3Nh
bXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0
SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tC
dWZmZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKKyAgICAg
ICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0
YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7CiAgICAgICAgICAgICBtX2N1
cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgfQogCiAgICAgICAg
IGlmIChtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICBzaXplX3QgbnVtQnl0ZXNU
b0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9zYW1wbGVC
bG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyKSk7Ci0g
ICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1f
c2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZm
ZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50
T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQ
QUw6OkNNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCks
IG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNh
bXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkg
ewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZpcnN0IGNo
YW5uZWwgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVy
cm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2Nr
QnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRP
ZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5
dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldElu
U291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJl
bnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51
bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNl
dEluU291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29w
eURhdGFCeXRlcyBzZWNvbmQgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICB9CkBAIC00MzgsNiArNDM5LDgg
QEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0
YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbG93V2F0
ZXJUaW1lKQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFS
RV9JTkxJTkUKKwogICAgIGlmICghbV9jb252ZXJ0ZXIpIHsKICAgICAgICAgaWYgKENNQnVmZmVy
UXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1
cm47CkBAIC01MDEsNyArNTA0LDcgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGwKIAogdm9pZCBB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVC
dWZmZXJSZWYgYnVmZmVyKQogewotICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1
ZShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBB
TDo6Q01CdWZmZXJRdWV1ZUVucXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIp
OwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKIAogICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUobV9s
b3dXYXRlclRpbWUpOwpAQCAtNTIwLDEyICs1MjMsMTIgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAK
IENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0
U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9j
YXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
KSkpOworICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBB
TDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0K
IAogUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNh
bXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRS
ZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0Yo
KENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVE
ZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNp
Z25lZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBm
NWY4NTU4NzFmYzcwODU2NmY3ZWY4YjlhMTYxZTI3YjhlNWQ4OWVkLi5iNzU1OGQyODBjMmVmNzk2
MDY4Y2FjMGNjOTZiNTAzM2RjMzcwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtMTI3LDggKzEyNyw4IEBAIHByaXZhdGU6
CiAgICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3JtYXREZXNj
cmlwdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
PiBtX3ZpZGVvQ29tcHJlc3NvcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBt
X3ZpZGVvQXNzZXRXcml0ZXJJbnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRp
b25UaW1lIHsga0NNVGltZUludmFsaWQgfTsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGlu
Z1RpbWUgeyBrQ01UaW1lSW52YWxpZCB9OworICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRh
dGlvblRpbWU7CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lOwogICAgIGJvb2wg
bV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0cjxXZWJB
VkFzc2V0V3JpdGVyRGVsZWdhdGU+IG1fd3JpdGVyRGVsZWdhdGU7CkBAIC0xMzksOSArMTM5LDkg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RvcEFmdGVyRmx1c2hpbmdTYW1wbGVzIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fZmlyc3RWaWRlb0ZyYW1lIHsgZmFsc2UgfTsKICAgICBzdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBtX3ZpZGVvVHJhbnNmb3JtOwotICAgIENNVGlt
ZSBtX3Jlc3VtZWRWaWRlb1RpbWUgeyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBtX2N1cnJl
bnRWaWRlb0R1cmF0aW9uIHsga0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUgbV9jdXJyZW50QXVk
aW9TYW1wbGVUaW1lIHsga0NNVGltZVplcm8gfTsKKyAgICBDTVRpbWUgbV9yZXN1bWVkVmlkZW9U
aW1lOworICAgIENNVGltZSBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uOworICAgIENNVGltZSBtX2N1
cnJlbnRBdWRpb1NhbXBsZVRpbWU7CiAgICAgZG91YmxlIG1fdGltZUNvZGUgeyAwIH07CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
bW0KaW5kZXggNjNiZDY1OThkMDJhNWM3MDA2ZGE5MjlmYzk0ZjFmNWY2NmE3MTZkYS4uNmFkMjBi
ZThjYjU3OTIzYTBlNzg0MmUzNzAxZDMzYTZhYTAzYWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtOTMsOCArOTMsNiBA
QCBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQog
UmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y3JlYXRlKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGNvbnN0IE1lZGlhUmVj
b3JkZXJQcml2YXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvIHdyaXRlciA9IGFkb3B0
UmVmKCpuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIGhhc1ZpZGVvKSk7
CkBAIC0xMjIsNiArMTIwLDExIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNv
bXByZXNzZWRBdWRpb091dHB1dEJ1ZmZlckNhbGxiYWNrKHZvaWQgKm1lZGlhCiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoYm9vbCBoYXNBdWRp
bywgYm9vbCBoYXNWaWRlbykKICAgICA6IG1faGFzQXVkaW8oaGFzQXVkaW8pCiAgICAgLCBtX2hh
c1ZpZGVvKGhhc1ZpZGVvKQorICAgICwgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lKFBBTDo6
a0NNVGltZUludmFsaWQpCisgICAgLCBtX2xhc3RWaWRlb0RlY29kaW5nVGltZShQQUw6OmtDTVRp
bWVJbnZhbGlkKQorICAgICwgbV9yZXN1bWVkVmlkZW9UaW1lKFBBTDo6a0NNVGltZVplcm8pCisg
ICAgLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKFBBTDo6a0NNVGltZVplcm8pCisgICAgLCBtX2N1
cnJlbnRBdWRpb1NhbXBsZVRpbWUoUEFMOjprQ01UaW1lWmVybykKIHsKIH0KIApAQCAtMTc5LDcg
KzE4Miw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21w
cmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNWaWRlbyk7CiAg
ICAgaWYgKCFtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV92aWRlb0Zvcm1h
dERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVv
Q29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX3ZpZGVvRm9y
bWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24o
bV92aWRlb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKIAogICAgICAgICBp
ZiAobV9oYXNBdWRpbyAmJiAhbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMTk2LDcgKzE5OSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NF
UlQobV9oYXNBdWRpbyk7CiAgICAgaWYgKCFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAg
ICAgICAgbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXRE
ZXNjcmlwdGlvbihtX2F1ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOwor
ICAgICAgICBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
Rm9ybWF0RGVzY3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZl
cigpKTsKICAgICAgICAgaWYgKG1faGFzVmlkZW8gJiYgIW1fdmlkZW9Gb3JtYXREZXNjcmlwdGlv
bikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIoKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTpr
Q01UaW1lWmVyb107CisgICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGlt
ZTpQQUw6OmtDTVRpbWVaZXJvXTsKIAogICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJz
KCk7CiAKQEAgLTMwMCw4ICszMDMsOCBAQCBib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJJZlBvc3NpYmxlKCkKIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZl
cihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKFttX3ZpZGVvQXNzZXRX
cml0ZXJJbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pOwotICAgIG1fbGFzdFZpZGVvUHJl
c2VudGF0aW9uVGltZSA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1
ZmZlcik7Ci0gICAgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldERl
Y29kZVRpbWVTdGFtcChidWZmZXIpOworICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAg
ICBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVU
aW1lU3RhbXAoYnVmZmVyKTsKICAgICBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgPSB0cnVlOwog
CiAgICAgW21fdmlkZW9Bc3NldFdyaXRlcklucHV0LmdldCgpIGFwcGVuZFNhbXBsZUJ1ZmZlcjpi
dWZmZXJdOwpAQCAtMzE0LDE3ICszMTcsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6YXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKQogCiBzdGF0aWMgaW5saW5lIHZv
aWQgYXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIoQVZBc3NldFdyaXRlcklu
cHV0ICphc3NldFdyaXRlcklucHV0LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRp
bWUgZGVjb2RpbmdUaW1lU3RhbXApCiB7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0lu
Zm8gPSB7IGtDTVRpbWVJbnZhbGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGlt
ZVN0YW1wfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01U
aW1lSW52YWxpZCwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkZWNvZGluZ1RpbWVTdGFtcH07CiAK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIgPSBOVUxMOwotICAgIGF1dG8gZXJyb3IgPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVlLCBOVUxM
LCBOVUxMLCBOVUxMLCAwLCAxLCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7CisgICAg
YXV0byBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgTlVMTCwgdHJ1ZSwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5V
TEwsICZidWZmZXIpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZEVuZHNQcmV2
aW91c1NhbXBsZUR1cmF0aW9uTWFya2VyIGZhaWxlZCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gc2FtcGxlQnVm
ZmVyID0gYWRvcHRDRihidWZmZXIpOwogCi0gICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZl
ci5nZXQoKSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVE
dXJhdGlvbiwga0NGQm9vbGVhblRydWUsIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0
ZSk7CisgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBQQUw6OmtD
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtD
RkJvb2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogICAgIGlm
ICghW2Fzc2V0V3JpdGVySW5wdXQgYXBwZW5kU2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZlci5nZXQo
KV0pCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXIgYXBwZW5kU2FtcGxlQnVmZmVyIHRvIHdyaXRlciBpbnB1dCBmYWlsZWQi
KTsKIH0KQEAgLTM4MiwxOCArMzg1LDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYmCiBzdGF0
aWMgaW5saW5lIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY29weVNhbXBsZUJ1ZmZlcldp
dGhDdXJyZW50VGltZVN0YW1wKENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsQnVmZmVyLCBDTVRp
bWUgc3RhcnRUaW1lKQogewogICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKLSAgICBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAm
Y291bnQpOworICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
b3JpZ2luYWxCdWZmZXIsIDAsIG5pbCwgJmNvdW50KTsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRp
bWluZ0luZm8+IHRpbWVJbmZvKGNvdW50KTsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNv
dW50KTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9y
aWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOwogCiAgICAgZm9y
IChhdXRvIGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICB0aW1lSW5mb1tpXS5kZWNv
ZGVUaW1lU3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKKyAgICAgICAgdGltZUluZm9baV0uZGVjb2Rl
VGltZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKICAgICAgICAgdGltZUluZm9baV0ucHJl
c2VudGF0aW9uVGltZVN0YW1wID0gc3RhcnRUaW1lOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVm
ZmVyUmVmIG5ld0J1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdp
bmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkgeworICAgIGlm
IChhdXRvIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5n
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0
YSgpLCAmbmV3QnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdp
dGhOZXdUaW1pbmcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KQEAgLTQwNCw3ICs0MDcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogewog
ICAgIGlmICghbV9maXJzdFZpZGVvRnJhbWUpIHsKICAgICAgICAgbV9maXJzdFZpZGVvRnJhbWUg
PSB0cnVlOwotICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNs
b2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKKyAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFM
OjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogICAgICAg
ICBpZiAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6Tm9uZSB8fCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpKSB7CiAgICAgICAgICAgICBtX3ZpZGVv
VHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlUm90YXRpb24oc3RhdGljX2Nhc3Q8aW50
PihzYW1wbGUudmlkZW9Sb3RhdGlvbigpKSAqIE1fUEkgLyAxODApOwogICAgICAgICAgICAgaWYg
KHNhbXBsZS52aWRlb01pcnJvcmVkKCkpCkBAIC00MTIsOCArNDE1LDggQEAgdm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUm
IHNhbXBsZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gc2FtcGxlVGltZSA9IENNVGlt
ZVN1YnRyYWN0KENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jl
c3VtZWRWaWRlb1RpbWUpOwotICAgIHNhbXBsZVRpbWUgPSBDTVRpbWVBZGQoc2FtcGxlVGltZSwg
bV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CisgICAgYXV0byBzYW1wbGVUaW1lID0gUEFMOjpDTVRp
bWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xv
Y2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1l
QWRkKHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOwogICAgIGlmIChhdXRvIGJ1
ZmZlcldpdGhDdXJyZW50VGltZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFt
cChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHNhbXBsZVRp
bWUpKQogICAgICAgICBtX3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldp
dGhDdXJyZW50VGltZS5nZXQoKSk7CiB9CkBAIC00MjIsNyArNDI1LDcgQEAgdm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZv
cm1BdWRpb0RhdGEKIHsKICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1Nh
bXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBz
YW1wbGVDb3VudCkpCiAgICAgICAgIG1fYXVkaW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIo
c2FtcGxlQnVmZmVyLmdldCgpKTsKLSAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBDTVRp
bWVBZGQobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCB0b0NNVGltZShNZWRpYVRpbWUoc2FtcGxl
Q291bnQsIGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSkpKTsKKyAgICBtX2N1cnJlbnRBdWRpb1Nh
bXBsZVRpbWUgPSBQQUw6OkNNVGltZUFkZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIFBBTDo6
dG9DTVRpbWUoTWVkaWFUaW1lKHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkp
KSk7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZpbmlzaGVkRmx1c2hp
bmdTYW1wbGVzKCkKQEAgLTUyMywxMCArNTI2LDEwIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKCkKIHsKICAgICBhdXRvIGN1cnJlbnRUaW1lQ29k
ZSA9IG1fdGltZUNvZGU7CiAgICAgaWYgKG1faGFzQXVkaW8pCi0gICAgICAgIG1fdGltZUNvZGUg
PSBDTVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CisgICAgICAgIG1f
dGltZUNvZGUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1l
KTsKICAgICBlbHNlIHsKLSAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3Qo
Q01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVv
VGltZSk7Ci0gICAgICAgIG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZUFkZChz
YW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKSk7CisgICAgICAgIGF1dG8gc2FtcGxl
VGltZSA9IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xv
Y2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgICAgICBtX3Rp
bWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUs
IG1fY3VycmVudFZpZGVvRHVyYXRpb24pKTsKICAgICB9CiAgICAgbV9mZXRjaERhdGFDb21wbGV0
aW9uSGFuZGxlcih0YWtlRGF0YSgpLCBjdXJyZW50VGltZUNvZGUpOwogfQpAQCAtNTUwLDEzICs1
NTMsMTMgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OnRha2VEYXRhKCkKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cGF1c2UoKQog
ewotICAgIGF1dG8gcmVjb3JkaW5nRHVyYXRpb24gPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0
VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAg
ICBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uID0gQ01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBt
X2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKKyAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gUEFM
OjpDTVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RU
aW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgbV9jdXJyZW50VmlkZW9EdXJh
dGlvbiA9IFBBTDo6Q01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1
cmF0aW9uKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cmVzdW1lKCkK
IHsKLSAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9z
dFRpbWVDbG9jaygpKTsKKyAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRU
aW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Om1pbWVUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNzZkNTZkN2I4ZDEz
YzcyZWEzOWZjMzQ5OWQxNzk4OTk3MTdmMGU3OC4uZDA3NjBmMDdlMzcwODEyN2Y5ZGUyZWZhZjky
ZjBlMDc3MmZkMzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IubW0KQEAgLTM0LDEyICszNCwxMSBAQAogI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZU
Q29tcHJlc3Npb25TZXNzaW9uLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAorI2lt
cG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvVmlkZW9U
b29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3Bh
Y2UgUEFMOwotCiBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShTdHJpbmcgbWltZVR5cGUsIENNQnVm
ZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQog
ewogICAgIGF1dG8gcHJvZmlsZSA9IFByb2ZpbGU6OkJhc2VsaW5lOwpAQCAtNjksNyArNjgsNyBA
QCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cihDTVZpZGVvQ29kZWNUeXBlIG91dHB1dAogVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV92dFNlc3Npb24pIHsK
LSAgICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgp
KTsKKyAgICAgICAgUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Np
b24uZ2V0KCkpOwogICAgICAgICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAt
NzcsMTIgKzc2LDEyIEBAIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvcigpCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5p
dGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOwot
ICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJz
KCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01C
dWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVl
dWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1
ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciB1bmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBxdWV1ZSAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1
ZXVlID0gb3V0cHV0QnVmZmVyUXVldWU7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2Vy
KG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NN
QnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVM
TCk7CisgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJR
dWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdn
ZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAg
bV9pc0VuY29kaW5nID0gdHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk2LDEwICs5NSwxMCBA
QCB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2V0Qml0c1BlclNlY29uZCh1bnNp
Z25lZCBiaXRSYXRlKQogdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCgp
CiB7CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAg
ICAgICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92
dFNlc3Npb24uZ2V0KCksIGtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBB
TDo6VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSwg
UEFMOjprQ01UaW1lSW52YWxpZCk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9y
LCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9u
U2Vzc2lvbkNvbXBsZXRlRnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgICAg
IGVycm9yID0gQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5n
ZXQoKSk7CisgICAgICAgIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSht
X291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYo
ZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVy
UXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAgICAgIG1f
aXNFbmNvZGluZyA9IGZhbHNlOwpAQCAtMTE0LDcgKzExMyw3IEBAIHZvaWQgVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2sodm9pZCAqcmVmQ29uLCB2
b2lkKiwKIAogICAgIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciAqY29tcHJlc3NvciA9IHN0
YXRpY19jYXN0PFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcio+KHJlZkNvbik7CiAKLSAgICBh
dXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1
ZXVlRW5xdWV1ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIp
OwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKIH0KIApAQCAtMTMwLDUzICsxMjksNTMgQEAgQ0ZTdHJpbmdSZWYgVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCgpIGNvbnN0CiB7CiAgICAgc3dpdGNo
IChtX3Byb2ZpbGUpIHsKICAgICBjYXNlIFByb2ZpbGU6OkJhc2VsaW5lOgotICAgICAgICByZXR1
cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOworICAgICAgICByZXR1
cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CiAgICAgY2Fz
ZSBQcm9maWxlOjpIaWdoOgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGln
aF9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0hp
Z2hfQXV0b0xldmVsOwogICAgIGNhc2UgUHJvZmlsZTo6TWFpbjoKLSAgICAgICAgcmV0dXJuIGtW
VFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjpr
VlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbDsKICAgICB9CiB9CiAKIGJvb2wgVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbikKIHsKLSAgICBDTVZpZGVvRGlt
ZW5zaW9ucyBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9u
cyhmb3JtYXREZXNjcmlwdGlvbik7CisgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9
IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlw
dGlvbik7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNp
ZmljYXRpb25zID0gbmlsOwogI2Vsc2UKLSAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZp
Y2F0aW9ucyA9IEB7KF9fYnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNh
dGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyOkBZRVN9OworICAgIE5T
RGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcg
KilQQUw6OmtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVy
YXRlZFZpZGVvRW5jb2RlcjpAWUVTfTsKICNlbmRpZgogCiAgICAgVlRDb21wcmVzc2lvblNlc3Np
b25SZWYgdnRTZXNzaW9uOwotICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhl
aWdodCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2Rl
clNwZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRo
aXMsICZ2dFNlc3Npb24pOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNz
aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lv
bnMuaGVpZ2h0LCBtX291dHB1dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZill
bmNvZGVyU3BlY2lmaWNhdGlvbnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFj
aywgdGhpcywgJnZ0U2Vzc2lvbik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29t
cHJlc3Npb25TZXNzaW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICBy
ZXR1cm4gTk87CiAgICAgfQogICAgIG1fdnRTZXNzaW9uID0gYWRvcHRDRih2dFNlc3Npb24pOwog
Ci0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworICAgIGVy
cm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOwogICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Jl
YWxUaW1lIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0Q29tcHJlc3Np
b25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVy
dHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxE
dXJhdGlvbik7CisgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0
U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1l
SW50ZXJ2YWxEdXJhdGlvbiwgbV9tYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24pOwogICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAg
ICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVk
RnJhbWVSYXRlKTsKKyAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1f
dnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRG
cmFtZVJhdGUsIG1fZXhwZWN0ZWRGcmFtZVJhdGUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Np
b25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRl
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9w
ZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxl
TGV2ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9m
aWxlTGV2ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVM
ZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgcHJvZmlsZSAlZCIsIGVycm9yLCBtX3Byb2ZpbGUpOwog
ICAgICAgICBpZiAobV9wcm9maWxlICE9IFByb2ZpbGU6OkJhc2VsaW5lKSB7Ci0gICAgICAgICAg
ICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFz
ZWxpbmVfQXV0b0xldmVsKTsKKyAgICAgICAgICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9m
aWxlTGV2ZWwsIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKTsK
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgZGVmYXVsdCBw
cm9maWxlIiwgZXJyb3IpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fb3V0cHV0Qml0
UmF0ZSkgewotICAgICAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1f
dnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRl
LCAqbV9vdXRwdXRCaXRSYXRlKTsKKyAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Np
b25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X0F2ZXJhZ2VCaXRSYXRlLCAqbV9vdXRwdXRCaXRSYXRlKTsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFn
ZUJpdFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgfQogCi0gICAgZXJyb3IgPSBW
VENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQo
KSk7CisgICAgZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2Rl
RnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJv
ciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lv
blNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAK
ICAgICByZXR1cm4gWUVTOwpAQCAtMTg1LDE0ICsxODQsMTQgQEAgYm9vbCBWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW8KIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVm
ZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBpZiAoIW1fdnRTZXNzaW9uKSB7
Ci0gICAgICAgIGlmICghaW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQorICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNl
c3Npb24oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNh
bXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7Ci0gICAgYXV0byBwcmVzZW50YXRpb25U
aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIp
OwotICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7
Ci0gICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNl
c3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9u
LCBOVUxMLCB0aGlzLCBOVUxMKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1l
U3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZl
cik7CisgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihi
dWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2Rl
RnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3Rh
bXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBOVUxMKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
RihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21w
cmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApA
QCAtMjA4LDEyICsyMDcsMTIgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFk
ZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVy
UmVmIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkK
IHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1
ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVy
biAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1
ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRT
YW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZiko
Y29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRC
dWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVy
UmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWlu
KG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwCmlu
ZGV4IGMzZmU4MjFiOWM1MjBjOTIyNGU1ZGU4ODhlNTE4YzMxOTZmMzFjYjUuLmEwMjQwODRjMjRl
NmQzNjM5NjA4YTY0NjUyZWNjNWQ2ZDllZmFjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IgogI2VuZGlmCiAKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNp
bmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTIzLDkgKzEyNCw5IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdDo6c3RhcnQoKQogICAgIGlmICghbV9yZW1vdGVJT1VuaXQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9PdXRwdXRVbml0U3RhcnQo
bV9yZW1vdGVJT1VuaXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvT3V0cHV0
VW5pdFN0YXJ0KG1fcmVtb3RlSU9Vbml0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQg
QXVkaW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwotICAgICAg
ICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CisgICAgICAg
IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAg
ICAgICBtX3JlbW90ZUlPVW5pdCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xMzksMTEgKzE0MCwxMSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQ6OnN0b3AoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1N0
YXJ0ZWQpIHsKLSAgICAgICAgQXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7Cisg
ICAgICAgIFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CiAgICAgICAg
IG1faXNTdGFydGVkID0gZmFsc2U7CiAgICAgfQogCi0gICAgQXVkaW9Db21wb25lbnRJbnN0YW5j
ZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOworICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5j
ZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAgIG1fcmVtb3RlSU9Vbml0ID0gbnVsbHB0cjsK
IH0KIApAQCAtMTYzLDE0ICsxNjQsMTQgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgaW9V
bml0RGVzY3JpcHRpb24uY29tcG9uZW50U3ViVHlwZSA9IGtBdWRpb1VuaXRTdWJUeXBlX0RlZmF1
bHRPdXRwdXQ7CiAjZW5kaWYKIAotICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVk
aW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1
ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51
bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAg
ICBpZiAoIWlvQ29tcG9uZW50KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1Vu
aXQgdW5hYmxlIHRvIGZpbmQgcmVtb3RlIElPIHVuaXQgY29tcG9uZW50Iik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBhdXRvIGVycm9yID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6QXVk
aW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CiAgICAg
aWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxl
IHRvIG9wZW4gdnBpbyB1bml0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47
CkBAIC0xNzgsNyArMTc5LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIFVJbnQzMiBwYXJhbSA9IDE7Ci0gICAgZXJyb3IgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFi
bGVJTywga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsK
KyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVk
aW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAs
ICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgb3V0cHV0
LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xODcsNyArMTg4LDcg
QEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0Ojpj
cmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1f
ZGV2aWNlSUQpIHsKLSAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJ
T1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0
U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAg
ICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlv
T3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWws
IDAsICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOwogICAgICAgICBpZiAoZXJyb3Ip
IHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNl
dCB1bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludCltX2RldmljZUlELCAo
aW50KWVycm9yLCAoY2hhciopJmVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5Niwx
NCArMTk3LDE0IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogI2VuZGlmCiAKICAgICBBVVJlbmRl
ckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0OjpyZW5kZXJpbmdDYWxsYmFjaywgdGhpcyB9OwotICAgIGVycm9y
ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlf
U2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywg
c2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5
KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVk
aW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAg
IGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJs
ZSB0byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG91dHB1dERl
c2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkpOwotICAgIGVycm9yICA9IEF1ZGlvVW5pdEdl
dFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3Jp
cHRpb24oKSwgJnNpemUpOworICAgIGVycm9yICA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHko
cmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0
U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCAm
c2l6ZSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRp
b1VuaXQgdW5hYmxlIHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm47CkBAIC0yMTEsMTMgKzIxMiwxMyBAQCB2b2lkIExvY2FsQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElm
TmVlZGVkKCkKIAogICAgIG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkubVNh
bXBsZVJhdGUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCk7CiAK
LSAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0
RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9u
LnN0cmVhbURlc2NyaXB0aW9uKCkpKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJv
cGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlv
bigpLCBzaXplb2Yob3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSkpOwogICAg
IGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJs
ZSB0byBzZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGVycm9yID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1v
dGVJT1VuaXQpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlP
VW5pdCk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRp
b1VuaXQgQXVkaW9Vbml0SW5pdGlhbGl6ZSgpIGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDRiNzg4
YWU1YWE4N2I3MjllNWJkY2Y5Y2Y3MTM4MTJjNjc3MGEzMjUuLmUyZTAwYjM5N2IxMzljNDgyZmYw
M2MwMTI2NjJhMDBjNzRjYWMxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAg
LTUxLDcgKzUxLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIEBpbnRlcmZh
Y2UgV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgOiBOU09iamVjdDxBVkNhcHR1
cmVWaWRlb0RhdGFPdXRwdXRTYW1wbGVCdWZmZXJEZWxlZ2F0ZT4gewogICAgIEFWVmlkZW9DYXB0
dXJlU291cmNlKiBtX2NhbGxiYWNrOwpAQCAtMzUxLDEwICszNTAsMTAgQEAgdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUoKQogICAgICAgICAgICAg
aWYgKGZyYW1lUmF0ZVJhbmdlKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50RnJhbWVSYXRl
ID0gY2xhbXBUbyhtX2N1cnJlbnRGcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lUmF0
ZSwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVSYXRlKTsKIAotICAgICAgICAgICAgICAgIGF1dG8g
ZnJhbWVEdXJhdGlvbiA9IENNVGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKLSAgICAg
ICAgICAgICAgICBpZiAoQ01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5n
ZS5taW5GcmFtZUR1cmF0aW9uKSA8IDApCisgICAgICAgICAgICAgICAgYXV0byBmcmFtZUR1cmF0
aW9uID0gUEFMOjpDTVRpbWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7CisgICAgICAgICAg
ICAgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5n
ZS5taW5GcmFtZUR1cmF0aW9uKSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRp
b24gPSBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0aW9uOwotICAgICAgICAgICAgICAgIGVs
c2UgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJh
bWVEdXJhdGlvbikgPiAwKQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBBTDo6Q01UaW1lQ29t
cGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uKSA+IDAp
CiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVSYW5nZS5tYXhG
cmFtZUR1cmF0aW9uOwogCiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIo
KSwgTE9HSURFTlRJRklFUiwgInNldHRpbmcgZnJhbWUgcmF0ZSB0byAiLCBtX2N1cnJlbnRGcmFt
ZVJhdGUsICIsIGR1cmF0aW9uICIsIFBBTDo6dG9NZWRpYVRpbWUoZnJhbWVEdXJhdGlvbikpOwpA
QCAtNDM0LDYgKzQzMyw4IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lv
bigpCiAKIEFWRnJhbWVSYXRlUmFuZ2UqIEFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0
aW9uRm9yRnJhbWVSYXRlKGRvdWJsZSByYXRlKQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7
IC8vIEZvciBDTVRJTUVfQ09NUEFSRV9JTkxJTkUKKwogICAgIEFWRnJhbWVSYXRlUmFuZ2UgKmJl
c3RGcmFtZVJhdGVSYW5nZSA9IG5pbDsKICAgICBmb3IgKEFWRnJhbWVSYXRlUmFuZ2UgKmZyYW1l
UmF0ZVJhbmdlIGluIFtbZGV2aWNlKCkgYWN0aXZlRm9ybWF0XSB2aWRlb1N1cHBvcnRlZEZyYW1l
UmF0ZVJhbmdlc10pIHsKICAgICAgICAgaWYgKGZyYW1lUmF0ZVJhbmdlSW5jbHVkZXNSYXRlKHsg
W2ZyYW1lUmF0ZVJhbmdlIG1pbkZyYW1lUmF0ZV0sIFtmcmFtZVJhdGVSYW5nZSBtYXhGcmFtZVJh
dGVdIH0sIHJhdGUpKSB7CkBAIC01OTgsNyArNTk5LDcgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6Z2VuZXJhdGVQcmVzZXRzKCkKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gcHJl
c2V0czsKICAgICBmb3IgKEFWQ2FwdHVyZURldmljZUZvcm1hdCogZm9ybWF0IGluIFtkZXZpY2Uo
KSBmb3JtYXRzXSkgewogCi0gICAgICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlw
dGlvbik7CisgICAgICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9u
KTsKICAgICAgICAgSW50U2l6ZSBzaXplID0geyBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25z
LmhlaWdodCB9OwogICAgICAgICBhdXRvIGluZGV4ID0gcHJlc2V0cy5maW5kTWF0Y2hpbmcoWyZz
aXplXShhdXRvJiBwcmVzZXQpIHsKICAgICAgICAgICAgIHJldHVybiBzaXplID09IHByZXNldC0+
c2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcAppbmRleCA2ZTI2YzhmYTRl
Y2QzMGFjMWU1MmZlYzM4YWY1N2QwZTMzZDliYzI0Li5lMTU1NDYyZjUxODE1ODhiYTNiYzk0NTZj
NmI2YWU5YWZlMjFiNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCkBA
IC0xOSw3ICsxOSw3IEBACiAgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiAoSU5DTFVESU5HIE5FR0xJR0VQQUw6Ok5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
CkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGJv
b2wgZ2V0RGV2aWNlSW5mbyh1aW50MzJfdCBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZSB0eXBlLCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwgU3RyaW5nJiBsYWJlbCkKIHsKQEAgLTIw
NSw3ICsyMDQsNyBAQCBSZXRhaW5QdHI8Q01DbG9ja1JlZj4gQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZTo6ZGV2aWNlQ2xvY2soKQogICAgICAgICByZXR1cm4gbV9kZXZpY2VDbG9jazsKIAogICAgIENN
Q2xvY2tSZWYgY2xvY2s7Ci0gICAgYXV0byBlcnIgPSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgcGVyc2lzdGVudElkKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQo
KSwgJmNsb2NrKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIHBlcnNpc3RlbnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCksICZjbG9jayk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUo
JXApIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cyki
LCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCAwM2YzZTYyYTI2MzdjM2U5
MDFiYWY2OTRkM2M1MjY1ZWZhNzRhZWIyLi5mNGIzNjU4OTRkMzdjZDk0ZmYyMWI3ZmI1NGZkYjI2
NDFmMzZmZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00OCw2
ICs0OCw4IEBACiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaW5jbHVkZSA8
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTcsNyArNTksNiBA
QAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAK
ICNpZiBQTEFURk9STShNQUMpCiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpCkBAIC0yMDMsNyArMjA0LDcgQEAg
T1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIG1fRFRT
Q29udmVyc2lvblJhdGlvID0gMWUtOSAqIHN0YXRpY19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZv
Lm51bWVyKSAvIHN0YXRpY19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZvLmRlbm9tKTsKIAogICAg
IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gaW9Vbml0RGVzY3JpcHRpb24gPSB7IGtBdWRpb1Vu
aXRUeXBlX091dHB1dCwga0F1ZGlvVW5pdFN1YlR5cGVfVm9pY2VQcm9jZXNzaW5nSU8sIGtBdWRp
b1VuaXRNYW51ZmFjdHVyZXJfQXBwbGUsIDAsIDAgfTsKLSAgICBBdWRpb0NvbXBvbmVudCBpb0Nv
bXBvbmVudCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0
aW9uKTsKKyAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25l
bnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChpb0Nv
bXBvbmVudCk7CiAgICAgaWYgKCFpb0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5h
YmxlIHRvIGZpbmQgdnBpbyB1bml0IGNvbXBvbmVudCIsIHRoaXMpOwpAQCAtMjEyLDcgKzIxMyw3
IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lm
ICFMT0dfRElTQUJMRUQKICAgICBDRlN0cmluZ1JlZiBuYW1lID0gbnVsbHB0cjsKLSAgICBBdWRp
b0NvbXBvbmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7CisgICAgUEFMOjpBdWRpb0Nv
bXBvbmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7CiAgICAgaWYgKG5hbWUpIHsKICAg
ICAgICAgbV9pb1VuaXROYW1lID0gbmFtZTsKICAgICAgICAgQ0ZSZWxlYXNlKG5hbWUpOwpAQCAt
MjIwLDcgKzIyMSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9V
bml0KCkKICAgICB9CiAjZW5kaWYKIAotICAgIGF1dG8gZXJyID0gQXVkaW9Db21wb25lbnRJbnN0
YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVk
aW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKICAgICBpZiAo
ZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gb3BlbiB2cGlvIHVuaXQsIGVycm9y
ICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVy
biBlcnI7CkBAIC0yMjgsMTMgKzIyOSwxMyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0
OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICAgICBpZiAoIWVuYWJsZUVjaG9DYW5jZWxsYXRpb24oKSkg
ewogICAgICAgICB1aW50MzJfdCBwYXJhbSA9IDA7Ci0gICAgICAgIGVyciA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNzaW5nRW5h
YmxlQUdDLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2Yo
cGFyYW0pKTsKKyAgICAgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5p
dCwga0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJvY2Vzc2luZ0VuYWJsZUFHQywga0F1ZGlvVW5p
dFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgICAg
IGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gYXV0
b21hdGljIGdhaW4gY29udHJvbCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChj
aGFyKikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgICAgIH0KICAgICAgICAg
cGFyYW0gPSAxOwotICAgICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwg
a0FVVm9pY2VJT1Byb3BlcnR5X0J5cGFzc1ZvaWNlUHJvY2Vzc2luZywga0F1ZGlvVW5pdFNjb3Bl
X0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgICAgIGVyciA9
IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9C
eXBhc3NWb2ljZVByb2Nlc3NpbmcsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAm
cGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlv
VW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgZWNobyBjYW5jZWxsYXRpb24sIGVycm9y
ICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICBy
ZXR1cm4gZXJyOwpAQCAtMjQzLDcgKzI0NCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWlu
dDMyX3QgcGFyYW0gPSAxOwotICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0
LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9JbnB1
dCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgZXJyID0gUEFMOjpBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJs
ZUlPLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJh
bSkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBlbmFibGUg
dnBpbyB1bml0IGlucHV0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIq
KSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjU1LDcgKzI1Niw3IEBAIE9TU3RhdHVz
IENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICAgICAgICAgIHJldHVy
biBlcnI7CiAgICAgfQogCi0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQs
IGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVf
R2xvYmFsLCBpbnB1dEJ1cywgJm1fY2FwdHVyZURldmljZUlELCBzaXplb2YobV9jYXB0dXJlRGV2
aWNlSUQpKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBr
QXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0ds
b2JhbCwgaW5wdXRCdXMsICZtX2NhcHR1cmVEZXZpY2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmlj
ZUlEKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2
cGlvIHVuaXQgY2FwdHVyZSBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChp
bnQpbV9jYXB0dXJlRGV2aWNlSUQsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJl
dHVybiBlcnI7CkBAIC0yNzAsNyArMjcxLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5p
dDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIGlmIChlcnIpCiAgICAgICAgIHJldHVybiBlcnI7CiAK
LSAgICBlcnIgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1faW9Vbml0KTsKKyAgICBlcnIgPSBQQUw6
OkF1ZGlvVW5pdEluaXRpYWxpemUobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRp
b1VuaXQoJXApIEF1ZGlvVW5pdEluaXRpYWxpemUoKSBmYWlsZWQsIGVycm9yICVkICglLjRzKSIs
IHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0y
OTIsNyArMjkzLDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0Ojp1bmR1Y2soKQogT1NTdGF0
dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQogewogICAg
IEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IG1pY3JvcGhvbmVDYWxsYmFjaywg
dGhpcyB9OwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtB
dWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVf
R2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRv
IGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVu
aXRQcm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1
dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZp
Z3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBtaWMgcHJvYywg
ZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAg
cmV0dXJuIGVycjsKQEAgLTMwMSwxNCArMzAyLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24gbWljcm9waG9uZVByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9
IHNpemVvZihtaWNyb3Bob25lUHJvY0Zvcm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0R2V0UHJv
cGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1Vu
aXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZzaXplKTsK
KyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0
UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywg
Jm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVN
aWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIGdldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJy
b3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0
dXJuIGVycjsKICAgICB9CiAKICAgICBtaWNyb3Bob25lUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSA9
IHNhbXBsZVJhdGUoKTsKLSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwg
a0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwg
aW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJyID0gUEFMOjpB
dWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zv
cm1hdCwgc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkg
dW5hYmxlIHRvIHNldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhp
cywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMyMyw3
ICszMjQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bo
b25lUHJvYygpCiBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2Vy
UHJvYygpCiB7CiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgc3BlYWtl
ckNhbGxiYWNrLCB0aGlzIH07Ci0gICAgYXV0byBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0
U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAg
ICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRw
dXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25m
aWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgc3BlYWtlciBwcm9j
LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAg
ICByZXR1cm4gZXJyOwpAQCAtMzMyLDE0ICszMzMsMTQgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoKQogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiBzcGVha2VyUHJvY0Zvcm1hdCA9IHsgfTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6
ZW9mKHNwZWFrZXJQcm9jRm9ybWF0KTsKLSAgICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3Bl
X0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9
IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9T
dHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclBy
b2NGb3JtYXQsICZzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVw
KSB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRo
aXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQog
CiAgICAgc3BlYWtlclByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7Ci0gICAg
ZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9T
dHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclBy
b2NGb3JtYXQsIHNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9J
bnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUpOwogICAgIGlmIChlcnIp
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5p
dDo6Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZv
cm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAg
ICAgICAgcmV0dXJuIGVycjsKQEAgLTQ1OSw3ICs0NjAsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQoKQogICAgIH0KIAogICAgIGlmIChtX2lvVW5pdCkgewot
ICAgICAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX2lvVW5pdCk7CisgICAgICAg
IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9pb1VuaXQpOwogICAgICAgICBt
X2lvVW5pdCA9IG51bGxwdHI7CiAgICAgfQogCkBAIC00NzcsNyArNDc4LDcgQEAgT1NTdGF0dXMg
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gQXVkaW9P
dXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRV
bml0U3RvcChtX2lvVW5pdCk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVk
aW9Vbml0KCVwKSBBdWRpb091dHB1dFVuaXRTdG9wIGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRz
KSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJy
OwpAQCAtNDkwLDcgKzQ5MSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29u
ZmlndXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0dXJuIGVycjsKIAogICAgIGlmIChtX2lvVW5p
dFN0YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQp
OworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKICAg
ICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoJXApIEF1ZGlvT3V0cHV0
VW5pdFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtNTE0LDcgKzUxNSw3IEBA
IE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwoKQogCiAgICAgdW5k
dWNrKCk7CiAKLSAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAg
ZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAgaWYgKGVycikg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0
OjpzdGFydCglcCkgQXVkaW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUu
NHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgY2xlYW51cEF1ZGlv
VW5pdCgpOwpAQCAtNTUxLDcgKzU1Miw3IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3Rv
cEludGVybmFsKCkKICAgICBpZiAoIW1faW9Vbml0IHx8ICFtX2lvVW5pdFN0YXJ0ZWQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGF1dG8gZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5p
dCk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOwog
ICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1
ZGlvU2hhcmVkVW5pdDo6c3RvcCglcCkgQXVkaW9PdXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBl
cnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICBy
ZXR1cm47CkBAIC01NjUsNyArNTY2LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
ZGVmYXVsdElucHV0RGV2aWNlKHVpbnQzMl90KiBkZXZpY2VJRCkKICAgICBBU1NFUlQobV9pb1Vu
aXQpOwogCiAgICAgVUludDMyIHByb3BlcnR5U2l6ZSA9IHNpemVvZigqZGV2aWNlSUQpOwotICAg
IGF1dG8gZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVu
aXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1
cywgZGV2aWNlSUQsICZwcm9wZXJ0eVNpemUpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1Vu
aXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnRE
ZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCBkZXZpY2VJRCwgJnByb3Bl
cnR5U2l6ZSk7CiAgICAgaWYgKGVycikKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRD
LCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKCVwKSB1bmFibGUgdG8g
Z2V0IGRlZmF1bHQgaW5wdXQgZGV2aWNlIElELCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50
KWVyciwgKGNoYXIqKSZlcnIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5jcHAKaW5kZXggM2Y0ZTRkY2Y0MmMwZmE5M2VmOWFiNjJkZDIyYTk3YzUxMzg3MDY2My4uNTgy
ZjRiMjZjZjExOGM0OTcxYWNkN2QxODMwOTIxOTdlMWU3NjgyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtNTYsNyArNTYsNiBAQAogI2luY2x1ZGUgIkNv
cmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6
OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQppbmRleCBhYTdm
ZjA4NzUwNTQyNTgyZjFlZjkxNjdhODFlNmZiNWE1NDhmMTUyLi5iODZiMDVlOGM2NjViYzJlODA1
ZjI3YjM4YjFhNGZkMzMxM2Y5MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAt
NDQsMTQgKzQ0LDEwIEBACiAjaW1wb3J0IDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4K
ICNpbXBvcnQgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogCisjaW1wb3J0IDxwYWwvY2Yv
QXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgogCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkKLQotU09GVF9MSU5LKEF1
ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0
QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91
dEF1ZGlvQ29udmVydGVyKSkKLQogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKIAogc3RhdGljIGlubGluZSBzaXplX3QgYWxpZ25UbzE2Qnl0ZXMoc2l6ZV90IHNpemUp
CiB7CkBAIC0yMjEsNyArMjE3LDcgQEAgdm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZp
Z3VyZSgpCiAgICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVy
TGlzdD4obV9zdHJlYW1Gb3JtYXQsIG1fbWF4aW1pdW1GcmFtZUNvdW50KTsKIAogICAgIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb247Ci0gICAgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlKE5VTEwsICZtX3N0cmVhbUZvcm1hdCwgMCwgTlVMTCwgMCwgTlVMTCwg
TlVMTCwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZShOVUxMLCAmbV9zdHJlYW1Gb3JtYXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEws
ICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0Yo
Zm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgc2l6ZV90IHNhbXBsZUNvdW50ID0gMiAqIHJhdGU7
CkBAIC0yNDMsNyArMjM5LDcgQEAgdm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxl
QnVmZmVycyh1aW50MzJfdCBmcmFtZUNvdW50KQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwogICAgIEFTU0VSVChtX2Zvcm1hdERlc2NyaXB0aW9uKTsKIAotICAgIENNVGltZSBzdGFydFRp
bWUgPSBDTVRpbWVNYWtlKG1fc2FtcGxlc0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7CisgICAgQ01U
aW1lIHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVS
YXRlKCkpOwogICAgIG1fc2FtcGxlc0VtaXR0ZWQgKz0gZnJhbWVDb3VudDsKIAogICAgIGF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSksICptX2F1ZGlvQnVm
ZmVyTGlzdCwgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG1fc3RyZWFtRm9ybWF0KSwgZnJhbWVD
b3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggYjA1
OWEzMjUxZDhiOTY1N2JhOTAxNGM0NGY4MDYzYWY4MjdiMWQ0My4uYjYwYjg4NjZmYmI4MDQ4OGMy
M2ZlMmI1NzY5MmIzMGY4N2UzODY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5tbQpAQCAtNTEsNyArNTEsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNv
ZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAK
IENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VD
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDU4MDk0YjM0MjBmMzljOGYyNmMx
Nzc3YTJhZWQwMTIzZGJlYTI2MjguLmFhNjk2YWRkZjdmNzc5MjU5MTUyOTU4M2MyMTYwYzEyNDkx
MWQ1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNv
Y29hLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBS
ZWY8UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlPiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2U6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNl
PiYmIGF1ZGlvVHJhY2ssIFN0cmluZyYmIGF1ZGlvVHJhY2tJZCkKIHsKQEAgLTEzMSw3ICsxMzAs
NyBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hOjpPbkRhdGEoY29uc3Qg
dm9pZCogYXVkaW9EYXRhLCBpbnQgYml0c1BlcgogICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1l
cyA9IDA7CiAgICAgfQogCi0gICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1i
ZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6Q01U
aW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICBhdXRvIG1lZGlhVGlt
ZSA9IFBBTDo6dG9NZWRpYVRpbWUoc3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9
IG51bWJlck9mRnJhbWVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2EubW0KaW5kZXggOGRmOGY2OGY2ZjcyNDA0NzVkYmQ0MzIzMDZhYTNhNTY5ZjZl
NDhjZi4uMGM3MWUxZGIxMGZhNDM3YTdjMDA0M2QzNjRmNDRiZjcyMzcxMWM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtNDIsNyAr
NDIsNiBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKICNpbXBvcnQgPHBhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2Ug
UEFMOwogCiBSZWY8UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlPiBSZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNr
SW50ZXJmYWNlPiYmIHZpZGVvVHJhY2ssIFN0cmluZyYmIHRyYWNrSWQpCiB7CkBAIC0xNzMsMTkg
KzE3MiwxOSBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpPbkZyYW1l
KGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUpCiAgICAgfQogCiAgICAgQ01TYW1wbGVU
aW1pbmdJbmZvIHRpbWluZ0luZm87Ci0gICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3Rh
bXAgPSBDTVRpbWVNYWtlKGZyYW1lLnRpbWVzdGFtcF91cygpLCAxMDAwMDAwKTsKLSAgICB0aW1p
bmdJbmZvLmRlY29kZVRpbWVTdGFtcCA9IGtDTVRpbWVJbnZhbGlkOwotICAgIHRpbWluZ0luZm8u
ZHVyYXRpb24gPSBrQ01UaW1lSW52YWxpZDsKKyAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRp
bWVTdGFtcCA9IFBBTDo6Q01UaW1lTWFrZShmcmFtZS50aW1lc3RhbXBfdXMoKSwgMTAwMDAwMCk7
CisgICAgdGltaW5nSW5mby5kZWNvZGVUaW1lU3RhbXAgPSBQQUw6OmtDTVRpbWVJbnZhbGlkOwor
ICAgIHRpbWluZ0luZm8uZHVyYXRpb24gPSBQQUw6OmtDTVRpbWVJbnZhbGlkOwogCiAgICAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIE9TU3RhdHVz
IG9zdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1h
dERlc2NyaXB0aW9uKTsKKyAgICBPU1N0YXR1cyBvc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJ
bWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAo
b3N0YXR1cyAhPSBub0VycikgewogICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExP
R0lERU5USUZJRVIsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b24gd2l0aCBlcnJvciAiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBv
c3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3Jp
cHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBvc3RhdHVzID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRp
bWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlv
bik7CiAgICAgaWYgKG9zdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxv
Z2dlclB0cigpLCBMT0dJREVOVElGSUVSLCAiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgc2FtcGxlIGJ1
ZmZlciB3aXRoIGVycm9yICIsIHN0YXRpY19jYXN0PGludD4ob3N0YXR1cykpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNmJmMGNh
NDg3ZGQ2NGRiZWY1MzlkOTQ4ODBmNjI4YzdmYTE2MWJmMS4uZTMzYmI2ZGE5ZGRkZDAxYTAwZDk5
NmZkOWVmMDJhYzk4MTRhMWViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC00NSw3ICs0NSw2IEBAIEFMTE9XX1VOVVNFRF9QQVJB
TUVURVJTX0VORAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U+IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlZjxNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZT4mJiB2aWRlb1NvdXJjZSkKIHsKQEAgLTg1LDcgKzg0LDcgQEAgdm9p
ZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUo
TWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICB9CiAKICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3Jt
U2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKLSAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1w
bGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhl
bEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0
Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIGF1dG8gcGl4ZWxGb3Jt
YXRUeXBlID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiAK
ICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY29udmVydGVkQnVmZmVyID0gcGl4ZWxC
dWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQppbmRleCA3OGJiY2Fk
MTM5OTg2MmY1NWI5NzBiZTQ3N2YyNTE0YzRmMzQ4NDU0Li4xMjkzZGE1NTlmOTI5YTdhZWVjNTRk
MDdhYTlhZTRmOTk0Zjk1YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMu
bW0KQEAgLTQ2LDcgKzQ2LDYgQEAKIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0dJbWFnZSk7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBi
b29sIGFueU9mQ0dXaW5kb3coY29uc3QgRnVuY3Rpb248Ym9vbChDRkRpY3Rpb25hcnlSZWYgaW5m
bywgdW5zaWduZWQgaWQsIGNvbnN0IFN0cmluZyYgdGl0bGUpPiYgcHJlZGljYXRlKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVN
ZWRpYVdyYXBwZWQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCmluZGV4IGExNmQyNDI1NjQxZjM3YTE5ZDBjMDllNTRi
YzNlZWY0YWEyODE4ZWEuLjBiYWMxZTI4OWU3NzcyZWFlN2U2YjM2OTgxMDg1OTRiN2E2ODY4NTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9D
b3JlTWVkaWFXcmFwcGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKQEAgLTM0LDE3ICszNCwxNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogYm9vbCBjcmVhdGVXcmFwcGVyKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgY29uc3QgQ01CYXNlVlRhYmxlKiBiYXNlVlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNz
SUQsIENNQmFzZU9iamVjdFJlZiogd3JhcHBlcikKIHsKLSAgICByZXR1cm4gQ01EZXJpdmVkT2Jq
ZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZUYWJsZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0gbm9F
cnI7CisgICAgcmV0dXJuIFBBTDo6Q01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFz
ZVZUYWJsZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0gbm9FcnI7CiB9CiAKIHZvaWQqIHdyYXBwZXJT
dG9yYWdlKENNQmFzZU9iamVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVybiBDTUJhc2VPYmpl
Y3RHZXREZXJpdmVkU3RvcmFnZSh3cmFwcGVyKTsKKyAgICByZXR1cm4gUEFMOjpDTUJhc2VPYmpl
Y3RHZXREZXJpdmVkU3RvcmFnZSh3cmFwcGVyKTsKIH0KIAogY29uc3QgQ01CYXNlVlRhYmxlKiB3
cmFwcGVyVlRhYmxlKENNQmFzZU9iamVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVybiBDTUJh
c2VPYmplY3RHZXRWVGFibGUod3JhcHBlcik7CisgICAgcmV0dXJuIFBBTDo6Q01CYXNlT2JqZWN0
R2V0VlRhYmxlKHdyYXBwZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1h
dFJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
TWVkaWFGb3JtYXRSZWFkZXIuY3BwCmluZGV4IGMxODRlNDQ3YjJjZDQ0MmE4NDdlYzMxNjIzMzZi
NmZhZjc4NzNjN2MuLjVlNzc4Y2MwYjdiZGE3NGUzZjc1Yzk5YjU4YmE4YmZhMjUxNzI5MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRp
YUZvcm1hdFJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcApAQCAtNDcsNyArNDcsNiBAQCBXVEZfREVD
TEFSRV9DRl9UWVBFX1RSQUlUKE1UUGx1Z2luRm9ybWF0UmVhZGVyKTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogc3RhdGljIGNvbnN0IHZvaWQqIG5leHRMb2dJZGVudGlmaWVyKCkKQEAgLTI0NSw3ICsyNDQs
NyBAQCBPU1N0YXR1cyBNZWRpYUZvcm1hdFJlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVm
IGtleSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdAogICAgIGlmIChtX2R1cmF0aW9uLmlzSW5kZWZp
bml0ZSgpKQogICAgICAgICByZXR1cm4ga0NNQmFzZU9iamVjdEVycm9yX1ZhbHVlTm90QXZhaWxh
YmxlOwogCi0gICAgaWYgKGF1dG8gbGVha2VkRHVyYXRpb24gPSBhZG9wdENGKENNVGltZUNvcHlB
c0RpY3Rpb25hcnkoUEFMOjp0b0NNVGltZShtX2R1cmF0aW9uKSwgYWxsb2NhdG9yKSkubGVha1Jl
ZigpKSB7CisgICAgaWYgKGF1dG8gbGVha2VkRHVyYXRpb24gPSBhZG9wdENGKFBBTDo6Q01UaW1l
Q29weUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1lKG1fZHVyYXRpb24pLCBhbGxvY2F0b3IpKS5s
ZWFrUmVmKCkpIHsKICAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmKj4o
dmFsdWVDb3B5KSA9IGxlYWtlZER1cmF0aW9uOwogICAgICAgICByZXR1cm4gbm9FcnI7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAKaW5kZXggZDgzZWZjZjQ3NzVj
ZTk2YjEyYTg3NjBmOGQxNzIzNGFiMGYxZWU3ZC4uNGRlMWQwZWQyYTdiZTQ5ZTNjYmJiOTVlMzc3
ZjU0NTA5ZmFjMDdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlh
Rm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCkBA
IC0yNSwxMiArMjUsMTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1lZGlh
U2FtcGxlQnl0ZVJhbmdlLmgiCisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+
CiAKICNpZiBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBNZWRp
YVNhbXBsZUJ5dGVSYW5nZTo6TWVkaWFTYW1wbGVCeXRlUmFuZ2UoTWVkaWFTYW1wbGUmIHNhbXBs
ZSwgTVRQbHVnaW5CeXRlU291cmNlUmVmIGJ5dGVTb3VyY2UsIHVpbnQ2NF90IHRyYWNrSUQpCkBA
IC01MCw3ICs1MCw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5n
ZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAgYXV0byBwbGF0Zm9y
bVNhbXBsZSA9IHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIHN3aXRjaCAocGxhdGZvcm1T
YW1wbGUudHlwZSkgewogICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlw
ZToKLSAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0
RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICAg
ICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNj
cmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBsYXRmb3JtU2FtcGxlOjpCeXRlUmFuZ2VTYW1wbGVUeXBlOgogICAg
ICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLmJ5dGVSYW5n
ZVNhbXBsZS5zZWNvbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcAppbmRleCBjZTI5
MDZkYzQ0MjliODc1MTRhN2IwMGMzMjE3MzkyZDUwN2IzZjk1Li5mYmU0MjI3MzA2ZjgwZjYxYzEy
N2MzMzhjNzFlZmE1NGEyZDIwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAK
QEAgLTQzLDcgKzQzLDYgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblNhbXBs
ZUN1cnNvcik7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBNZWRpYVRpbWUgYXNzdW1lZERlY29k
ZVRpbWUoY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50YXRpb25UaW1lLCBEZWNvZGVPcmRlclNhbXBs
ZU1hcCYgbWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCmluZGV4IDkwODYxYzg0ZGRl
NmM2NmRkYjg3NzkzYWIyMzA2YTY2ZTRkZWI3MzEuLjFkYzFjYWUwMzAwOGUwYTIwYTQ0YWM3M2Qx
YWEzNzI1MzU3ZjIwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKQEAgLTQ3LDcg
KzQ3LDYgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblRyYWNrUmVhZGVyKTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogQ01CYXNlQ2xhc3NJRCBNZWRpYVRyYWNrUmVhZGVyOjp3cmFwcGVy
Q2xhc3NJRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IDQyNzk2OWMyODIxMThhYzNjM2Q3NzA4M2VhYjgyZDk1
ZmQwYWJlZmYuLjE3MWQ5Y2E0ODQ5MTVkN2FmNGVlYWQ2OTcwOTk5MWU1MDRkNDI3OTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNv
Y29hLm1tCkBAIC0yNjksNyArMjY5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRBdWRp
b0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMoKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAK
LSAgICBpZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFjYW5M
b2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlv
bnMoKSkKKyAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxl
KCkgfHwgIVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hT
ZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVG
QVVMVCwgMCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIG11dGFibGUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01l
ZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KaW5kZXggZjM3ODRmYzI3MTJiMGRmNjM4NzEyMDQ3Y2Q3
MmY4NTMwYzc3NzIzNC4uMmE4M2Q5NzEwYmY3MjU1ZTU5Mzg1YzFiMWY2NTkzNGMyNjMwNTU1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2Nv
YS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCkBAIC00Miw3ICs0Miw2IEBAIEBlbmQKIE5TX0FT
U1VNRV9OT05OVUxMX0VORAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGJvb2wgdXNhZ2VUcmFja2lu
Z0F2YWlsYWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggYzMyM2E2YTc4YjQ1MDA1
YjY3NzQwODYyYjYyOWIxNmZiYjgwZjQwYi4uZjg5MWE1MzMxNDUwYmYxN2VhZjk1YjAwZTMxOGRh
ZTNjNzM4NzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDEsNyArNDEsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA5NWJiZDU0ODNjZmVhMTdjOTEyZWQ1
YjVmMTNmNDMxZmFlMzcxMjY3Li44YTU5YWUxYTI4ZmE0M2E5YjJmMjE1NzYyMTE4OWFlOTc2ZDEw
MmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNDEsNyArNDEsNiBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6On5SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KaW5kZXggNjZhMTllNzNhOWViNTY0ZGNjZTA3NzdkYzMyMDBlNGMwYmM5M2M2
MC4uOGFjYzNkMGE4YWIxY2NkNGIzZmVjYWQ2MGIzYTZiYzNhZTY0MzAyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMzky
LDcgKzEzOTIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lz
dHJhdGlvbnMoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYQogewogICAgIHVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKLSAgICBpZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJs
ZSgpIHx8ICFjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZl
clJlZ2lzdHJhdGlvbnMoKSkKKyAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3
b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29t
cG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGF1dG8gcmVnaXN0cmF0aW9ucyA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432102</attachid>
            <date>2021-06-23 16:13:10 -0700</date>
            <delta_ts>2021-06-23 16:42:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210624091308.patch</filename>
            <type>text/plain</type>
            <size>309828</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJlMjllYTAwYjM3YjBk
NTI2ZjRmYzAwMjYxZmE4ODQxNzUzNGFhYS4uZjVlYWYxMjM0ODY3MTdkOThlMmQyZmRkNDMyOGE4
YWI0ZDgxNTRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlIG9m
IEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgVW5pZnkgQXVkaW9Ub29sYm94LCBDb3JlTWVkaWEsIFZpZGVvVG9vbGJveCBhbmQg
TWVkaWFUb29sYm94J3MgbWV0aG9kCisgICAgICAgIGRlZmluaXRpb25zIGFuZCB0aGVpciB1c2Us
IGVuc3VyaW5nIHRoYXQgdGhleSBhcmUgYWx3YXlzIHNvZnQtbGlua2VkLgorICAgICAgICBVbmlm
aWVkIGJ1aWxkcyBhbmQgdGhlIGluY29uc2lzdGVudCB1c2Ugb2YgZXhwbGljaXRseSB1c2luZyB0
aGUgUEFMIG5hbWVzcGFjZQorICAgICAgICBjYXVzZWQgc29tZSBjYWxscyB0byBiZSBhbWJpZ3Vv
dXMgbGVhZGluZyB0byBjb21waWxhdGlvbiBlcnJvcnM7IHNvbWUKKyAgICAgICAgY29kZSB3b3Vs
ZCBhbHNvIHVzZSB0aGUgc29mdGxpbmtlZCBtZXRob2RzIHdoaWxlIG90aGVycyBjYWxsZWQgaW50
byB0aGUgZnJhbWV3b3JrcworICAgICAgICBkaXJlY3RseS4KKyAgICAgICAgVG8gZ2V0IGFyb3Vu
ZCB0aG9zZSB3ZSBlbnN1cmUgdGhhdCBhbnkgY2FsbHMgdG8gQXVkaW9Ub29sYm94IG9yIENvcmVN
ZWRpYSBpcyBhbHdheXMgdXNpbmcKKyAgICAgICAgdGhlIGZ1bGx5IHJlc29sdmVkIFBBTCBuYW1l
LgorICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgYHVzaW5nIG5hbWVzcGFjZSBQQUw7YCBzdGF0
ZW1lbnRzIHdoZXJldmVyIGFwcGxpY2FibGUuCisgICAgICAgIE5vIGNoYW5nZSBpbiBvYnNlcnZh
YmxlIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0ZpbGVSZWFkZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3ApOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW06CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3Vy
ZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9T
YW1wbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnBy
ZXBhcmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
SW1hZ2VHZW5lcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwbGF0Zm9ybU1pblRpbWVTZWVrYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6c3RvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
aXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRD
aGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNlZWtJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRl
c3Ryb3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OnZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJl
Zj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0
ZUltYWdlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6cHJl
c2VudGF0aW9uVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmRlY29kZVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkdXJhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OnNpemVJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpkb2Vz
Q01TYW1wbGVCdWZmZXJIYXZlU3luY0luZm8pOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBs
ZUJ1ZmZlclJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudE5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpD
OjpwcmVzZW50YXRpb25TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6OmlzRGl2aXNhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6aXNIb21vZ2VuZW91cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZl
ckFuZFNldEFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhblNldE1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNr
RGF0YTo6Y29uc3VtZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1l
RnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1
ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQ01Db2xvclByaW1hcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9DTVRy
YW5zZmVyRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01ZQ2JDUk1hdHJp
eCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVj
Q29uZmlndXJhdGlvblJlY29yZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFp
dDxDTVNhbXBsZUJ1ZmZlclJlZj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29t
cHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0VmlkZW9G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1
dG9tYXRpY0RlcXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50YXRpb25UaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RHVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVmZmVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnVwZGF0
ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWth
YmxlUmFuZ2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0
dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dX
YXRlclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm9jZXNzU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29t
cHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNz
ZXRXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjph
cHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXApOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRp
b1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y29tcGxldGVGZXRjaERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpyZXN1bWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZp
bmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZp
ZGVvQ29tcHJlc3Npb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OnZ0UHJvZmlsZUxldmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1w
bGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkxvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZyYW1lRHVyYXRpb25Gb3JGcmFtZVJhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJlc2V0cyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNl
Q2xvY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNl
dHVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNv
bmZpZ3VyZU1pY3JvcGhvbmVQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpD
b3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW06CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbToKKwogMjAyMS0wNi0yMSAgSmVhbi1Z
dmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbWV0
aG9kIGluIEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggODk3MGY2Yzc5MDRm
ZjNmNWVmODAzNGMwYjFkMmNmMjY5N2NlYzI4OC4uZmMwNTcyMGE5Y2E2YTc5MmM2ZDkxNTM2M2I4
MDcyMDhjNWVkNDFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEt
MDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBOb3Qg
YWxsIHVzZSBvZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAg
ICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaDogQWRkIG1ldGhvZHMgd2hvc2Ug
ZGVmaW5pdGlvbnMgd2VyZSBzY2F0dGVyZWQgYWNyb3NzCisgICAgICAgIHRoZSBjb2RlLgorICAg
ICAgICAqIHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFs
L2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmg6IFNhbWUgYXMgYWJvdmUuCisgICAgICAgICog
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9U
b29sYm94U29mdExpbmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kcworICAgICAgICAqIHBhbC9jZi9D
b3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg6IEFkZCBtaXNzaW5nIG1ldGhvZHMKKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQg
bWlzc2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAg
ICAgICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBh
bC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIw
MjEtMDYtMjIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0Nv
Y29hXSBpT1MgZGV2aWNlIHN0ZWFscyBCVCBoZWFkcGhvbmVzIGZyb20gb3RoZXIgZGV2aWNlcyBk
dXJpbmcgc2lsZW50IHBsYXliYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxMDdjZmUzYzA4MWVjMTAzODE5Nzky
OWVmMzFjZTNmNjA1MzNjMjMuLmIxNjgxNGNjYTkzYTJjNGRkMGM0MzQ5NmM1ZjBiNDE3MDkzYjk0
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDYtMjMgIEplYW4tWXZlcyBBdmVu
YXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBOb3QgYWxsIHVzZSBvZiBBdWRpb1Rvb2xi
b3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzk2
MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgor
ICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAoV2ViS2l0Ojp3
cmFwcGVyU3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBwZXJWVGFibGUpOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0
ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2Ft
cGxlQ3Vyc29yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kQXVk
aW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29j
b2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisKIDIwMjEtMDYtMjMgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJldmVydGluZyByMjc5MTA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDZhODIz
ZDYxYWQxMDEwMzJiYmUxOTRhNjJiNWI2MTU2ZDIzY2FiMTIuLjA5YzJlYTMyOWMyYzBjYTZlZTZm
N2JhM2EyYzQ0YWRmODM0OGU1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTUzLDgg
KzUzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwot
CiAjaWYgIVVTRShMSUJXRUJSVEMpCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBlZXJDb25uZWN0
aW9uQmFja2VuZD4gY3JlYXRlTm9QZWVyQ29ubmVjdGlvbkJhY2tlbmQoUlRDUGVlckNvbm5lY3Rp
b24mKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4IDQwMGY5YjhkMTZiNTkzYjQ4NWUw
MGM3Zjc4ZjU5ZGU5OGRjMzdkOWYuLjc0OTk0ZTJjNTEwMGVjYWJhNjE1OTBmYjExODBhYTBiYzM3
YjBkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdp
bnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAgLTU4LDcgKzU4LDYgQEAKICNpbXBv
cnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHN0
YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aFZhbHVlSW5Db250ZXh0KGlkLCBKU0NvbnRleHQgKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNWIxMzViMzlhNWEwYTFkODAxYmU2
ODc4ZmJkZmY2NzY2YzJlOGFjZS4uZjFjMmFmMzNjNWZhMmFiNmZjNTE2Njk5ODNmYTcwZTc2OTY0
MDI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtMzcsOCArMzcsNiBAQAog
I2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2luY2x1ZGUgIkNvcmVWaWRl
b1NvZnRMaW5rLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RhdGljIGlubGluZSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gc3RyZWFtRGVzY3Jp
cHRpb24oc2l6ZV90IHNhbXBsZVJhdGUsIHNpemVfdCBjaGFubmVsQ291bnQpCkBAIC03MSw3ICs2
OSw3IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKEF1ZGlvQnVz
JiBidXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fbnVtYmVyT2ZGcmFtZXMsIG1fY3Vy
cmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6
Q01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRl
KCkpOwogICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpOwog
ICAgIG1fbnVtYmVyT2ZGcmFtZXMgKz0gbnVtYmVyT2ZGcmFtZXM7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggNjdiNzhm
NDZhNzgxMTc4ODhmMDBkMDg5N2RiYTU3ZTdhYzUzODUwMi4uMzMzYWEyMjRjNzFhNzUwY2Q5YTBm
NjlmNzgzZGQwMTU5NzUxMGFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTI2LDIwICsyNiw0NiBAQAogCiAjaWYgVVNF
KEFWRk9VTkRBVElPTikKIAorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbXBvbmVudC5o
PgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgorI2luY2x1ZGUgPEF1
ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Gb3Jt
YXQuaD4KLQorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb1VuaXQuaD4KKyNpbmNsdWRlIDxB
dWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtp
bmcuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
KQogU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBBdWRpb1Rvb2xib3hDb3JlLCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8s
IE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252
ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBvdXRTaXplLCBCb29sZWFuKiBv
dXRXcml0YWJsZSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIG91dFNpemUsIG91
dFdyaXRhYmxlKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb0Zvcm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9ybWF0UHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0IHZvaWQqIGlu
U3BlY2lmaWVyLCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlE
YXRhKSwgKGluUHJvcGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmllciwgaW9Qcm9w
ZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252
ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0
aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlLCBPU1N0YXR1cywg
KEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIpLCAoaW5BdWRpb0NvbnZlcnRlcikp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9D
b252ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlv
Q29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIg
aW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlv
Q29udmVydGVyLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURh
dGEpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5B
dWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUlu
dDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkF1ZGlv
Q29udmVydGVyLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlE
YXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVy
dGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3Qg
QXVkaW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXRE
YXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwg
b3V0T3V0cHV0RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRp
b0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1
dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywgdm9pZCogaW5JbnB1dERhdGFQcm9jVXNlckRhdGEs
IFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRw
dXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBvdXRQYWNrZXREZXNjcmlwdGlv
biksIChpbkF1ZGlvQ29udmVydGVyLCBpbklucHV0RGF0YVByb2MsIGluSW5wdXREYXRhUHJvY1Vz
ZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRTaXplLCBvdXRPdXRwdXREYXRhLCBvdXRQYWNrZXRE
ZXNjcmlwdGlvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNp
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRp
b091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJ
bnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbkluc3Rh
bmNlKSwgKGluSW5zdGFuY2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBB
dWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUsIE9TU3RhdHVzLCAoQXVkaW9Db21w
b25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXROYW1lKSwgKGluQ29tcG9uZW50LCBv
dXROYW1lKSkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVn
aXN0cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMp
LCAob3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlvVG9vbGJveENvcmUs
IEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0
YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgUEFM
X0VYUE9SVCkKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxlKSwg
KGluQXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkICppbkNs
aWVudERhdGEsIEF1ZGlvRmlsZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQ
cm9jIGluV3JpdGVGdW5jLCBBdWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVk
aW9GaWxlX1NldFNpemVQcm9jIGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVU
eXBlSGludCwgQXVkaW9GaWxlSUQgKm91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVh
ZEZ1bmMsIGluV3JpdGVGdW5jLCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVU
eXBlSGludCwgb3V0QXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlv
RmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlR2V0UHJvcGVy
dHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0Zp
bGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyICppb1Byb3BlcnR5RGF0YVNpemUsIHZv
aWQgKm91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpb1By
b3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlUmVhZCwgT1NTdGF0dXMsIChF
eHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQzMiAqaW9OdW1iZXJGcmFtZXMsIEF1
ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpb051bWJlckZyYW1lcywg
aW9EYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5F
eHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIg
aW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0YSksIChpbkV4dEF1
ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRh
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRB
dWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5GaWxlSUQs
IEJvb2xlYW4gaW5Gb3JXcml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYgKm91dEV4dEF1ZGlvRmlsZSks
IChpbkZpbGVJRCwgaW5Gb3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5VUkws
IE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9G
aWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4dCwgQXVkaW9D
b21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVkaW9Db21wb25l
bnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5z
dGFuY2VOZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2UqIG91dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9V
bml0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJv
cGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGlu
RWxlbWVudCwgdm9pZCogb3V0RGF0YSwgVUludDMyKiBpb0RhdGFTaXplKSwgKGluVW5pdCwgaW5J
RCwgaW5TY29wZSwgaW5FbGVtZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXpl
LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRTZXRQcm9wZXJ0eSwg
T1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1
ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCBjb25zdCB2
b2lkKiBpbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwg
aW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQogCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRB
VElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExp
bmsuaAppbmRleCA0OWUzMmUxNzk0MDM2M2I4NDk3NzQ0MzViZDIwOTVlNjRhYjQ4ODFiLi5kZGYx
M2EwMjdhNDVhMjJiODM5OGQxMzVlOGUwYjNkZmM2ODU1MmI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCkBAIC0yNiwyNyArMjYsMTE0
IEBACiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVB
dWRpb1R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIHR5cGVkZWYgVUlu
dDMyIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRDsKIHR5cGVkZWYgVUludDMyIEF1ZGlvRm9ybWF0
UHJvcGVydHlJRDsKIHR5cGVkZWYgc3RydWN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb247CiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0Nv
bnZlcnRlciogQXVkaW9Db252ZXJ0ZXJSZWY7Cit0eXBlZGVmIHN0cnVjdCBBdWRpb0J1ZmZlckxp
c3QgQXVkaW9CdWZmZXJMaXN0OwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvQ29udmVydGVyQ29t
cGxleElucHV0RGF0YVByb2MpKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsCisg
ICAgVUludDMyKiBpb051bWJlckRhdGFQYWNrZXRzLAorICAgIEF1ZGlvQnVmZmVyTGlzdCogaW9E
YXRhLAorICAgIEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qKiBvdXREYXRhUGFja2V0RGVz
Y3JpcHRpb24sCisgICAgdm9pZCogaW5Vc2VyRGF0YSk7CisKK3R5cGVkZWYgc3RydWN0IE9wYXF1
ZUV4dEF1ZGlvRmlsZSogRXh0QXVkaW9GaWxlUmVmOwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVk
aW9GaWxlSUQqIEF1ZGlvRmlsZUlEOwordHlwZWRlZiBVSW50MzIgQXVkaW9GaWxlVHlwZUlEOwor
dHlwZWRlZiBVSW50MzIgRXh0QXVkaW9GaWxlUHJvcGVydHlJRDsKK3R5cGVkZWYgT1NTdGF0dXMg
KCpBdWRpb0ZpbGVfUmVhZFByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBTSW50
NjQgaW5Qb3NpdGlvbiwKKyAgICBVSW50MzIgcmVxdWVzdENvdW50LAorICAgIHZvaWQqIGJ1ZmZl
ciwKKyAgICBVSW50MzIqIGFjdHVhbENvdW50KTsKK3R5cGVkZWYgT1NTdGF0dXMgKCpBdWRpb0Zp
bGVfV3JpdGVQcm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEsCisgICAgU0ludDY0IGluUG9z
aXRpb24sCisgICAgVUludDMyIHJlcXVlc3RDb3VudCwKKyAgICBjb25zdCB2b2lkKiBidWZmZXIs
CisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7Cit0eXBlZGVmIFNJbnQ2NCAoKkF1ZGlvRmlsZV9H
ZXRTaXplUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhKTsKK3R5cGVkZWYgT1NTdGF0dXMg
KCpBdWRpb0ZpbGVfU2V0U2l6ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBT
SW50NjQgaW5TaXplKTsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29tcG9uZW50KiBBdWRp
b0NvbXBvbmVudDsKKworI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKGRlZmluZWQoQVVESU9DT01Q
T05FTlRfTk9DQVJCT05JTlNUQU5DRVMpICYmIEFVRElPQ09NUE9ORU5UX05PQ0FSQk9OSU5TVEFO
Q0VTKQordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db21wb25lbnRJbnN0YW5jZSogQXVkaW9D
b21wb25lbnRJbnN0YW5jZTsKKyNlbHNlCit0eXBlZGVmIHN0cnVjdCBDb21wb25lbnRJbnN0YW5j
ZVJlY29yZCogQXVkaW9Db21wb25lbnRJbnN0YW5jZTsKKyNlbmRpZgordHlwZWRlZiBBdWRpb0Nv
bXBvbmVudEluc3RhbmNlIEF1ZGlvVW5pdDsKKwordHlwZWRlZiBzdHJ1Y3QgQXVkaW9Db21wb25l
bnREZXNjcmlwdGlvbiBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uOwordHlwZWRlZiBVSW50MzIg
QXVkaW9Vbml0UHJvcGVydHlJRDsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdFNjb3BlOwordHlw
ZWRlZiBVSW50MzIgQXVkaW9Vbml0RWxlbWVudDsKIAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1Jf
SEVBREVSKFBBTCwgQXVkaW9Ub29sYm94KQogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94Q29yZSkKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvLCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJv
cGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogb3V0U2l6ZSwgQm9vbGVhbiogb3V0V3JpdGFi
bGUpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBvdXRTaXplLCBvdXRXcml0YWJs
ZSkpCisjZGVmaW5lIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvIHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbwogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHks
IE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252
ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUs
IHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQs
IGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUgQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVy
dGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZl
cnRlcikpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyTmV3IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9B
dWRpb0NvbnZlcnRlck5ldworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRp
b1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRl
clJlZiBpbkF1ZGlvQ29udmVydGVyKSwgKGluQXVkaW9Db252ZXJ0ZXIpKQorI2RlZmluZSBBdWRp
b0NvbnZlcnRlckRpc3Bvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyRGlz
cG9zZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5B
dWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUlu
dDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Qcm9wZXJ0eURhdGEpLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVy
dHlEYXRhKSkKICNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRp
b1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHksIE9TU3Rh
dHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluU3BlY2lm
aWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVjaWZpZXIsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFT
aXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5Qcm9wZXJ0eUlELCBpblNwZWNpZmllclNp
emUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCiAj
ZGVmaW5lIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
Rm9ybWF0R2V0UHJvcGVydHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVk
aW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywg
KEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZy
YW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0
KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBp
bklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCisjZGVmaW5lIEF1ZGlvQ29udmVydGVyQ29udmVy
dENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyQ29udmVy
dENvbXBsZXhCdWZmZXIKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlv
Q29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0
RGF0YVByb2MgaW5JbnB1dERhdGFQcm9jLCB2b2lkKiBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwg
VUludDMyKiBpb091dHB1dERhdGFQYWNrZXRTaXplLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1
dERhdGEsIEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIG91dFBhY2tldERlc2NyaXB0aW9u
KSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluSW5wdXREYXRhUHJvYywgaW5JbnB1dERhdGFQcm9jVXNl
ckRhdGEsIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIG91dE91dHB1dERhdGEsIG91dFBhY2tldERl
c2NyaXB0aW9uKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlciBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcgorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5p
dFN0YXJ0LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCisjZGVmaW5lIEF1ZGlvT3V0
cHV0VW5pdFN0YXJ0IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb091dHB1dFVuaXRTdGFydAor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0
cHV0VW5pdFN0b3AsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKKyNkZWZpbmUgQXVk
aW9PdXRwdXRVbml0U3RvcCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9PdXRwdXRVbml0U3Rv
cAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50SW5zdGFu
Y2UgaW5JbnN0YW5jZSksIChpbkluc3RhbmNlKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRJbnN0
YW5jZURpc3Bvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50SW5zdGFuY2VE
aXNwb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Db21wb25lbnRDb3B5TmFtZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBv
bmVudCwgQ0ZTdHJpbmdSZWYqIG91dE5hbWUpLCAoaW5Db21wb25lbnQsIG91dE5hbWUpKQorI2Rl
ZmluZSBBdWRpb0NvbXBvbmVudENvcHlOYW1lIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0Nv
bXBvbmVudENvcHlOYW1lCisKIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJh
dGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmKiBvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSwgKG91
dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2RlZmluZSBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVy
UmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlvVG9vbGJveENvcmVBdWRpb0NvbXBvbmVudEZldGNo
U2VydmVyUmVnaXN0cmF0aW9ucwogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0
cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYgaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgKGlu
QnVuZGxlUmVnaXN0cmF0aW9ucykpCiAjZGVmaW5lIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJS
ZWdpc3RyYXRpb25zIHNvZnRMaW5rQXVkaW9Ub29sYm94Q29yZUF1ZGlvQ29tcG9uZW50QXBwbHlT
ZXJ2ZXJSZWdpc3RyYXRpb25zCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkF1
ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCisjZGVmaW5lIEF1ZGlvRmlsZUNsb3NlIHNvZnRMaW5r
X0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVDbG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1
cywgKHZvaWQqIGluQ2xpZW50RGF0YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1
ZGlvRmlsZV9Xcml0ZVByb2MgaW5Xcml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdl
dFNpemVGdW5jLCBBdWRpb0ZpbGVfU2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxl
VHlwZUlEIGluRmlsZVR5cGVIaW50LCBBdWRpb0ZpbGVJRCogb3V0QXVkaW9GaWxlKSwgKGluQ2xp
ZW50RGF0YSwgaW5SZWFkRnVuYywgaW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6
ZUZ1bmMsIGluRmlsZVR5cGVIaW50LCBvdXRBdWRpb0ZpbGUpKQorI2RlZmluZSBBdWRpb0ZpbGVP
cGVuV2l0aENhbGxiYWNrcyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxlT3BlbldpdGhD
YWxsYmFja3MKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94
LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1
ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZURpc3Bvc2Ug
c29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZURpc3Bvc2UKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0
eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmls
ZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9p
ZCogb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlvUHJv
cGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlR2V0
UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZUdldFByb3BlcnR5CitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9G
aWxlUmVhZCwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQz
MiogaW9OdW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhKSwgKGluRXh0QXVkaW9G
aWxlLCBpb051bWJlckZyYW1lcywgaW9EYXRhKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlUmVhZCBz
b2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlUmVhZAorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5LCBP
U1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJv
cGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZv
aWQqIGluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGluUHJv
cGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVTZXRQ
cm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0Zp
bGVXcmFwQXVkaW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5GaWxlSUQsIEJvb2xl
YW4gaW5Gb3JXcml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpbkZp
bGVJRCwgaW5Gb3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQorI2RlZmluZSBFeHRBdWRpb0Zp
bGVXcmFwQXVkaW9GaWxlSUQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3gsIEV4dEF1ZGlvRmlsZU9wZW5VUkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1
ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQor
I2RlZmluZSBFeHRBdWRpb0ZpbGVPcGVuVVJMIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRp
b0ZpbGVPcGVuVVJMCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29t
cG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uKiBpbkRl
c2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCisjZGVmaW5lIEF1ZGlvQ29tcG9uZW50RmluZE5l
eHQgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50RmluZE5leHQKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudElu
c3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0Nv
bXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2Up
KQorI2RlZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3IHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVk
aW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBp
blNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgdm9pZCogb3V0RGF0YSwgVUludDMy
KiBpb0RhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50LCBvdXREYXRh
LCBpb0RhdGFTaXplKSkKKyNkZWZpbmUgQXVkaW9Vbml0R2V0UHJvcGVydHkgc29mdExpbmtfQXVk
aW9Ub29sYm94X0F1ZGlvVW5pdEdldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChB
dWRpb1VuaXQgaW5Vbml0KSwgKGluVW5pdCkpCisjZGVmaW5lIEF1ZGlvVW5pdEluaXRpYWxpemUg
c29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5pdEluaXRpYWxpemUKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRTZXRQcm9wZXJ0eSwg
T1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1
ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCBjb25zdCB2
b2lkKiBpbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwg
aW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQorI2RlZmluZSBBdWRpb1VuaXRTZXRQcm9w
ZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0U2V0UHJvcGVydHkKKwogI2VuZGlm
IC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuY3BwCmluZGV4IDJiN2JhMzQ5OTY5ZDNiOGIzMmU1ZWNiZDY4OGJiNGYx
ODBiZDQwNGYuLjcxNDU1M2M4MzZmM2NhMTRiMzlkNmI3YjY4NDRjNGQwM2QwMTVmY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKKyNpbmNsdWRlIDxDb3JlTWVkaWEvQ01CdWZmZXJRdWV1ZS5oPgogI2luY2x1ZGUg
PENvcmVWaWRlby9Db3JlVmlkZW8uaD4KICNlbmRpZgogCkBAIC00Nyw2ICs0OCw4IEBAIFNPRlRf
TElOS19GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcywgT1NTdGF0dXMsIChDTUJsb2Nr
QnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRh
dGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwgKHRoZVNvdXJjZUJ1ZmZlciwgb2Zmc2V0VG9E
YXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZl
ckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyKSwgKHRo
ZUJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMsIE9T
U3RhdHVzLCAoY29uc3Qgdm9pZCogc291cmNlQnl0ZXMsIENNQmxvY2tCdWZmZXJSZWYgZGVzdGlu
YXRpb25CdWZmZXIsIHNpemVfdCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIHNpemVfdCBkYXRhTGVu
Z3RoKSwgKHNvdXJjZUJ5dGVzLCBkZXN0aW5hdGlvbkJ1ZmZlciwgb2Zmc2V0SW50b0Rlc3RpbmF0
aW9uLCBkYXRhTGVuZ3RoKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tN
ZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVy
KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIsIE9TU3RhdHVzLCAo
Q01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIsIHNpemVfdCBvZmZzZXQsIHNpemVfdCogbGVuZ3Ro
QXRPZmZzZXRPdXQsIHNpemVfdCogdG90YWxMZW5ndGhPdXQsIGNoYXIqKiBkYXRhUG9pbnRlck91
dCksICh0aGVCdWZmZXIsIG9mZnNldCwgbGVuZ3RoQXRPZmZzZXRPdXQsIHRvdGFsTGVuZ3RoT3V0
LCBkYXRhUG9pbnRlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4
dGVuc2lvbnMsIENGRGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyks
IChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQs
ICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyLCBD
TUJsb2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VY
UE9SVCkKQEAgLTEwNCw5ICsxMDcsOSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldAogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNTm90
aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyLCBDTU5vdGlmaWNhdGlvbkNlbnRl
clJlZiwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExp
c3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRlciwgY29uc3Qg
dm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIENGU3RyaW5n
UmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0LCBVSW50MzIgZmxhZ3MpLCAoY2Vu
dGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0LCBmbGFncyksIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lciwgT1NTdGF0dXMs
IChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBD
TU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24s
IGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIsIGxpc3RlbmVyLCBjYWxsYmFjaywgbm90aWZp
Y2F0aW9uLCBvYmplY3QpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVm
ZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJh
Y2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZv
cm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRp
bWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50
cmllcywgY29uc3Qgc2l6ZV90ICpzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmICpz
QnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5
Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1w
bGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxl
U2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCksIFBBTF9FWFBPUlQpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYgKnNidWZDb3B5T3V0
KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRlbUNvdW50IG51
bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGlt
aW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmQ29weU91dCksIChhbGxvY2F0b3IsIG9y
aWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIHNC
dWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwg
Qm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1h
a2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywg
Q01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJ
bmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMs
IGNvbnN0IHNpemVfdCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91
dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVF
bnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmKiBzYnVmQ29weU91dCksIChh
bGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0Fy
cmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5h
bFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29w
eU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJS
ZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlw
dGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVm
ZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0
aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9y
LCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1w
bGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lk
KiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0
RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNh
bXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIs
IGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBm
b3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wLCBDTVRpbWUsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQpAQCAtMTE2LDE0ICsxMTksMTQg
QEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyR2V0UHJlc2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0
aW9uLCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYsIEJvb2xlYW4gY3JlYXRlSWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZO
ZWNlc3NhcnkpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRp
bWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwgQ01J
dGVtQ291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJh
eUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0
YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50
cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQqIHRp
bWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRp
bWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMyX3QgbmV3VGlt
ZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3VGltZXNjYWxl
LCBtZXRob2QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXpl
LCBzaXplX3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciksIChzYnVmLCBidWZmZXIpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNR2V0QXR0YWNobWVudCwgQ0ZUeXBlUmVmLCAoQ01BdHRhY2htZW50QmVhcmVyUmVm
IHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDTUF0dGFjaG1lbnRNb2RlKiBhdHRhY2htZW50TW9k
ZU91dCksICh0YXJnZXQsIGtleSwgYXR0YWNobWVudE1vZGVPdXQpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
U2V0QXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3Ry
aW5nUmVmIGtleSwgQ0ZUeXBlUmVmIHZhbHVlLCBDTUF0dGFjaG1lbnRNb2RlIGF0dGFjaG1lbnRN
b2RlKSwgKHRhcmdldCwga2V5LCB2YWx1ZSwgYXR0YWNobWVudE1vZGUpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNUmVtb3ZlQXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQs
IENGU3RyaW5nUmVmIGtleSksICh0YXJnZXQsIGtleSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFz
ZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYgKnRpbWViYXNlT3V0KSwg
KGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRp
bWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiogdGltZWJhc2VP
dXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRp
bWViYXNlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0UmF0ZSwgRmxvYXQ2NCwgKENNVGlt
ZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VT
ZXRSYXRlLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGltZWJhc2UsIEZsb2F0NjQgcmF0ZSks
ICh0aW1lYmFzZSwgcmF0ZSksIFBBTF9FWFBPUlQpCkBAIC0xNDQsMTEgKzE0NywxMyBAQCBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZURlcXVldWVBbgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVFbnF1ZXVlLCBPU1N0YXR1cywgKENN
QnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUmVmIGJ1ZmZlciksIChxdWV1ZSwgYnVmZmVy
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eSwgQm9vbGVhbiwgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRC
dWZmZXJDb3VudCwgQ01JdGVtQ291bnQsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVl
KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1w
bGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAqLCAoKSwgKCksIFBBTF9FWFBPUlQp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29u
c3QgQ01CdWZmZXJDYWxsYmFja3MqLCAoKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVm
IHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2Vu
dGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVl
KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIsIE9TU3RhdHVzLCAo
Q01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxs
YmFjaywgdm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNvbmRpdGlvbiBjb25kaXRp
b24sIENNVGltZSB0aW1lLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5P
dXQpLCAocXVldWUsIGNhbGxiYWNrLCByZWZjb24sIGNvbmRpdGlvbiwgdGltZSwgdHJpZ2dlclRv
a2VuT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXJXaXRoSW50
ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZl
clF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFjaywgdm9pZCogdHJpZ2dlclJlZmNv
biwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJpZ2dlckNvbmRpdGlvbiwgQ01JdGVt
Q291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dl
clRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ssIHRyaWdnZXJSZWZjb24sIHRyaWdn
ZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1
ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldER1cmF0
aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9S
VCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBDRlN0cmluZ1JlZiwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMsIENGU3RyaW5nUmVm
LCBQQUxfRVhQT1JUKQpAQCAtMTY4LDM4ICsxNzMsNDAgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGdldF9Db3JlTWVkaWFfa0NNU2Ft
cGwKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCBDRlN0
cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVk
LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRT
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24g
KiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JU
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIHN0cnVjdHVyZUFsbG9jYXRv
ciwgdm9pZCogbWVtb3J5QmxvY2ssIHNpemVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxvY2F0b3JSZWYg
YmxvY2tBbGxvY2F0b3IsIGNvbnN0IENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1NvdXJjZSogY3Vz
dG9tQmxvY2tTb3VyY2UsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBD
TUJsb2NrQnVmZmVyRmxhZ3MgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0
KSwgKHN0cnVjdHVyZUFsbG9jYXRvciwgbWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3RoLCBibG9ja0Fs
bG9jYXRvciwgY3VzdG9tQmxvY2tTb3VyY2UsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZmxh
Z3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlv
QnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYsIHNpemVfdCAqYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVy
TGlzdCAqYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJl
ZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9y
LCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiAqYmxvY2tCdWZmZXJPdXQpLCAoc2J1
ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXpl
LCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tC
dWZmZXJPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0
V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
Ziwgc2l6ZV90KiBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0KiBidWZm
ZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90
IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJM
aXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0ZW1Db3VudCwg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdlIHNhbXBsZVJhbmdlLCBD
TVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNidWYsIHNhbXBsZVJhbmdl
LCBzQnVmT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJh
eSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCBzaXplQXJy
YXlFbnRyaWVzLCBzaXplX3QqIHNpemVBcnJheU91dCwgQ01JdGVtQ291bnQqIHNpemVBcnJheUVu
dHJpZXNOZWVkZWRPdXQpLCAoc2J1Ziwgc2l6ZUFycmF5RW50cmllcywgc2l6ZUFycmF5T3V0LCBz
aXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKIAotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVC
dWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFS
ZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNh
bGxiYWNrLCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBU
UywgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25z
LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRh
dGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3Jt
YXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBz
QnVmT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVk
aW9CdWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2Nh
dG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxv
Y2F0b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3Qp
LCAoc2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3Ms
IGJ1ZmZlckxpc3QpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRo
UGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVC
dWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBt
YWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywgY29uc3QgQXVkaW9T
dHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZl
clJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURh
dGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwg
bnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVmT3V0KSwgUEFMX0VY
UE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRp
b25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJl
ZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBD
TUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBjb25z
dCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMsIENNU2Ft
cGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBm
b3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBwYWNr
ZXREZXNjcmlwdGlvbnMsIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCisKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENG
QWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBB
dWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3QpLCAoc2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwg
YmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJ1ZmZlckxpc3QpLCBQQUxfRVhQT1JUKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAp
LCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlclNldERhdGFSZWFkeSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
KSwgKHNidWYpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHksIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZm
ZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50
IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENN
U2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBs
ZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZm
ZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERl
c2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1p
bmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc2FtcGxlQnVm
ZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUsIE9T
U3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRpb0NoYW5uZWxM
YXlvdXQqIGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9pZCogbWFnaWND
b29raWUsIENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBsYXlvdXQsIG1h
Z2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2MpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llLCBjb25zdCB2b2lk
KiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjLCBzaXplX3QqIHNpemVPdXQpLCAo
ZGVzYywgc2l6ZU91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0
UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0SXRlbSAqLCAoQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVk
aW9Gb3JtYXRMaXN0SXRlbSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChk
ZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01DbG9ja1JlZiwg
KHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0VGltZSwgQ01UaW1lLCAoQ01DbG9j
a1JlZiBjbG9jayksIChjbG9jayksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9y
RWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAo
KiBDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKCBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50IGluZGV4LCB2b2lkICpyZWZjb24pLCB2b2lkICpy
ZWZjb24pLCAoc2J1ZiwgY2FsbGJhY2ssIHJlZmNvbiksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIE9TU3RhdHVzICheIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShD
TVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQpKSwgKHNidWYsIGhhbmRsZXIpLCBQQUxfRVhQ
T1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUg
Y2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5k
ZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29u
KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9T
U3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF5DTVNBTVBMRUJVRkZF
UkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSks
IChzYnVmLCBoYW5kbGVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3RyaW5nUmVm
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9zUkdCLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKICNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3JlYXRlLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiAqY2xvY2tPdXQp
LCAoYWxsb2NhdG9yLCBjbG9ja091dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3JlYXRl
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiogY2xvY2tP
dXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11bSwg
Q01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWVNaW5pbXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0
aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFpbnNU
aW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdlLCB0
aW1lKSwgUEFMX0VYUE9SVCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUsIFBBTF9FWFBP
UlQpCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2lmIFBMQVRGT1JNKE1BQykK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFs
bG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Rldmlj
ZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZTdHJp
bmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRldmlj
ZVVJRCwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9y
YWdlLCB2b2lkKiwgKENNQmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNQmFzZU9iamVjdEdldFZUYWJsZSwgY29uc3QgQ01CYXNlVlRhYmxlKiwg
KENNQmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNRGVyaXZlZE9iamVjdENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogdlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQsIENN
QmFzZU9iamVjdFJlZiogYmFzZU9iamVjdCksIChhbGxvY2F0b3IsIHZUYWJsZSwgY2xhc3NJRCwg
YmFzZU9iamVjdCksIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmgKaW5kZXggODhmN2NkN2JhOThkZmY5Y2RmY2FmMTU4MWU4NmNmY2Ni
MjEwM2RiZC4uYjllOTExY2M1ZDBkOTA4YzZkYTQwNmQ1NWVkMjY5MDQ5M2U1MzNiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaApAQCAtNTEsNiAr
NTEsMTAgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
QmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QKICNkZWZpbmUgQ01CbG9ja0J1ZmZlckdl
dERhdGFMZW5ndGggc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3Ro
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1
ZmZlclJlcGxhY2VEYXRhQnl0ZXMsIE9TU3RhdHVzLCAoY29uc3Qgdm9pZCogc291cmNlQnl0ZXMs
IENNQmxvY2tCdWZmZXJSZWYgZGVzdGluYXRpb25CdWZmZXIsIHNpemVfdCBvZmZzZXRJbnRvRGVz
dGluYXRpb24sIHNpemVfdCBkYXRhTGVuZ3RoKSwgKHNvdXJjZUJ5dGVzLCBkZXN0aW5hdGlvbkJ1
ZmZlciwgb2Zmc2V0SW50b0Rlc3RpbmF0aW9uLCBkYXRhTGVuZ3RoKSkKICNkZWZpbmUgQ01CbG9j
a0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJS
ZXBsYWNlRGF0YUJ5dGVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxvY2tC
dWZmZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlcikpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJB
c3N1cmVCbG9ja01lbW9yeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckFzc3VyZUJs
b2NrTWVtb3J5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYg
dGhlQnVmZmVyLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXpl
X3QqIHRvdGFsTGVuZ3RoT3V0LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBv
ZmZzZXQsIGxlbmd0aEF0T2Zmc2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQp
KQorI2RlZmluZSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIgc29mdExpbmtfQ29yZU1lZGlh
X0NNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRp
Y3Rpb25hcnlSZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAjZGVm
aW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlELCBDRlR5cGVJRCwg
KHZvaWQpLCAoKSkKQEAgLTYzLDYgKzY3LDggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbywKICNk
ZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8KIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckRhdGFJc1JlYWR5LCBCb29s
ZWFuLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVC
dWZmZXJEYXRhSXNSZWFkeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJEYXRhSXNS
ZWFkeQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9y
LCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9y
bWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNh
bXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5n
QXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNh
bXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxv
Y2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMs
IHNhbXBsZVNpemVBcnJheSwgc2FtcGxlQnVmZmVyT3V0KSkKKyNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNv
bnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMyX3QgbmV3VGltZXNjYWxlLCBD
TVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3VGltZXNjYWxlLCBtZXRob2Qp
KQogI2RlZmluZSBDTVRpbWVDb252ZXJ0U2NhbGUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUNv
bnZlcnRTY2FsZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEs
IHRpbWUyKSkKQEAgLTg3LDI5ICs5MywyOSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VFcXVhbCwgQm9vbGVhbiwgKENNVGltZQogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMsIENGU3RyaW5n
UmVmKQogI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlw
dGlvbkV4dGVuc2lvbkF0b21zIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcygpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclBy
aW1hcmllc19EQ0lfUDMsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0
aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25D
b2xvclByaW1hcmllc19EQ0lfUDMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0RDSV9QMygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIw
LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NN
Rm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFf
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclBy
aW1hcmllc19JVFVfUl8yMDIwKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclBy
aW1hcmllc19JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xv
clByaW1hcmllc19JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSwg
Q0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZv
cm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1IGdldF9Db3JlTWVkaWFfa0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmll
c19QM19ENjUoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1Az
X0Q2NSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNf
RDY1KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbywgQ0ZTdHJpbmdSZWYpCi0j
ZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9u
RXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRp
b25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8o
KQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbyBn
ZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVv
KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYpCi0j
ZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9S
XzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRV
X1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcs
IENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRy
YW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcgZ2V0X0NvcmVNZWRpYV9rQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcoKQogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
TGluZWFyIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcigpCisjZGVmaW5lIGtDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9TTVBURV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRf
UFEoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVf
U1RfMjA4NF9QUSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9TTVBURV9TVF8yMDg0X1BRKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVf
U1RfNDI4XzEsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEg
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNj
cmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEoKQorI2RlZmluZSBrQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEoKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERl
c2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtD
TUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRy
aXhfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9u
X2tDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCgpCisjZGVmaW5lIGtD
TUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCgpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0LCBDRlN0cmluZ1Jl
ZikKICNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVu
dE9yaWdpbmFsRm9ybWF0IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0KCkKIFNPRlRfTElOS19DT05TVEFOVF9N
QVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRy
YW5zZmVyRnVuY3Rpb25fc1JHQiwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdC
IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQsIENGU3RyaW5n
UmVmKQogI2RlZmluZSBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQgZ2V0X0NvcmVNZWRp
YV9rQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX01pZGRs
ZSwgQ0ZTdHJpbmdSZWYpCkBAIC0xNTEsNyArMTU3LDcgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRWZXJ0aWNhbExheW91dF9SaWdodFRvTGVm
dCwKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1l
SW52YWxpZCwgQ01UaW1lKQogI2RlZmluZSBrQ01UaW1lSW52YWxpZCBnZXRfQ29yZU1lZGlhX2tD
TVRpbWVJbnZhbGlkKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lKQotI2RlZmluZSBrQ01UaW1lWmVybyBQQUw6OmdldF9D
b3JlTWVkaWFfa0NNVGltZVplcm8oKQorI2RlZmluZSBrQ01UaW1lWmVybyBnZXRfQ29yZU1lZGlh
X2tDTVRpbWVaZXJvKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSwgQ01UaW1lKQogI2RlZmluZSBrQ01UaW1lUG9z
aXRpdmVJbmZpbml0eSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVQb3NpdGl2ZUluZmluaXR5KCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUmFuZ2VJ
bnZhbGlkLCBDTVRpbWVSYW5nZSk7CkBAIC0xNjksMTMgKzE3NSwxMyBAQCBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRM
aXN0ZW5lciwgTwogI2RlZmluZSBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJS
ZW1vdmVMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIs
IGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBD
RlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIsIGxp
c3RlbmVyLCBjYWxsYmFjaywgbm90aWZpY2F0aW9uLCBvYmplY3QpKQogI2RlZmluZSBDTU5vdGlm
aWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTU5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0
YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5
Q2FsbGJhY2ssIHZvaWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50
IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxl
VGltaW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXpl
X3QgKnNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2Nh
dG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURh
dGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRp
bWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2Ft
cGxlU2l6ZUFycmF5LCBzQnVmT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRh
UmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlD
YWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVU
aW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVf
dCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0
b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0
YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGlt
aW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1w
bGVTaXplQXJyYXksIHNCdWZPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGUKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBD
TVNhbXBsZUJ1ZmZlclJlZiAqc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29w
eU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYqIHNidWZDb3B5T3V0
KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZUNvcHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRlbUNvdW50IG51bVNh
bXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGltaW5n
QXJyYXksIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmQ29weU91dCksIChhbGxvY2F0b3IsIG9yaWdp
bmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIHNCdWZD
b3B5T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNh
bXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1ZkNvcHlPdXQpLCAoYWxsb2Nh
dG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0Fy
cmF5LCBzQnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhO
ZXdUaW1pbmcgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhO
ZXdUaW1pbmcKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRp
bWluZ0luZm8gKnNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc0J1
Zk91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1p
bmdJbmZvKiBzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9j
YXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZP
dXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVy
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBD
TVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ss
IHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBm
b3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcs
IENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1
ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZj
b24sIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNhbXBsZUJ1ZmZlck91dCkpCiAj
ZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIgc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKQEAgLTE5Myw3ICsxOTksNyBA
QCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpbwogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1
dFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJH
ZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJy
YXksIENGQXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlm
TmVjZXNzYXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSkKICNkZWZpbmUgQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9B
cnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1p
bmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyAqdGltaW5nQXJyYXlPdXQsIENNSXRl
bUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlF
bnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyog
dGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQp
LCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlF
bnRyaWVzTmVlZGVkT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUsIHNpemVfdCwgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVT
aXplIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZQpA
QCAtMjA1LDcgKzIxMSw3IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lCiAjZGVmaW5lIENNU2V0
QXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TZXRBdHRhY2htZW50CiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01SZW1vdmVBdHRhY2htZW50LCB2
b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5KSwgKHRh
cmdldCwga2V5KSkKICNkZWZpbmUgQ01SZW1vdmVBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVJlbW92ZUF0dGFjaG1lbnQKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFz
ZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJh
c2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWViYXNlUmVmKiB0aW1lYmFzZU91dCks
IChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91dCkpCiAjZGVmaW5lIENNVGltZWJh
c2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2sgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VDcmVh
dGVXaXRoTWFzdGVyQ2xvY2sKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFz
ZSksICh0aW1lYmFzZSkpCiAjZGVmaW5lIENNVGltZWJhc2VHZXRUaW1lIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVRpbWViYXNlR2V0VGltZQpAQCAtMjI3LDcgKzIzMyw3IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRj
aFNvdXJjZVRvCiAjZGVmaW5lIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJl
SW1tZWRpYXRlbHkgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNo
U291cmNlVG9GaXJlSW1tZWRpYXRlbHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5LCBDRkRpY3Rpb25hcnlSZWYsIChD
TVRpbWUgdGltZSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yKSwgKHRpbWUsIGFsbG9jYXRvcikp
CiAjZGVmaW5lIENNVGltZUNvcHlBc0RpY3Rpb25hcnkgc29mdExpbmtfQ29yZU1lZGlhX0NNVGlt
ZUNvcHlBc0RpY3Rpb25hcnkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VC
dWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiAqb3V0RGVzYyksIChhbGxvY2F0b3Is
IGltYWdlQnVmZmVyLCBvdXREZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZl
ciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYg
aW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxv
Y2F0b3IsIGltYWdlQnVmZmVyLCBvdXREZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5z
aW9ucywgQ01WaWRlb0RpbWVuc2lvbnMsIChDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlk
ZW9EZXNjKSwgKHZpZGVvRGVzYykpCiAjZGVmaW5lIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dERpbWVuc2lvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dERpbWVuc2lvbnMKQEAgLTI0OSwxNSArMjU1LDE4IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRl
CiAjZGVmaW5lIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCBzb2Z0TGlua19Db3JlTWVkaWFf
Q01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0
YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUg
Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2Fs
bGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAq
LCAoKSwgKCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3Qg
Q01CdWZmZXJDYWxsYmFja3MqLCAoKSwgKCkpCiAjZGVmaW5lIENNQnVmZmVyUXVldWVHZXRDYWxs
YmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVy
UXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2Vu
dGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVl
KSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0
TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcAor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVl
dWVJbnN0YWxsVHJpZ2dlciwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1
ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiByZWZjb24sIENNQnVmZmVy
UXVldWVUcmlnZ2VyQ29uZGl0aW9uIGNvbmRpdGlvbiwgQ01UaW1lIHRpbWUsIENNQnVmZmVyUXVl
dWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgY2FsbGJhY2ssIHJlZmNv
biwgY29uZGl0aW9uLCB0aW1lLCB0cmlnZ2VyVG9rZW5PdXQpKQorI2RlZmluZSBDTUJ1ZmZlclF1
ZXVlSW5zdGFsbFRyaWdnZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVJbnN0YWxs
VHJpZ2dlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
QnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkLCBPU1N0YXR1cywg
KENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgdHJp
Z2dlckNhbGxiYWNrLCB2b2lkKiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNv
bmRpdGlvbiB0cmlnZ2VyQ29uZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmlnZ2VyVGhyZXNob2xkLCBD
TUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIHRyaWdn
ZXJDYWxsYmFjaywgdHJpZ2dlclJlZmNvbiwgdHJpZ2dlckNvbmRpdGlvbiwgdHJpZ2dlclRocmVz
aG9sZCwgdHJpZ2dlclRva2VuT3V0KSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmln
Z2VyV2l0aEludGVnZXJUaHJlc2hvbGQgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVJ
bnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEsIE9TU3Rh
dHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5lIENNQnVmZmVy
UXVldWVNYXJrRW5kT2ZEYXRhIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlTWFya0Vu
ZE9mRGF0YQotCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
KSwgKHF1ZXVlKSkKKyNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldER1cmF0aW9uIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24KIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxh
eSwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNw
bGF5IGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkoKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0
dGFjaG1lbnRLZXlfTm90U3luYywgQ0ZTdHJpbmdSZWYpCkBAIC0yOTUsNDQgKzMwNCw0NiBAQCBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgZ2V0X0NvcmVNZWRp
YV9rQ01TYW1wbGVCdWZmZXJBdHRhYwogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUsIGNv
bnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MsIHNpemVfdCogc2l6
ZU91dCksIChkZXNjLCBzaXplT3V0KSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0TWFnaWNDb29raWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkdldE1hZ2ljQ29va2llCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwg
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZGVzYyksIChkZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qLCAoQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24KIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIHN0cnVjdHVyZUFsbG9jYXRv
ciwgdm9pZCogbWVtb3J5QmxvY2ssIHNpemVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxvY2F0b3JSZWYg
YmxvY2tBbGxvY2F0b3IsIGNvbnN0IENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1NvdXJjZSogY3Vz
dG9tQmxvY2tTb3VyY2UsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBD
TUJsb2NrQnVmZmVyRmxhZ3MgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0
KSwgKHN0cnVjdHVyZUFsbG9jYXRvciwgbWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3RoLCBibG9ja0Fs
bG9jYXRvciwgY3VzdG9tQmxvY2tTb3VyY2UsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZmxh
Z3MsIGJsb2NrQnVmZmVyT3V0KSkKICNkZWZpbmUgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1v
cnlCbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlC
bG9jawotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5lZWRl
ZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNp
emUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJi
dWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpibG9j
a0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91
dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0
b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0
YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXpl
X3QqIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3RP
dXQsIHNpemVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9j
YXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3Ms
IENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXpl
TmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9j
YXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKICNkZWZp
bmUgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZl
ciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRo
UmV0YWluZWRCbG9ja0J1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldE51
bVNhbXBsZXMgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcwot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0
TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0
TGlzdEl0ZW0qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAj
ZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQg
c29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNv
ZGFibGVGb3JtYXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZSwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGUmFuZ2Ugc2Ft
cGxlUmFuZ2UsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwg
c2FtcGxlUmFuZ2UsIHNCdWZPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVC
dWZmZXJGb3JSYW5nZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxl
QnVmZmVyRm9yUmFuZ2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSwgT1NTdGF0dXMsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCBzaXplQXJyYXlFbnRyaWVzLCBzaXplX3QqIHNp
emVBcnJheU91dCwgQ01JdGVtQ291bnQqIHNpemVBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1
Ziwgc2l6ZUFycmF5RW50cmllcywgc2l6ZUFycmF5T3V0LCBzaXplQXJyYXlFbnRyaWVzTmVlZGVk
T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkgc29mdExpbmtf
Q29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5CiAKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENN
U2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywg
dm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXRE
ZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0
IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1w
bGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHks
IG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3Jp
cHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCkp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1Nh
bXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4g
ZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJl
YWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBz
YnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNjcmlw
dGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZl
ciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24s
IGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlv
bnMsIHNCdWZPdXQpKQogI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tl
dERlc2NyaXB0aW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJM
aXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2NhdG9yUmVmIGJi
dWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVp
bnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3QpLCAoc2J1Ziwg
YmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJ1ZmZlckxp
c3QpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIs
IENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51
bVNhbXBsZXMsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGNvbnN0IEF1ZGlvU3RyZWFt
UGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYq
IHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERlc2NyaXB0
aW9uLCBudW1TYW1wbGVzLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIHBhY2tldERlc2NyaXB0aW9u
cywgc2FtcGxlQnVmZmVyT3V0KSkKKyNkZWZpbmUgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb1NhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucworU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZl
ckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
Q0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1l
bW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogYnVm
ZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9y
LCBmbGFncywgYnVmZmVyTGlzdCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZl
ckZyb21BdWRpb0J1ZmZlckxpc3Qgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0
RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFSZWFkeSwgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZl
clNldERhdGFSZWFkeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVh
ZHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmLCBDTVRpbWUgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNi
dWYsIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVy
U2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBs
ZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91dFNpemUsIGNvbnN0IEF1ZGlvQ2hh
bm5lbExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29raWVTaXplLCBjb25zdCB2b2lkKiBt
YWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMsIENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFzYmQsIGxheW91dFNpemUsIGxheW91
dCwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5zaW9ucywgb3V0RGVzYykpCiAj
ZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xvY2tSZWYs
ICh2b2lkKSwgKCkpCi0jZGVmaW5lIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrICBzb2Z0TGlua19D
b3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sKKyNkZWZpbmUgQ01DbG9ja0dldEhvc3RU
aW1lQ2xvY2sgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRIb3N0VGltZUNsb2NrCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldFRpbWUs
IENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spKQotI2RlZmluZSBDTUNsb2NrR2V0
VGltZSAgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCisjZGVmaW5lIENNQ2xvY2tH
ZXRUaW1lIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0VGltZQogCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFj
aFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKiBD
TVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQgKnJlZmNv
biksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0
YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqQ01TQU1QTEVCVUZGRVJD
QUxMX05PRVNDQVBFIGNhbGxiYWNrKShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENN
SXRlbUNvdW50IGluZGV4LCB2b2lkKiByZWZjb24pLCB2b2lkKiByZWZjb24pLCAoc2J1ZiwgY2Fs
bGJhY2ssIHJlZmNvbikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNh
bGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
T1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxl
QnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tG
b3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVz
ICheQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVm
LCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVy
Q2FsbEJsb2NrRm9yRWFjaFNhbXBsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJD
YWxsQmxvY2tGb3JFYWNoU2FtcGxlCiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
Q2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2Nr
UmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSkKICNkZWZpbmUgQ01BdWRpb0Ns
b2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvQ2xvY2tDcmVhdGUKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBDTVRp
bWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQogI2RlZmlu
ZSBDTVRpbWVNYXhpbXVtIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNYXhpbXVtCkBAIC0zNDQs
MTggKzM1NSwxNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUsIEJvb2xlYW4sCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICNk
ZWZpbmUga0NNVGltZUluZGVmaW5pdGUgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lSW5kZWZpbml0ZSgp
CiAKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotCiAjaWYgUExBVEZPUk0oTUFDKQog
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Rl
dmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZT
dHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGRl
dmljZVVJRCwgY2xvY2tPdXQpKQotI2RlZmluZSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUgIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VV
SUQsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091
dCkpCisjZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UsIHZvaWQqLCAoQ01C
YXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9i
amVjdEdldERlcml2ZWRTdG9yYWdlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVj
dEdldERlcml2ZWRTdG9yYWdlCisjZGVmaW5lIENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdl
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmFzZU9iamVjdEdldFZU
YWJsZSwgY29uc3QgQ01CYXNlVlRhYmxlKiwgKENNQmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0KSwg
KGJhc2VPYmplY3QpKQotI2RlZmluZSBDTUJhc2VPYmplY3RHZXRWVGFibGUgUEFMOjpzb2Z0TGlu
a19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0VlRhYmxlCisjZGVmaW5lIENNQmFzZU9iamVjdEdl
dFZUYWJsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0VlRhYmxlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01EZXJpdmVkT2JqZWN0Q3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01CYXNlVlRh
YmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwgQ01CYXNlT2JqZWN0UmVmKiBiYXNl
T2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFzc0lELCBiYXNlT2JqZWN0KSkKLSNkZWZp
bmUgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlhX0NNRGVyaXZl
ZE9iamVjdENyZWF0ZQorI2RlZmluZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNRGVyaXZlZE9iamVjdENyZWF0ZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRM
aW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsu
Y3BwCmluZGV4IGY1MWNiYmIxNjY2M2I4MWVjZTIwMWU4YWQ1NzI1YzI1MTIxZjU2ZmIuLjcyZjQx
MTRlZWFhZGY2MjBjZTM3MDIzMDk5NDc2NmI0OGM3OTViMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0zNCwxMyArMzQs
MTkgQEAgU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVmlk
ZW9Ub29sYm94LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFM
LCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJh
dGUsIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRl
b1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1
cmF0aW9uLCBDRlN0cmluZ1JlZikKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwg
VmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBDRlN0cmlu
Z1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBDRlN0cmluZ1JlZikKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJpbmdSZWYpCiAKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0VuY29kZXJTcGVj
aWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIsIENGU3RyaW5n
UmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtW
VFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxl
dmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5f
QXV0b0xldmVsLCBDRlN0cmluZ1JlZikKIAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQs
IENNVmlkZW9Db2RlY1R5cGUgY29kZWNUeXBlLCBDRkRpY3Rpb25hcnlSZWYgZW5jb2RlclNwZWNp
ZmljYXRpb24sIENGRGljdGlvbmFyeVJlZiBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIENG
QWxsb2NhdG9yUmVmIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBWVENvbXByZXNzaW9uT3V0cHV0
Q2FsbGJhY2sgb3V0cHV0Q2FsbGJhY2ssIHZvaWQqIG91dHB1dENhbGxiYWNrUmVmQ29uLCBWVENv
bXByZXNzaW9uU2Vzc2lvblJlZiogY29tcHJlc3Npb25TZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwg
d2lkdGgsIGhlaWdodCwgY29kZWNUeXBlLCBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgc291cmNlSW1h
Z2VCdWZmZXJBdHRyaWJ1dGVzLCBjb21wcmVzc2VkRGF0YUFsbG9jYXRvciwgb3V0cHV0Q2FsbGJh
Y2ssIG91dHB1dENhbGxiYWNrUmVmQ29uLCBjb21wcmVzc2lvblNlc3Npb25PdXQpKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25T
ZXNzaW9uQ29tcGxldGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYg
c2Vzc2lvbiwgQ01UaW1lIGNvbXBsZXRlVW50aWxQcmVzZW50YXRpb25UaW1lU3RhbXApLCAoc2Vz
c2lvbiwgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25F
bmNvZGVGcmFtZSwgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBD
VkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1w
LCBDTVRpbWUgZHVyYXRpb24sIENGRGljdGlvbmFyeVJlZiBmcmFtZVByb3BlcnRpZXMsIHZvaWQq
IHNvdXJjZUZyYW1lUmVmY29uLCBWVEVuY29kZUluZm9GbGFncyogaW5mb0ZsYWdzT3V0KSwgKHNl
c3Npb24sIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBmcmFt
ZVByb3BlcnRpZXMsIHNvdXJjZUZyYW1lUmVmY29uLCBpbmZvRmxhZ3NPdXQpKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNz
aW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9u
UmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlLCB2b2lkLCAo
VlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKIAogU09GVF9MSU5L
X0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBWaWRlb1Rvb2xi
b3gsIFZUUmVzdHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlkZW9EZWNvZGVyUmVz
dHJpY3Rpb25zIHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2RlY1R5cGUqIGFsbG93
ZWRDb2RlY1R5cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCAocmVz
dHJpY3Rpb25GbGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRDb2RlY1R5cGVDb3Vu
dCksIFBBTF9FWFBPUlQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2Yv
VmlkZW9Ub29sYm94U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9U
b29sYm94U29mdExpbmsuaAppbmRleCBlYzBmZjAxY2MxZmUxYTIxMDZjYzdhN2YwMmU4Yzg0Yjdk
ZDBkYTg0Li42MGE4ZmYzNzQyZDQ5NjEwN2IxNGZhYzdjNDEzNzNhYmM2ZDY5NGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCkBAIC0z
Nyw5ICszNywyMCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9v
bGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZQogI2RlZmluZSBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiBnZXRfVmlkZW9Ub29s
Ym94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9u
KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSBnZXRfVmlkZW9Ub29sYm94X2tWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJp
dFJhdGUsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2
ZXJhZ2VCaXRSYXRlIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9B
dmVyYWdlQml0UmF0ZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVv
VG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIENGU3RyaW5n
UmVmKQorI2RlZmluZSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBnZXRf
VmlkZW9Ub29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsKCkKIAog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVv
RW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rl
ciwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5h
YmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciBnZXRfVmlkZW9Ub29sYm94X2tWVFZp
ZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5j
b2RlcigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwg
a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKKyNk
ZWZpbmUga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsIGdldF9WaWRlb1Rv
b2xib3hfa1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKCkKK1NPRlRfTElO
S19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxf
SDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVFByb2ZpbGVMZXZl
bF9IMjY0X0hpZ2hfQXV0b0xldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZUUHJvZmlsZUxldmVsX0gy
NjRfSGlnaF9BdXRvTGV2ZWwoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBW
aWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsLCBDRlN0cmlu
Z1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwgZ2V0X1Zp
ZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCgpCisKIAogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Np
b25TZXNzaW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgaW50
MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIENNVmlkZW9Db2RlY1R5cGUgY29kZWNUeXBlLCBD
RkRpY3Rpb25hcnlSZWYgZW5jb2RlclNwZWNpZmljYXRpb24sIENGRGljdGlvbmFyeVJlZiBzb3Vy
Y2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIENGQWxsb2NhdG9yUmVmIGNvbXByZXNzZWREYXRhQWxs
b2NhdG9yLCBWVENvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sgb3V0cHV0Q2FsbGJhY2ssIHZvaWQq
IG91dHB1dENhbGxiYWNrUmVmQ29uLCBWVENvbXByZXNzaW9uU2Vzc2lvblJlZiogY29tcHJlc3Np
b25TZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwgd2lkdGgsIGhlaWdodCwgY29kZWNUeXBlLCBlbmNv
ZGVyU3BlY2lmaWNhdGlvbiwgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBjb21wcmVzc2Vk
RGF0YUFsbG9jYXRvciwgb3V0cHV0Q2FsbGJhY2ssIG91dHB1dENhbGxiYWNrUmVmQ29uLCBjb21w
cmVzc2lvblNlc3Npb25PdXQpKQogI2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSBz
b2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUKQEAgLTQ5LDYg
KzYwLDggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gs
IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUKICNkZWZpbmUgVlRDb21wcmVzc2lvblNl
c3Npb25FbmNvZGVGcmFtZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lvblNlc3Np
b25FbmNvZGVGcmFtZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rv
b2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzLCBPU1N0YXR1
cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCiAjZGVmaW5l
IFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIHNvZnRMaW5rX1ZpZGVv
VG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcworU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25T
ZXNzaW9uSW52YWxpZGF0ZSwgdm9pZCwgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24p
LCAoc2Vzc2lvbikpCisjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSBzb2Z0
TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlCiAKIFNPRlRf
TElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVFJl
c3RyaWN0VmlkZW9EZWNvZGVycywgT1NTdGF0dXMsIChWVFZpZGVvRGVjb2RlclJlc3RyaWN0aW9u
cyByZXN0cmljdGlvbkZsYWdzLCBjb25zdCBDTVZpZGVvQ29kZWNUeXBlKiBhbGxvd2VkQ29kZWNU
eXBlTGlzdCwgQ01JdGVtQ291bnQgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgKHJlc3RyaWN0aW9u
RmxhZ3MsIGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRM
aW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuY3BwCmluZGV4IDY3NGU2NDk0YTBhOGI1OTY5MDNlM2NhNWNmYjZhMjNkZGFjMzYzOGMuLmQ0
NDQ5MzFlZmQ4YWU1NTYwYjhjMWIyN2YyMmFkOTJlNzkzNDg1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwCkBAIC00
MSw2ICs0MSwxMCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwgTVRfR2V0U2hvdQogCiBTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwga01U
U3VwcG9ydE5vdGlmaWNhdGlvbl9TaG91bGRQbGF5SERSVmlkZW9DaGFuZ2VkLCBDRlN0cmluZ1Jl
ZiwgUEFMX0VYUE9SVCkKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBNZWRp
YVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlv
UHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlv
LCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVt
YmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRpb1Byb2Nl
c3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENNSXRl
bUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxpc3RJ
bk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKK1NPRlRfTElO
S19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29s
Ym94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzKiBjYWxsYmFj
a3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nl
c3NpbmdUYXBSZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91
dCksIFBBTF9FWFBPUlQpCisKICNpZiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQogCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJv
eCwga01UUGx1Z2luRm9ybWF0UmVhZGVyUHJvcGVydHlfRHVyYXRpb24sIENGU3RyaW5nUmVmLCBQ
QUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRp
YVRvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRv
b2xib3hTb2Z0TGluay5oCmluZGV4IGM3ZGUwMmNlNjNjMmMzMDBkOTY1NGY2NjcwYmZjMTI1MDIy
OTM0NGUuLjI1NWE3NjdiNTVlZWY0ZThlZWQxOWRlZjI5NzE3ODQ5MGJlOTNmMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgK
QEAgLTQxLDYgKzQxLDEzIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVS
KFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91bGRQbGF5SERSVmlkCiAKIFNPRlRfTElOS19D
T05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBrTVRTdXBwb3J0
Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQsIENGU3RyaW5nUmVmKQogCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRh
cCksICh0YXApKQorI2RlZmluZSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2Ugc29mdExp
bmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwR2V0U291cmNlQXVkaW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFw
LCBDTUl0ZW1Db3VudCBudW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdElu
T3V0LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRp
bWVSYW5nZU91dCwgQ01JdGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZy
YW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFt
ZXNPdXQpKQorI2RlZmluZSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvIHNvZnRM
aW5rX01lZGlhVG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvCitTT0ZU
X0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBjb25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyogY2FsbGJhY2tzLCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmKiB0YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpKQorI2Rl
ZmluZSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSBzb2Z0TGlua19NZWRpYVRvb2xib3hfTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUKKwogI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFE
RVIpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBr
TVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCA1NTI0ZWVjNTU4N2QxZTkxNzBlZjlmMTQ5MmNjMDdkZTI1
YzgwZWM3Li5jNTYyYmU3NjM1ZWE2YTE1ODQwODMzYWJjMmUxOTEwMTBjYzMxNzZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTM1MCw3ICszNTAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRG9jdW1lbnQpOwogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY6
OlVuaWNvZGU7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4V3JpdGVSZWN1cnNpb25EZXB0
aCA9IDIxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA5
ZjU1NjA4MDJiYWMzMmJiNDk5ZWM5N2M5YjBhZTMyZTExYzYyMWM3Li44NTBjZGU3MjcwZjBkNjFk
YzI1NDQ5YzFkYTg5YTQ5YTFhZjQzNjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcApAQCAtMTA5LDcgKzEwOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxDYW52YXNFbGVtZW50KTsKIAotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIC8vIFRoZXNlIHZh
bHVlcyBjb21lIGZyb20gdGhlIFdoYXRXRy9XM0MgSFRNTCBzcGVjLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZTA1MTZhNGFmMjVkMmI1YTRkNDk0Y2U0MzUw
OTY4NDE0MWI2N2Q5ZS4uNmFjMmRmYjlkZDY0ZjBmM2ZjMGQwZWY1ZmM1MTE1OTFkMjVmMGJhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xOTAsOCArMTkw
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
SFRNTE1lZGlhRWxlbWVudCk7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0YXRpYyBjb25z
dCBTZWNvbmRzIFNlZWtSZXBlYXREZWxheSB7IDEwMF9tcyB9Owogc3RhdGljIGNvbnN0IGRvdWJs
ZSBTZWVrVGltZSA9IDAuMjsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIFNjYW5SZXBlYXREZWxheSB7
IDEuNV9zIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKaW5kZXggZmQzZDNlMDNhMDNmMDgxMDUy
MTI4NmJkMDI2YTkxMDExMWQzY2M4NC4uNWQ1NmI5ZWUxYTBkM2Q2N2E3OWMzMDc2MWQxMzgxNWQ3
YzA2NDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcApAQCAtMzYsMjUgKzM2LDEzIEBACiAj
aW5jbHVkZSAiQXVkaW9GaWxlUmVhZGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9FeHRlbmRlZEF1
ZGlvRmlsZS5oPgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Cisj
aW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8d3RmL0No
ZWNrZWRBcml0aG1ldGljLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2luY2x1ZGUg
PHd0Zi9Tb2Z0TGlua2luZy5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkK
LVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlv
RmlsZUlEIGluQXVkaW9GaWxlKSwgKGluQXVkaW9GaWxlKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xi
b3gsIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZvaWQgKmluQ2xpZW50
RGF0YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2Mg
aW5Xcml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0Zp
bGVfU2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVI
aW50LCBBdWRpb0ZpbGVJRCAqb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVu
YywgaW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVI
aW50LCBvdXRBdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxl
RGlzcG9zZSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5F
eHRBdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlR2V0UHJv
cGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRp
b0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyICppb1Byb3BlcnR5RGF0YVNpemUs
IHZvaWQgKm91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBp
b1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29s
Ym94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1
ZGlvRmlsZSwgVUludDMyICppb051bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICppb0RhdGEp
LCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEpKQotU09GVF9MSU5LKEF1
ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9G
aWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJ
RCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCAqaW5Qcm9wZXJ0eURhdGEp
LCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblBy
b3BlcnR5RGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVXcmFwQXVk
aW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5GaWxlSUQsIEJvb2xlYW4gaW5Gb3JX
cml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYgKm91dEV4dEF1ZGlvRmlsZSksIChpbkZpbGVJRCwgaW5G
b3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0
QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxl
UmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCi0jZW5kaWYK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIEF1ZGlv
QnVmZmVyTGlzdCogdHJ5Q3JlYXRlQXVkaW9CdWZmZXJMaXN0KHNpemVfdCBudW1iZXJPZkJ1ZmZl
cnMpCkBAIC0xMDMsMjIgKzkxLDIyIEBAIEF1ZGlvRmlsZVJlYWRlcjo6QXVkaW9GaWxlUmVhZGVy
KGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSkKICAgICA6IG1fZGF0YShkYXRhKQog
ICAgICwgbV9kYXRhU2l6ZShkYXRhU2l6ZSkKIHsKLSAgICBpZiAoQXVkaW9GaWxlT3BlbldpdGhD
YWxsYmFja3ModGhpcywgcmVhZFByb2MsIDAsIGdldFNpemVQcm9jLCAwLCAwLCAmbV9hdWRpb0Zp
bGVJRCkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6QXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mo
dGhpcywgcmVhZFByb2MsIDAsIGdldFNpemVQcm9jLCAwLCAwLCAmbV9hdWRpb0ZpbGVJRCkgIT0g
bm9FcnIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChFeHRBdWRpb0ZpbGVXcmFwQXVkaW9G
aWxlSUQobV9hdWRpb0ZpbGVJRCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIp
CisgICAgaWYgKFBBTDo6RXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEKG1fYXVkaW9GaWxlSUQs
IGZhbHNlLCAmbV9leHRBdWRpb0ZpbGVSZWYpICE9IG5vRXJyKQogICAgICAgICBtX2V4dEF1ZGlv
RmlsZVJlZiA9IDA7CiB9CiAKIEF1ZGlvRmlsZVJlYWRlcjo6fkF1ZGlvRmlsZVJlYWRlcigpCiB7
CiAgICAgaWYgKG1fZXh0QXVkaW9GaWxlUmVmKQotICAgICAgICBFeHRBdWRpb0ZpbGVEaXNwb3Nl
KG1fZXh0QXVkaW9GaWxlUmVmKTsKKyAgICAgICAgUEFMOjpFeHRBdWRpb0ZpbGVEaXNwb3NlKG1f
ZXh0QXVkaW9GaWxlUmVmKTsKIAogICAgIG1fZXh0QXVkaW9GaWxlUmVmID0gMDsKIAogICAgIGlm
IChtX2F1ZGlvRmlsZUlEKQotICAgICAgICBBdWRpb0ZpbGVDbG9zZShtX2F1ZGlvRmlsZUlEKTsK
KyAgICAgICAgUEFMOjpBdWRpb0ZpbGVDbG9zZShtX2F1ZGlvRmlsZUlEKTsKIAogICAgIG1fYXVk
aW9GaWxlSUQgPSAwOwogfQpAQCAtMTU1LDcgKzE0Myw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVk
aW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8p
CiAKICAgICAvLyBHZXQgZmlsZSdzIGRhdGEgZm9ybWF0CiAgICAgVUludDMyIHNpemUgPSBzaXpl
b2YobV9maWxlRGF0YUZvcm1hdCk7Ci0gICAgaWYgKEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1f
ZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3JtYXQsICZz
aXplLCAmbV9maWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6RXh0QXVkaW9G
aWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9G
aWxlRGF0YUZvcm1hdCwgJnNpemUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0VycikKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBzaXplX3QgbnVtYmVyT2ZDaGFubmVscyA9IG1fZmls
ZURhdGFGb3JtYXQubUNoYW5uZWxzUGVyRnJhbWU7CkBAIC0xNjMsNyArMTUxLDcgQEAgUmVmUHRy
PEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBi
b29sIG1peFRvTW9ubykKICAgICAvLyBOdW1iZXIgb2YgZnJhbWVzCiAgICAgU0ludDY0IG51bWJl
ck9mRnJhbWVzNjQgPSAwOwogICAgIHNpemUgPSBzaXplb2YobnVtYmVyT2ZGcmFtZXM2NCk7Ci0g
ICAgaWYgKEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVk
aW9GaWxlUHJvcGVydHlfRmlsZUxlbmd0aEZyYW1lcywgJnNpemUsICZudW1iZXJPZkZyYW1lczY0
KSAhPSBub0VyciB8fCBudW1iZXJPZkZyYW1lczY0IDw9IDApCisgICAgaWYgKFBBTDo6RXh0QXVk
aW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0
eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVzNjQpICE9IG5vRXJyIHx8
IG51bWJlck9mRnJhbWVzNjQgPD0gMCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBk
b3VibGUgZmlsZVNhbXBsZVJhdGUgPSBtX2ZpbGVEYXRhRm9ybWF0Lm1TYW1wbGVSYXRlOwpAQCAt
MTg1LDcgKzE3Myw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVC
dXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAgICAgaWYgKHNhbXBsZVJhdGUp
CiAgICAgICAgIG1fY2xpZW50RGF0YUZvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7CiAK
LSAgICBpZiAoRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRB
dWRpb0ZpbGVQcm9wZXJ0eV9DbGllbnREYXRhRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKSwgJm1fY2xpZW50RGF0YUZvcm1hdCkgIT0gbm9FcnIpCisgICAgaWYgKFBB
TDo6RXh0QXVkaW9GaWxlU2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0Zp
bGVQcm9wZXJ0eV9DbGllbnREYXRhRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uKSwgJm1fY2xpZW50RGF0YUZvcm1hdCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgLy8gQ2hhbmdlIG51bWJlck9mRnJhbWVzNjQgdG8gZGVzdGluYXRpb24g
c2FtcGxlLXJhdGUKQEAgLTI0Myw3ICsyMzEsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmls
ZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogCiAg
ICAgLy8gUmVhZCBmcm9tIHRoZSBmaWxlIChvciBpbi1tZW1vcnkgdmVyc2lvbikKICAgICBVSW50
MzIgZnJhbWVzVG9SZWFkID0gbnVtYmVyT2ZGcmFtZXM7Ci0gICAgaWYgKEV4dEF1ZGlvRmlsZVJl
YWQobV9leHRBdWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1ZmZlckxpc3QpICE9IG5vRXJy
KSB7CisgICAgaWYgKFBBTDo6RXh0QXVkaW9GaWxlUmVhZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZy
YW1lc1RvUmVhZCwgYnVmZmVyTGlzdCkgIT0gbm9FcnIpIHsKICAgICAgICAgZGVzdHJveUF1ZGlv
QnVmZmVyTGlzdChidWZmZXJMaXN0KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxl
UmVhZGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RmlsZVJlYWRlckNvY29hLmgKaW5kZXggYjdiOTE2M2I1NmUyNmMyOWNhYjg0ZWUyNDc2OWUyOTcx
NDE3YWZmYy4uMGJiYmJhMjc4NTdkOTc5ZWNjNjg4Zjg3ZjAzMzlmNjY1ZWY0MjUyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVy
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Zp
bGVSZWFkZXJDb2NvYS5oCkBAIC0zMSwxMCArMzEsMTIgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVE
SU8pCiAKLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+Ci0jaW5jbHVkZSA8QXVk
aW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CisjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVB
dWRpb1R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCit1c2luZyBFeHRBdWRpb0Zp
bGVSZWYgPSBzdHJ1Y3QgT3BhcXVlRXh0QXVkaW9GaWxlKjsKK3VzaW5nIEF1ZGlvRmlsZUlEID0g
c3RydWN0IE9wYXF1ZUF1ZGlvRmlsZUlEKjsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBBdWRpb0J1czsKQEAgLTU4LDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCB2b2lkKiBt
X2RhdGEgPSB7IG51bGxwdHIgfTsKICAgICBzaXplX3QgbV9kYXRhU2l6ZSA9IHsgMCB9OwogCi0g
ICAgQXVkaW9GaWxlSUQgbV9hdWRpb0ZpbGVJRCA9IHsgMCB9OworICAgIEF1ZGlvRmlsZUlEIG1f
YXVkaW9GaWxlSUQgPSB7IG51bGxwdHIgfTsKICAgICBFeHRBdWRpb0ZpbGVSZWYgbV9leHRBdWRp
b0ZpbGVSZWYgPSB7IG51bGxwdHIgfTsKIAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biBtX2ZpbGVEYXRhRm9ybWF0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcAppbmRleCA0Nzg3
NTA3MmE3ODZlZDY4NmMxZDQwMWU4MmU2MjU5Y2EyM2M1NGI2Li4xNDhiMDU1ZGJlYzg5NDNlYTVh
YWM2OGU2ODU4ZGU3ZDBiODIzMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcApAQCAt
MjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAorI2luY2x1ZGUgPHBhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEF1ZGlv
T3V0cHV0VW5pdEFkYXB0b3I6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IoQXVkaW9Vbml0UmVuZGVy
ZXImIHJlbmRlcmVyKQpAQCAtMzksMTIgKzQxLDEyIEBAIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6
OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IoQXVkaW9Vbml0UmVuZGVyZXImIHJlbmRlcmVyKQogQXVk
aW9PdXRwdXRVbml0QWRhcHRvcjo6fkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IoKQogewogICAgIGlm
IChtX291dHB1dFVuaXQpCi0gICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1f
b3V0cHV0VW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2Uo
bV9vdXRwdXRVbml0KTsKIH0KIAogT1NTdGF0dXMgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6c3Rh
cnQoKQogewotICAgIGF1dG8gcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9vdXRwdXRV
bml0KTsKKyAgICBhdXRvIHJlc3VsdCA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9vdXRw
dXRVbml0KTsKICAgICBpZiAocmVzdWx0ICE9IG5vRXJyKQogICAgICAgICBXVEZMb2dBbHdheXMo
IkVSUk9SOiBBdWRpb091dHB1dFVuaXRTdGFydCgpIGNhbGwgZmFpbGVkIHdpdGggZXJyb3IgY29k
ZTogJWxkIiwgc3RhdGljX2Nhc3Q8bG9uZz4ocmVzdWx0KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
QEAgLTUyLDcgKzU0LDcgQEAgT1NTdGF0dXMgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6c3RhcnQo
KQogCiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKCkKIHsKLSAgICByZXR1
cm4gQXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIHJldHVybiBQQUw6OkF1
ZGlvT3V0cHV0VW5pdFN0b3AobV9vdXRwdXRVbml0KTsKIH0KIAogLy8gRGVmYXVsdE91dHB1dFVu
aXQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCmluZGV4IGZkZjY3NzU3ZDFiNDc3
NjA4MDhiMTNmYjQzNGU0MGIzZGZkMzBlMDQuLjRlOTA2NGQwYzZlOTMwODlhZTBlYWE2Zjk5OGVj
ZDY1MzczNWQxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKICNpbmNsdWRlIDxBY2NlbGVyYXRlL0FjY2VsZXJh
dGUuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KKyNpbmNsdWRl
IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2Nv
cGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjcyLDcgKzI3Myw3IEBAIE9TU3RhdHVz
IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBz
b3VyY2UsIHNpemVfdCBmCiAKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gaW5wdXRG
b3JtYXQ7CiAgICAgVUludDMyIHByb3BlcnR5RGF0YVNpemUgPSBzaXplb2YoaW5wdXRGb3JtYXQp
OwotICAgIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0
ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZpbnB1
dEZvcm1hdCk7CisgICAgUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwg
a0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0eURh
dGFTaXplLCAmaW5wdXRGb3JtYXQpOwogICAgIEFTU0VSVChmcmFtZUNvdW50IDw9IHNvdXJjZS5t
QnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplIC8gaW5wdXRGb3JtYXQubUJ5dGVzUGVyUGFja2V0KTsK
IAogICAgIEF1ZGlvQ29udmVydGVyRnJvbUFCTENvbnRleHQgY29udGV4dCB7IHNvdXJjZSwgZnJh
bWVDb3VudCwgaW5wdXRGb3JtYXQubUJ5dGVzUGVyUGFja2V0IH07CkBAIC0yODAsNyArMjgxLDcg
QEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1
ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG91dHB1dEZvcm1hdDsKICAgICBwcm9wZXJ0eURhdGFTaXpl
ID0gc2l6ZW9mKG91dHB1dEZvcm1hdCk7Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShj
b252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwg
JnByb3BlcnR5RGF0YVNpemUsICZvdXRwdXRGb3JtYXQpOworICAgIFBBTDo6QXVkaW9Db252ZXJ0
ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJl
YW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZvdXRwdXRGb3JtYXQpOwogCiAgICAg
QVNTRVJUKENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihvdXRwdXRGb3JtYXQpLm51bWJlck9mQ2hh
bm5lbFN0cmVhbXMoKSA9PSBtX2J1ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCkpOwogICAgIGZvciAo
dWludDMyX3QgaSA9IDA7IGkgPCBtX2J1ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCk7ICsraSkgewpA
QCAtMjkwLDcgKzI5MSw3IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZy
b20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBzb3VyY2UsIHNpemVfdCBmCiAjZW5kaWYKIAogICAg
IFVJbnQzMiBzYW1wbGVzQ29udmVydGVkID0gbV9zYW1wbGVDYXBhY2l0eTsKLSAgICBPU1N0YXR1
cyBlcnIgPSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9D
b252ZXJ0ZXJGcm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9i
dWZmZXJMaXN0LT5saXN0KCksIG51bGxwdHIpOworICAgIE9TU3RhdHVzIGVyciA9IFBBTDo6QXVk
aW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcihjb252ZXJ0ZXIsIGF1ZGlvQ29udmVydGVyRnJv
bUFCTENhbGxiYWNrLCAmY29udGV4dCwgJnNhbXBsZXNDb252ZXJ0ZWQsIG1fYnVmZmVyTGlzdC0+
bGlzdCgpLCBudWxscHRyKTsKICAgICBpZiAoIWVyciB8fCBlcnIgPT0ga1Jhbk91dE9mSW5wdXRE
YXRhU3RhdHVzKSB7CiAgICAgICAgIG1fc2FtcGxlQ291bnQgPSBzYW1wbGVzQ29udmVydGVkOwog
ICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQppbmRleCBlNWVjNDc3Nzg1
ODFhN2FjZjBlNzI1NTMzM2Y5ZTI2OTQxYzQ3MmQxLi5kMmI1YWM0NWYzMGZkNGEzYWY1MWI0MjBk
ZTM3NjQ5YjExNTFjMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCkBAIC00Miw3ICs0Miw2
IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIFJl
ZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKHNp
emVfdCBtYXhpbXVtU2FtcGxlQ291bnQsIExvZ2dlckhlbHBlciYgbG9nZ2VySGVscGVyLCBzaXpl
X3Qgd2FpdFRvU3RhcnRGb3JQdXNoQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcAppbmRleCA4OWVj
ZWVkNjFjYjE5YmZkN2Q0MjBjNzc4YWFhMTIwYWMzNTZkYmZkLi4zMGRlYjJlNGM3NDFkZjU0ODhi
MzhmNWVkNTllZWJlNWEwMjg5YmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKQEAgLTMyLDcgKzMy
LDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogV2ViQXVkaW9CdWZmZXJMaXN0OjpX
ZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQp
CiAgICAgOiBtX2J5dGVzUGVyRnJhbWUoZm9ybWF0LmJ5dGVzUGVyRnJhbWUoKSkKQEAgLTExNiw3
ICsxMTUsNyBAQCBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgQwogICAgICAgICByZXR1cm47CiAKICAg
ICBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKG5vRXJyID09IENN
U2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIoc2Ft
cGxlQnVmZmVyLCBudWxscHRyLCBtX2Nhbm9uaWNhbExpc3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNp
emUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQs
IGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9CdWZmZXJMaXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVu
dCwgJmJ1ZmZlcikpCisgICAgaWYgKG5vRXJyID09IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRBdWRp
b0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1wbGVCdWZmZXIsIG51bGxwdHIs
IG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6ZSwga0NGQWxsb2NhdG9yU3lz
dGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NNU2FtcGxlQnVmZmVyRmxh
Z19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50LCAmYnVmZmVyKSkKICAgICAg
ICAgbV9ibG9ja0J1ZmZlciA9IGFkb3B0Q0YoYnVmZmVyKTsKIAogICAgIHJlc2V0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0
QWRhcHRvcklPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9P
dXRwdXRVbml0QWRhcHRvcklPUy5jcHAKaW5kZXggMmU5NjMwZmI2MGYyMmIzZWU1NmQyNDJkNzMw
NDM0ODZiODdiNTYyZi4uZjg5MTA3ZmZiMWMzZjUzYmUzMTlhYTM4NjgxNDc3NGJiNGQyN2E0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0
VW5pdEFkYXB0b3JJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lv
cy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcApAQCAtMzMsMTUgKzMzLDcgQEAKICNpZiBF
TkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaW5jbHVkZSAiQXVk
aW9TZXNzaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19G
UkFNRVdPUksoQXVkaW9Ub29sYm94KQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db21w
b25lbnRGaW5kTmV4dCwgQXVkaW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVu
dCwgY29uc3QgQXVkaW9Db21wb25lbnREZXNjcmlwdGlvbiAqaW5EZXNjKSwgKGluQ29tcG9uZW50
LCBpbkRlc2MpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5j
ZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25l
bnRJbnN0YW5jZSAqb3V0SW5zdGFuY2UpLCAoaW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKLVNP
RlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEFkZFByb3BlcnR5TGlzdGVuZXIsIE9TU3Rh
dHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1Vu
aXRQcm9wZXJ0eUxpc3RlbmVyUHJvYyBpblByb2MsIHZvaWQgKmluUHJvY1VzZXJEYXRhKSwgKGlu
VW5pdCwgaW5JRCwgaW5Qcm9jLCBpblByb2NVc2VyRGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29s
Ym94LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBB
dWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5p
dEVsZW1lbnQgaW5FbGVtZW50LCB2b2lkICpvdXREYXRhLCBVSW50MzIgKmlvRGF0YVNpemUpLCAo
aW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChB
dWRpb1VuaXQgaW5Vbml0KSwgKGluVW5pdCkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRp
b1VuaXRTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQ
cm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQg
aW5FbGVtZW50LCBjb25zdCB2b2lkICppbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5p
dCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQorI2luY2x1
ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTU4LDE1ICs1MCwxNSBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZp
Z3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIGRlc2Mu
Y29tcG9uZW50TWFudWZhY3R1cmVyID0ga0F1ZGlvVW5pdE1hbnVmYWN0dXJlcl9BcHBsZTsKICAg
ICBkZXNjLmNvbXBvbmVudEZsYWdzID0gMDsKICAgICBkZXNjLmNvbXBvbmVudEZsYWdzTWFzayA9
IDA7Ci0gICAgY29tcCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOworICAgIGNv
bXAgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOwogCiAgICAgQVNTRVJU
KGNvbXApOwogCi0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyhjb21wLCAmbV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBQQUw6OkF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFy
ZXN1bHQpOwogCiAgICAgVUludDMyIGZsYWcgPSAxOwotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1fb3V0cHV0VW5pdCwKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNldFBy
b3BlcnR5KG1fb3V0cHV0VW5pdCwKICAgICAgICAga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0Vu
YWJsZUlPLAogICAgICAgICBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LAogICAgICAgICAwLApAQCAt
NzQsMjAgKzY2LDIwIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZs
b2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgICAgIHNpemVvZihm
bGFnKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0SW5p
dGlhbGl6ZShtX291dHB1dFVuaXQpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0SW5pdGlh
bGl6ZShtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKICAgICAvLyBTZXQgcmVu
ZGVyIGNhbGxiYWNrCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBpbnB1dDsKICAgICBpbnB1
dC5pbnB1dFByb2MgPSBpbnB1dFByb2M7CiAgICAgaW5wdXQuaW5wdXRQcm9jUmVmQ29uID0gdGhp
czsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRp
b1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAw
LCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJh
Y2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKICAg
ICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdAogICAgIEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzdHJlYW1Gb3JtYXQ7CiAKICAgICBVSW50MzIgc2l6ZSA9
IHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pOwotICAgIHJlc3VsdCA9IEF1ZGlv
VW5pdEdldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsICZz
aXplKTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1fb3V0cHV0VW5p
dCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1
dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsICZzaXplKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7
CiAKICAgICBjb25zdGV4cHIgaW50IGJ5dGVzUGVyRmxvYXQgPSBzaXplb2YoRmxvYXQzMik7CkBA
IC0xMDEsNyArOTMsNyBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShm
bG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1h
dC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFt
Rm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAot
ICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCop
JnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAg
IHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lk
Kikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAg
ICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
c2V0UHJlZmVycmVkQnVmZmVyU2l6ZShrUHJlZmVycmVkQnVmZmVyU2l6ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRv
ck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRV
bml0QWRhcHRvck1hYy5jcHAKaW5kZXggYzhlZDNlZjc4YzhjNmEzYjFlMDcwY2I0NDA1OTY5YWRh
NGFjM2RhMi4uNzE0Y2NlODg2MjU3NTE4NjFkNWUyYjg1MTMxM2E4OWQwNDEyZWFjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFk
YXB0b3JNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRp
b091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAi
QXVkaW9CdXMuaCIKICNpbmNsdWRlIDxDb3JlQXVkaW8vQXVkaW9IYXJkd2FyZS5oPgorI2luY2x1
ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQ4LDIxICs0OSwyMSBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZp
Z3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIGRlc2Mu
Y29tcG9uZW50TWFudWZhY3R1cmVyID0ga0F1ZGlvVW5pdE1hbnVmYWN0dXJlcl9BcHBsZTsKICAg
ICBkZXNjLmNvbXBvbmVudEZsYWdzID0gMDsKICAgICBkZXNjLmNvbXBvbmVudEZsYWdzTWFzayA9
IDA7Ci0gICAgY29tcCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOworICAgIGNv
bXAgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOwogCiAgICAgQVNTRVJU
KGNvbXApOwogCi0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyhjb21wLCAmbV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBQQUw6OkF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFy
ZXN1bHQpOwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQp
OworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQpOwog
ICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCByZW5kZXIgY2FsbGJhY2sKICAgICBB
VVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlucHV0LmlucHV0UHJvYyA9IGlucHV0
UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlzOwotICAgIHJlc3VsdCA9IEF1
ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJl
bmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmaW5wdXQsIHNpemVvZihp
bnB1dCkpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRV
bml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29w
ZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CiAgICAgQVNTRVJUKCFyZXN1bHQp
OwogCiAgICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQKQEAgLTc5LDcgKzgwLDcgQEAgdm9pZCBBdWRp
b091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1
bnNpZ25lZCBudW1iZXIKICAgICBzdHJlYW1Gb3JtYXQubUNoYW5uZWxzUGVyRnJhbWUgPSBudW1i
ZXJPZk91dHB1dENoYW5uZWxzOwogICAgIHN0cmVhbUZvcm1hdC5tQml0c1BlckNoYW5uZWwgPSBi
aXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQ7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCmlu
ZGV4IGE1MzMzMmNmN2RiZDY0NjZmNDRmNTc2ZDFjZDdhZGU3NjE1MGFhNGYuLjc4NDc0ZDhlNWE1
YWMwNzAzNTMzNTk5MGNkZGY4YWZjZDgwNTYxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTMzLDEzICszMywxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIFJldGFpblB0cjxD
TUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbWFnaWNDb29raWVT
aXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSkKIHsKICAgICBhdXRvIGJhc2ljRGVzY3JpcHRp
b24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlw
dGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwogICAgIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRp
b24sIDAsIG51bGxwdHIsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZm
b3JtYXQpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxscHRyLCBt
YWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBudWxscHRyLCAmZm9ybWF0KTsKICAgICBpZiAo
ZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTU1
LDE0ICs1MywxNCBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2Ft
cGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0g
ICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3Jp
cHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxs
cHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVm
ZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0
aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBmYWxzZSwg
bnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgbnVsbHB0
ciwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIExPR19FUlJPUigi
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgd2l0aCBwYWNrZXQgZGVzY3JpcHRpb25zIGZhaWxlZCAt
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgYXV0byBi
dWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7CiAKLSAgICBlcnJvciA9IENNU2FtcGxlQnVm
ZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1
ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7CisgICAgZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGRhdGEpLmxpc3QoKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIExPR19FUlJP
UigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgZnJvbSBhdWRpbyBidWZmZXIgbGlzdCBmYWlsZWQg
LSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKaW5kZXgg
NTdjZjI5ZDBkNzdlNjc4ODliZGNlZmQ0MDU4NTEyOWVkMTJhNDU1NS4uNjRlMzBiYzI5M2NhOGY5
Mzg4NDg4ZjE0ODg1MDZjNTdiZTBhNTE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtNDEsNyArNDEsNiBA
QAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gdHJhbnNmZXJCR1JBUGl4ZWxCdWZmZXJUb0lPU3VyZmFjZShDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyKQogewpAQCAtOTAsNyArODksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmIHNh
bXBsZQogewogICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFBsYXRm
b3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOwogCi0gICAgYXV0byBpbWFnZUJ1ZmZlciA9
IENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNh
bXBsZUJ1ZmZlcik7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIgcmV0dXJuZWQgbnVsbHB0ciIpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpp
bmRleCA5ODM5YjM3MGE3MTNiN2MxZDIzZDg0N2ZhODY1MDVkNWFlOTc5YWIyLi5kZmY0ZmE0ZWRm
MjY0YjQ1MmJmOGRhN2FmYWVmNGNiZDdhMDI3YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC00NiwyMiArNDYsMTMgQEAKICNpbXBv
cnQgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2VuZGlmCiAKKyNpbXBvcnQgPHBhbC9jZi9B
dWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KLQotU09GVF9M
SU5LX0ZSQU1FV09SSyhNZWRpYVRvb2xib3gpCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9v
bGJveCkKLQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29t
cGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVy
LCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1
dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVy
LCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQotU09GVF9M
SU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJl
Ziogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3Jt
YXQsIG91dEF1ZGlvQ29udmVydGVyKSkKLQotU09GVF9MSU5LKE1lZGlhVG9vbGJveCwgTVRBdWRp
b1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVm
IHRhcCksICh0YXApKQotU09GVF9MSU5LKE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAs
IENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5P
dXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGlt
ZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJh
bWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1l
c091dCkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IE1U
QXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzICpjYWxsYmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgKnRhcE91dCks
IChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91dCkpCisjaW1wb3J0IDxwYWwvY29j
b2EvTWVkaWFUb29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2lu
ZyBuYW1lc3BhY2UgUEFMOwogc3RhdGljIGNvbnN0IGRvdWJsZSBrUmluZ0J1ZmZlckR1cmF0aW9u
ID0gMTsKIAogY2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OlRhcFN0b3JhZ2UgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OlRh
cFN0b3JhZ2U+IHsKQEAgLTczLDcgKzY0LDcgQEAgcHVibGljOgogCiBSZWZQdHI8QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM+IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoQVZQ
bGF5ZXJJdGVtICppdGVtKQogewotICAgIGlmICghY2FuTG9hZE1UQXVkaW9Qcm9jZXNzaW5nVGFw
Q3JlYXRlKCkpCisgICAgaWYgKCFQQUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9j
ZXNzaW5nVGFwQ3JlYXRlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKGl0ZW0pKTsKIH0KQEAgLTE1
Miw3ICsxNDMsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5w
dXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgIG1fcmVhZENvdW50ICs9
IGZyYW1lc1RvUHJvY2VzczsKIAogICAgIGlmIChtX2NvbnZlcnRlcikKLSAgICAgICAgQXVkaW9D
b252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Q
cm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CisgICAgICAgIFBBTDo6QXVkaW9D
b252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Q
cm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CiB9CiAKIHZvaWQgQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBj
bGllbnQpCkBAIC0yMjUsNyArMjE2LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6Y3JlYXRlTWl4SWZOZWVkZWQoKQogICAgIH07CiAKICAgICBNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cFJlZiB0YXAgPSBudWxscHRyOwotICAgIE9TU3RhdHVzIHN0YXR1cyA9IE1UQXVkaW9Qcm9jZXNz
aW5nVGFwQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZjYWxsYmFja3MsIDEsICZ0YXApOwor
ICAgIE9TU3RhdHVzIHN0YXR1cyA9IFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwgJnRhcCk7CiAgICAgaWYgKHN0YXR1cyAh
PSBub0VycikgewogICAgICAgICBpZiAodGFwKQogICAgICAgICAgICAgQ0ZSZWxlYXNlKHRhcCk7
CkBAIC0yNTgsMTQgKzI0OSwxNCBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpp
bml0Q2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCB2b2lkKgogdm9pZCBBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcFJlZiB0YXApCiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3Rv
cmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0
b3JhZ2UodGFwKSk7CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRh
cFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKICAg
ICB0YXBTdG9yYWdlLT5kZXJlZigpOwogfQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpwcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1D
b3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiAqcHJvY2Vz
c2luZ0Zvcm1hdCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9y
YWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3Rv
cmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFw
U3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogCiAg
ICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjc2LDcgKzI2Nyw3
IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxsYmFjayhNVEF1
ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjp1bnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApCiB7CiAg
ICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0
PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CisgICAg
VGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1U
QXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExvY2tlciBsb2NrZXIg
eyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTI4Nyw3ICsyNzgsNyBAQCB2b2lkIEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cFJlZiB0YXApCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzQ2FsbGJh
Y2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1iZXJGcmFtZXMs
IE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgZmxhZ3MsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVy
TGlzdEluT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0LCBNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcEZsYWdzICpmbGFnc091dCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdl
KiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5n
VGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGlj
X2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRh
cCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMzE3
LDcgKzMwOCw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoQ01J
dGVtQ291bnQgbWF4RnJhbWVzLCBjb25zdCBBdWRpb1N0cmVhCiAKICAgICBpZiAoKm1fdGFwRGVz
Y3JpcHRpb24gIT0gKm1fb3V0cHV0RGVzY3JpcHRpb24pIHsKICAgICAgICAgQXVkaW9Db252ZXJ0
ZXJSZWYgb3V0Q29udmVydGVyID0gbnVsbHB0cjsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJOZXco
bV90YXBEZXNjcmlwdGlvbi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQoKSwgJm91dENv
bnZlcnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcobV90YXBEZXNjcmlwdGlv
bi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQoKSwgJm91dENvbnZlcnRlcik7CiAgICAg
ICAgIG1fY29udmVydGVyID0gb3V0Q29udmVydGVyOwogICAgIH0KIApAQCAtMzU3LDcgKzM0OCw3
IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3MoTVRBdWRpb1Byb2Nl
c3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VuCiAgICAgCiAgICAgQ01JdGVtQ291bnQgaXRlbUNv
dW50ID0gMDsKICAgICBDTVRpbWVSYW5nZSByYW5nZU91dDsKLSAgICBPU1N0YXR1cyBzdGF0dXMg
PSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvKHRhcCwgbnVtYmVyT2ZGcmFtZXMs
IGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsICZyYW5nZU91dCwgJml0ZW1Db3VudCk7CisgICAg
T1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlv
KHRhcCwgbnVtYmVyT2ZGcmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsICZyYW5nZU91
dCwgJml0ZW1Db3VudCk7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCAhaXRlbUNvdW50KQog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDMwNWIzZDI3ZTM0
MmY5ODcyMTEyZjExNzRjMTRmZjRmM2M2MDg1NWQuLmQxNGFmZjRmNDQ5N2Y5MjdkZmExYzY2Y2Qx
MGYwYTdiZWIyMzkyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMjMyLDcgKzIzMiw2
IEBAIHN0cnVjdCBMb2dBcmd1bWVudDxBVlBsYXllclRpbWVDb250cm9sU3RhdHVzPiB7CiB9OyAv
LyBuYW1lc3BhY2UgV1RGCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiAKIHN0YXRpYyBOU0FycmF5ICphc3NldE1ldGFkYXRhS2V5TmFtZXMoKTsKIHN0YXRpYyBO
U0FycmF5ICppdGVtS1ZPUHJvcGVydGllcygpOwpAQCAtNTgyLDggKzU4MSw4IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKQog
CiAgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBlcnR1cmVNb2RlOkFWQXNzZXRJbWFn
ZUdlbmVyYXRvckFwZXJ0dXJlTW9kZUNsZWFuQXBlcnR1cmVdOwogICAgIFttX2ltYWdlR2VuZXJh
dG9yLmdldCgpIHNldEFwcGxpZXNQcmVmZXJyZWRUcmFja1RyYW5zZm9ybTpZRVNdOwotICAgIFtt
X2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZvcmU6a0NN
VGltZVplcm9dOwotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVU
b2xlcmFuY2VBZnRlcjprQ01UaW1lWmVyb107CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkg
c2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKKyAgICBb
bV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFM
OjprQ01UaW1lWmVyb107CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6ZGVzdHJveUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKQEAgLTY3MSw3ICs2NzAsNyBAQCBN
ZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRl
KCkgY29uc3QKICAgICBpZiAoIWRhdGUpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6OmludmFs
aWRUaW1lKCk7CiAKLSAgICBkb3VibGUgY3VycmVudFRpbWUgPSBDTVRpbWVHZXRTZWNvbmRzKFtt
X2F2UGxheWVySXRlbSBjdXJyZW50VGltZV0pICogMTAwMDsKKyAgICBkb3VibGUgY3VycmVudFRp
bWUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMoW21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkg
KiAxMDAwOwogCiAgICAgLy8gUm91bmRpbmcgZHVlIHRvIHNlY29uZCBvZmZzZXQgZXJyb3Igd2hl
biBzdWJ0cmFjdGluZy4KICAgICByZXR1cm4gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKHJv
dW5kKGRhdGUgLSBjdXJyZW50VGltZSkpOwpAQCAtMTA4OSw3ICsxMDg4LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiAKICAgICBB
U1NFUlQoIW1fY3VycmVudFRpbWVPYnNlcnZlcik7CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKTsKLSAgICBtX2N1cnJlbnRUaW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBh
ZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVl
OmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vha1RoaXNdIChDTVRpbWUg
dGltZSkgeworICAgIG1fY3VycmVudFRpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZFBlcmlv
ZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6UEFMOjpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRp
bWUpIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPmN1cnJl
bnRNZWRpYVRpbWVEaWRDaGFuZ2UoUEFMOjp0b01lZGlhVGltZSh0aW1lKSk7CiAgICAgfV07CkBA
IC0xNDIzLDcgKzE0MjIsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBNZWRpYVRp
bWU6Onplcm9UaW1lKCk7CiAKICAgICBpZiAoIW1fd2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGlt
ZSkKLSAgICAgICAgY3VycmVudE1lZGlhVGltZURpZENoYW5nZSh0b01lZGlhVGltZShbbV9hdlBs
YXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVdKSk7CisgICAgICAgIGN1cnJlbnRNZWRpYVRpbWVE
aWRDaGFuZ2UoUEFMOjp0b01lZGlhVGltZShbbV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRp
bWVdKSk7CiAgICAgQVNTRVJUKG1fd2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGltZSk7CiAKICAg
ICBhdXRvIGl0ZW1UaW1lID0gbV9jYWNoZWRDdXJyZW50TWVkaWFUaW1lOwpAQCAtMTQ2OCw4ICsx
NDY3LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZWVrVG9U
aW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QKICAgICBDTVRpbWUgY21BZnRlciA9IFBB
TDo6dG9DTVRpbWUocG9zaXRpdmVUb2xlcmFuY2UpOwogCiAgICAgLy8gW0FWUGxheWVySXRlbSBz
ZWVrVG9UaW1lXSB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0b2xlcmFuY2VCZWZvcmUgaXMg
bmVnYXRpdmUuCi0gICAgaWYgKENNVGltZUNvbXBhcmUoY21CZWZvcmUsIGtDTVRpbWVaZXJvKSA8
IDApCi0gICAgICAgIGNtQmVmb3JlID0ga0NNVGltZVplcm87CisgICAgaWYgKFBBTDo6Q01UaW1l
Q29tcGFyZShjbUJlZm9yZSwgUEFMOjprQ01UaW1lWmVybykgPCAwKQorICAgICAgICBjbUJlZm9y
ZSA9IFBBTDo6a0NNVGltZVplcm87CiAgICAgCiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKTsKIApAQCAtMTU4Niw2ICsxNTg1LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0oTWVkaWFQbGF5
ZXIKIAogc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMoKSBjb25zdAog
eworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CisKICAgICBhdXRvIHRpbWVSYW5nZXMgPSBtYWtl
VW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKIAogICAgIGlmICghbV9hdlBsYXllckl0ZW0p
CkBAIC0xNTk0LDEzICsxNTk1LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5n
ZXM+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtCiAgICAgZm9y
IChOU1ZhbHVlICp0aGlzUmFuZ2VWYWx1ZSBpbiBtX2NhY2hlZExvYWRlZFJhbmdlcy5nZXQoKSkg
ewogICAgICAgICBDTVRpbWVSYW5nZSB0aW1lUmFuZ2UgPSBbdGhpc1JhbmdlVmFsdWUgQ01UaW1l
UmFuZ2VWYWx1ZV07CiAgICAgICAgIGlmIChDTVRJTUVSQU5HRV9JU19WQUxJRCh0aW1lUmFuZ2Up
ICYmICFDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQotICAgICAgICAgICAgdGltZVJh
bmdlcy0+YWRkKFBBTDo6dG9NZWRpYVRpbWUodGltZVJhbmdlLnN0YXJ0KSwgUEFMOjp0b01lZGlh
VGltZShDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CisgICAgICAgICAgICB0aW1lUmFu
Z2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRvTWVkaWFU
aW1lKFBBTDo6Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSkpOwogICAgIH0KICAgICByZXR1
cm4gdGltZVJhbmdlczsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnBsYXRmb3JtTWluVGltZVNlZWthYmxlKCkgY29uc3QKIHsKKyAgICB1c2luZyBu
YW1lc3BhY2UgUEFMOworCiAgICAgaWYgKCFtX2NhY2hlZFNlZWthYmxlUmFuZ2VzIHx8ICFbbV9j
YWNoZWRTZWVrYWJsZVJhbmdlcyBjb3VudF0pCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onpl
cm9UaW1lKCk7CiAKQEAgLTE2MjEsNiArMTYyNCw4IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1pblRpbWVTZWVrYWJsZSgpIGNvbnN0CiAK
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1h
eFRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAg
IGlmICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcykKICAgICAgICAgbV9jYWNoZWRTZWVrYWJsZVJh
bmdlcyA9IFttX2F2UGxheWVySXRlbSBzZWVrYWJsZVRpbWVSYW5nZXNdOwogCkBAIC0xNjMzLDcg
KzE2MzgsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAogICAgICAgICBpZiAoIUNNVElNRVJBTkdF
X0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVkaWFUaW1lIGVuZE9m
UmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpOwor
ICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRp
bWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRpbWVTZWVrYWJsZSA8
IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBtYXhUaW1lU2Vla2FibGUgPSBlbmRPZlJhbmdlOwog
ICAgIH0KQEAgLTE2NDIsNiArMTY0Nyw4IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAKIE1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVM
b2FkZWQoKSBjb25zdAogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CisKICAgICBpZiAoIW1f
Y2FjaGVkTG9hZGVkUmFuZ2VzKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgp
OwogCkBAIC0xNjUxLDcgKzE2NTgsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkKCkgY29uc3QKICAgICAgICAgaWYg
KCFDTVRJTUVSQU5HRV9JU19WQUxJRCh0aW1lUmFuZ2UpIHx8IENNVElNRVJBTkdFX0lTX0VNUFRZ
KHRpbWVSYW5nZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIE1l
ZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0
aW1lUmFuZ2UpKTsKKyAgICAgICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFU
aW1lKFBBTDo6Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CiAgICAgICAgIGlmIChtYXhU
aW1lTG9hZGVkIDwgZW5kT2ZSYW5nZSkKICAgICAgICAgICAgIG1heFRpbWVMb2FkZWQgPSBlbmRP
ZlJhbmdlOwogICAgIH0KQEAgLTE4MDMsNyArMTgxMCw3IEBAIFJldGFpblB0cjxDR0ltYWdlUmVm
PiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJ
blJlCiAgICAgTW9ub3RvbmljVGltZSBzdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogCiAg
ICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0TWF4aW11bVNpemU6Q0dTaXplKHJlY3Quc2l6
ZSgpKV07Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9p
bWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFnZUF0VGltZTpDTVRpbWVNYWtlV2l0aFNlY29u
ZHModGltZSwgNjAwKSBhY3R1YWxUaW1lOm5pbCBlcnJvcjpuaWxdKTsKKyAgICBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIGNv
cHlDR0ltYWdlQXRUaW1lOlBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0
dWFsVGltZTpuaWwgZXJyb3I6bmlsXSk7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdl
ID0gYWRvcHRDRihDR0ltYWdlQ3JlYXRlQ29weVdpdGhDb2xvclNwYWNlKHJhd0ltYWdlLmdldCgp
LCBzUkdCQ29sb3JTcGFjZVJlZigpKSk7CiAKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAi
Y3JlYXRpbmcgaW1hZ2UgdG9vayAiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydCkuc2Vj
b25kcygpKTsKQEAgLTE5ODksNyArMTk5Niw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6ZGlkU3RvcExvYWRpbmdSZXF1ZXN0KEFWQXNzZXRSZXNvdXJjZUxvCiAK
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aXNBdmFpbGFibGUoKQog
ewotICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYg
aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKTsKKyAgICByZXR1cm4gUEFMOjppc0FWRm91
bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtB
dmFpbGFibGUoKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6Om1lZGlhVGltZUZvclRpbWVWYWx1ZShjb25zdCBNZWRpYVRpbWUmIHRpbWVWYWx1ZSkg
Y29uc3QKQEAgLTMyMzUsOSArMzI0Miw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6bWV0YWRhdGFHcm91cERpZEFycml2ZShjb25zdCBSZXRhaW5QdHI8CiAgICAg
ICAgIGZvciAoQVZNZXRhZGF0YUl0ZW0gKml0ZW0gaW4gZ3JvdXAuaXRlbXMpIHsKICAgICAgICAg
ICAgIFJldGFpblB0cjxBVk11dGFibGVNZXRhZGF0YUl0ZW0+IGl0ZW1Db3B5ID0gYWRvcHROUyhb
aXRlbSBtdXRhYmxlQ29weV0pOwogICAgICAgICAgICAgaWYgKCFDTVRJTUVfSVNfVkFMSUQoaXRl
bUNvcHkuZ2V0KCkudGltZSkpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkudGltZSA9
IENNVGltZU1ha2VXaXRoU2Vjb25kcyhncm91cFN0YXJ0VGltZSwgTWVkaWFUaW1lOjpEZWZhdWx0
VGltZVNjYWxlKTsKKyAgICAgICAgICAgICAgICBpdGVtQ29weS5nZXQoKS50aW1lID0gUEFMOjpD
TVRpbWVNYWtlV2l0aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUsIE1lZGlhVGltZTo6RGVmYXVsdFRp
bWVTY2FsZSk7CiAgICAgICAgICAgICBpZiAoIUNNVElNRV9JU19WQUxJRChpdGVtQ29weS5nZXQo
KS5kdXJhdGlvbikpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24gPSB0
b0NNVGltZShncm91cER1cmF0aW9uKTsKKyAgICAgICAgICAgICAgICBpdGVtQ29weS5nZXQoKS5k
dXJhdGlvbiA9IFBBTDo6dG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7CiAgICAgICAgICAgICBbZ3Jv
dXBDb3B5IGFkZE9iamVjdDppdGVtQ29weS5nZXQoKV07CiAgICAgICAgIH0KIApAQCAtMzI3OSw3
ICszMjg2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZXRh
ZGF0YURpZEFycml2ZShjb25zdCBSZXRhaW5QdHI8TlNBcnIKIAogICAgICAgICBNZWRpYVRpbWUg
ZW5kID0gTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpOwogICAgICAgICBhdXRvIGR1
cmF0aW9uID0gaXRlbS5kdXJhdGlvbjsKLSAgICAgICAgaWYgKENNVElNRV9JU19WQUxJRChkdXJh
dGlvbikgJiYgQ01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkKKyAgICAgICAgaWYg
KENNVElNRV9JU19WQUxJRChkdXJhdGlvbikgJiYgUEFMOjpDTVRpbWVHZXRTZWNvbmRzKGR1cmF0
aW9uKSA+IDAuMDAxKQogICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBQQUw6OnRvTWVkaWFUaW1l
KGR1cmF0aW9uKTsKIAogICAgICAgICBBdG9tU3RyaW5nIHR5cGUgPSBudWxsQXRvbSgpOwpAQCAt
MzQ1OCw3ICszNDY1LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm8KICAgICBpZiAobV90aW1l
T2JzZXJ2ZXIpCiAgICAgICAgIFttX2F2UGxheWVyIHJlbW92ZVRpbWVPYnNlcnZlcjptX3RpbWVP
YnNlcnZlci5nZXQoKV07CiAKLSAgICBtX3RpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZEJv
dW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6dG9D
TVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6
XnsKKyAgICBtX3RpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZEJvdW5kYXJ5VGltZU9ic2Vy
dmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6UEFMOjp0b0NNVGltZSh0aW1l
KV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeewogICAgICAg
ICB0YXNrSW4oKTsKICAgICB9XTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbQppbmRleCA1YTY5YWE2Nzk1MTg5Y2I0ZTA3NmQzMTk0NjlmOTk2NTA0ZmY5NDZjLi43
M2FkZWI5YmI3M2E3ODI4ZGY1YTNmNDg0YzVmOTBlMzMzZDI0MWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCkBAIC02Niw3ICs2Niw2IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFN0
b3JhZ2VEaXJlY3RvcnlBdFVSTDooTlNVUkwgKilzdG9yYWdlRGlyZWN0b3J5OwogQGVuZAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBTdHJpbmcgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpTZWVrU3RhdGUgZW51bWVyYXRpb25WYWx1ZSkKIHsKQEAgLTExNiwxNSArMTE1LDE1IEBAIHN0
YXRpYyB2b2lkIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrKENNTm90aWZp
Y2F0aW9uQ2VudGVyUmVmLCBjb25zCiAKIHZvaWQgRWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5l
cjo6c3RvcChDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogewotICAgIENNTm90aWZpY2F0aW9uQ2Vu
dGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKTsK
LSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWVi
YXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGltZWJhc2VOb3RpZmljYXRpb25f
RWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlKTsKKyAgICBDTU5vdGlmaWNhdGlvbkNlbnRl
clJlZiBuYyA9IFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIo
KTsKKyAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIobmMsIHRoaXMs
IENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBQQUw6OmtDTVRpbWViYXNl
Tm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSk7CiB9CiAKIEVmZmVj
dGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXIoTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDJiBjbGllbnQsIENNVGltZWJhc2VSZWYg
dGltZWJhc2UpCiAgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQogewotICAgIENN
Tm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0
TG9jYWxDZW50ZXIoKTsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0
aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGltZWJhc2VO
b3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAwKTsKKyAgICBDTU5v
dGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZh
dWx0TG9jYWxDZW50ZXIoKTsKKyAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVu
ZXIobmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBQQUw6
OmtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSwg
MCk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCkBAIC0xNTcs
NyArMTU2LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWEKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBERUJVR19MT0cobG9nU2l0ZUlkZW50
aWZpZXIsICJzeW5jaHJvbml6ZXIgZmlyZWQgZm9yICIsIHRvTWVkaWFUaW1lKHRpbWUpLCAiLCBz
ZWVraW5nID0gIiwgbV9zZWVraW5nLCAiLCBwZW5kaW5nID0gIiwgISFtX3BlbmRpbmdTZWVrKTsK
KyAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hyb25pemVyIGZpcmVk
IGZvciAiLCBQQUw6OnRvTWVkaWFUaW1lKHRpbWUpLCAiLCBzZWVraW5nID0gIiwgbV9zZWVraW5n
LCAiLCBwZW5kaW5nID0gIiwgISFtX3BlbmRpbmdTZWVrKTsKIAogICAgICAgICBpZiAobV9zZWVr
aW5nICYmICFtX3BlbmRpbmdTZWVrKSB7CiAgICAgICAgICAgICBtX3NlZWtpbmcgPSBmYWxzZTsK
QEAgLTIzOCwxMSArMjM3LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0CiBib29sIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUoKQogewogICAgIHJl
dHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkKLSAgICAgICAgJiYg
aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQotICAgICAgICAmJiBnZXRBVlN0cmVhbURh
dGFQYXJzZXJDbGFzcygpCi0gICAgICAgICYmIGdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
ckNsYXNzKCkKLSAgICAgICAgJiYgZ2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJvbml6ZXJD
bGFzcygpCi0gICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKGdldEFWU2FtcGxlQnVm
ZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3RvcihzZXRNdXRlZDopKTsKKyAgICAgICAg
JiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpCisgICAgICAgICYmIFBBTDo6
Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKQorICAgICAgICAmJiBQQUw6OmdldEFWU2FtcGxl
QnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCkKKyAgICAgICAgJiYgUEFMOjpnZXRBVlNhbXBsZUJ1
ZmZlclJlbmRlclN5bmNocm9uaXplckNsYXNzKCkKKyAgICAgICAgJiYgY2xhc3NfZ2V0SW5zdGFu
Y2VNZXRob2QoUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpLCBAc2Vs
ZWN0b3Ioc2V0TXV0ZWQ6KSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5z
ZW5zaXRpdmVIYXNoPiYgdHlwZXMpCkBAIC00MTcsNyArNDE2LDcgQEAgTWVkaWFUaW1lIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25z
dAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjdXJy
ZW50TWVkaWFUaW1lKCkgY29uc3QKIHsKLSAgICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGltZSA9
IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWVi
YXNlXSkpOworICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKICAg
ICBpZiAoc3luY2hyb25pemVyVGltZSA8IE1lZGlhVGltZTo6emVyb1RpbWUoKSkKICAgICAgICAg
cmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKICAgICBpZiAoc3luY2hyb25pemVyVGltZSA8
IG1fbGFzdFNlZWtUaW1lKQpAQCAtNDMwLDcgKzQyOSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRDdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKE1l
ZGlhCiAgICAgbV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayk7CiAKICAgICBpZiAobV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKSB7Ci0gICAgICAg
IG1fdGltZUNoYW5nZWRPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRQZXJpb2RpY1RpbWVP
YnNlcnZlckZvckludGVydmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENNVGltZSB0aW1lKSB7CisgICAgICAgIG1fdGltZUNo
YW5nZWRPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZv
ckludGVydmFsOlBBTDo6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSB1c2luZ0Jsb2NrOl4oQ01UaW1lIHRpbWUpIHsKICAgICAgICAgICAgIGlmIChtX2N1
cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2spCiAgICAgICAgICAgICAgICAgbV9jdXJyZW50VGlt
ZURpZENoYW5nZUNhbGxiYWNrKENNVElNRV9JU19OVU1FUklDKHRpbWUpID8gUEFMOjp0b01lZGlh
VGltZSh0aW1lKSA6IE1lZGlhVGltZTo6emVyb1RpbWUoKSk7CiAgICAgICAgIH1dOwpAQCAtNDgy
LDcgKzQ4MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpz
ZWVrSW50ZXJuYWwoKQogICAgIGlmIChtX2xhc3RTZWVrVGltZS5oYXNEb3VibGVWYWx1ZSgpKQog
ICAgICAgICBtX2xhc3RTZWVrVGltZSA9IE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZShtX2xh
c3RTZWVrVGltZS50b0RvdWJsZSgpLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwogCi0g
ICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJh
c2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBNZWRpYVRpbWUgc3lu
Y2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGltZShb
bV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwg
InNlZWtUaW1lID0gIiwgbV9sYXN0U2Vla1RpbWUsICIsIHN5bmNocm9uaXplclRpbWUgPSAiLCBz
eW5jaHJvbml6ZXJUaW1lKTsKIAogICAgIGJvb2wgZG9lc05vdFJlcXVpcmVTZWVrID0gc3luY2hy
b25pemVyVGltZSA9PSBtX2xhc3RTZWVrVGltZTsKQEAgLTU5OSw3ICs1OTgsNyBAQCBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6dXBkYXRlTGFzdFBpeGVsQnVmZmVy
KCkKICAgICBpZiAobV92aWRlb091dHB1dCkgewogICAgICAgICBDTVRpbWUgb3V0cHV0VGltZTsK
ICAgICAgICAgaWYgKGF1dG8gcGl4ZWxCdWZmZXIgPSBhZG9wdENGKFttX3ZpZGVvT3V0cHV0IGNv
cHlQaXhlbEJ1ZmZlckZvclNvdXJjZVRpbWU6dG9DTVRpbWUoY3VycmVudE1lZGlhVGltZSgpKSBz
b3VyY2VUaW1lRm9yRGlzcGxheTomb3V0cHV0VGltZV0pKSB7Ci0gICAgICAgICAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVmZmVyIGZvdW5kIGZvciB0aW1lICIsIHRvTWVk
aWFUaW1lKG91dHB1dFRpbWUpKTsKKyAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIs
ICJuZXcgcGl4ZWxidWZmZXIgZm91bmQgZm9yIHRpbWUgIiwgUEFMOjp0b01lZGlhVGltZShvdXRw
dXRUaW1lKSk7CiAgICAgICAgICAgICBtX2xhc3RQaXhlbEJ1ZmZlciA9IFdURk1vdmUocGl4ZWxC
dWZmZXIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTgwOSw3ICs4
MDgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZGVzdHJv
eUxheWVyKCkKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBDTVRpbWViYXNlR2V0VGltZShbbV9z
eW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKKyAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBQQUw6OkNN
VGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOwogICAgIFttX3N5bmNo
cm9uaXplciByZW1vdmVSZW5kZXJlcjptX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKSBh
dFRpbWU6Y3VycmVudFRpbWUgd2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCl7CiAgICAgICAg
IC8vIE5vLW9wLgogICAgIH1dOwpAQCAtMTAxOCw3ICsxMDE3LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmZsdXNoUGVuZGluZ1NpemVDaGFuZ2VzKCkKICNp
ZiBIQVZFKEFWU1RSRUFNU0VTU0lPTikKIEFWU3RyZWFtU2Vzc2lvbiogTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKCkKIHsKLSAgICBpZiAoIWdldEFW
U3RyZWFtU2Vzc2lvbkNsYXNzKCkgfHwgIVtQQUw6OmdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkg
aW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRXaXRoU3RvcmFnZURpcmVj
dG9yeUF0VVJMOildKQorICAgIGlmICghUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIHx8
ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVj
dG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkKICAgICAgICAg
cmV0dXJuIG5pbDsKIAogICAgIGlmICghbV9zdHJlYW1TZXNzaW9uKSB7CkBAIC0xMjE3LDcgKzEy
MTYsNyBAQCBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogICAgIGlmIChpdGVyID09
IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25p
emVyIHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNl
R2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIg
cmVtb3ZlUmVuZGVyZXI6YXVkaW9SZW5kZXJlciBhdFRpbWU6Y3VycmVudFRpbWUgd2l0aENvbXBs
ZXRpb25IYW5kbGVyOl4oQk9PTCl7CiAgICAgICAgIC8vIE5vLW9wLgogICAgIH1dOwpAQCAtMTMw
MSw3ICsxMzAwLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICBpZiAobV9wZXJmb3Jt
VGFza09ic2VydmVyKQogICAgICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3ZlVGltZU9ic2VydmVy
Om1fcGVyZm9ybVRhc2tPYnNlcnZlci5nZXQoKV07CiAKLSAgICBtX3BlcmZvcm1UYXNrT2JzZXJ2
ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tO
U1ZhbHVlIHZhbHVlV2l0aENNVGltZTp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeeworICAgIG1fcGVyZm9ybVRhc2tPYnNlcnZlciA9
IFttX3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFs
dWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7CiAgICAgfV07
CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggZTFhZDEw
MmJiOTgxYmYzNzRlNmJkOTM3YzBjNmUyYTg3ZjQwZjE1Zi4uNTViNTAwYzU3ZTkzZWJiYTQ5NmFl
NzQxNmZkNWRmNzhkN2I5NDU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMzIs
NiArMzIsNyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbXBvcnQgIkxvZ2dp
bmcuaCIKICNpbXBvcnQgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisjaW1wb3J0
ICJNZWRpYVBsYXllci5oIgogI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmgiCiAj
aW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9y
bWVyQ1YuaCIKQEAgLTEyMSw3ICsxMjIsNiBAQCAtICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBh
dGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTgogQGVu
ZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjcHJhZ21h
IG1hcmsgLQogI3ByYWdtYSBtYXJrIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
QwpAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSgpCiB7Ci0gICAg
cmV0dXJuIGlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgaXNDb3JlTWVkaWFG
cmFtZXdvcmtBdmFpbGFibGUoKSAmJiBnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNz
KCk7CisgICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAm
JiBQQUw6OmlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjpnZXRBVlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpCkBAIC0yMzAsNyArMjMwLDcgQEAgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnN1cHBvcnRzVHlwZShjb24KIHN0YXRpYyBpbmxpbmUgQ0dBZmZpbmVUcmFuc2Zvcm0gdmlkZW9U
cmFuc2Zvcm1hdGlvbk1hdHJpeChNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAgIENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlcjsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1w
bGVCdWZmZXIpKTsKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNh
bXBsZUJ1ZmZlcikpOwogICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChw
aXhlbEJ1ZmZlcik7CiAgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQo
cGl4ZWxCdWZmZXIpOwogICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkKQEAgLTk2MCw3ICs5NjAs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlQ3Vy
cmVudEZyYW1lSW1hZ2UoKQogICAgIGlmICghbV9pbWFnZVBhaW50ZXIucGl4ZWxCdWZmZXJDb25m
b3JtZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNf
Y2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1faW1h
Z2VQYWludGVyLm1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1
ZmZlcikpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVy
UmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9pbWFnZVBhaW50ZXIubWVk
aWFTYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7CiAgICAg
bV9pbWFnZVBhaW50ZXIuY2dJbWFnZSA9IE5hdGl2ZUltYWdlOjpjcmVhdGUobV9pbWFnZVBhaW50
ZXIucGl4ZWxCdWZmZXJDb25mb3JtZXItPmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKHBpeGVs
QnVmZmVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2Jq
Qy5tbQppbmRleCAyZjQ5ODM4NzY1ZDNjOTQ0MWI2OWJiOTUxOGIzYjFmOWE4Nzk1MDliLi43YmY0
MmQ0ZTdkN2NjYjI4YWNhZjM5MDgwODllMTUxYzQyNGQ3ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCkBAIC0zNiw5ICszNiwxMSBAQAogI2ltcG9y
dCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCi1XVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlU
KENNU2FtcGxlQnVmZmVyKTsKKy8vIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVC
dWZmZXIpOwordGVtcGxhdGUgPD4KK3N0cnVjdCBXVEY6OkNGVHlwZVRyYWl0PENNU2FtcGxlQnVm
ZmVyUmVmPiB7CisgICAgc3RhdGljIGlubGluZSBDRlR5cGVJRCB0eXBlSUQodm9pZCkgeyByZXR1
cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCgpOyB9Cit9OwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTY3LDM1ICs2OSwzNSBAQCBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFBpeGVsQnVmZmVyJiYgcAogICAg
IEFTU0VSVF9VTlVTRUQoc3RhdHVzLCAhc3RhdHVzKTsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvblJhdyA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0g
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uUmF3KTsKKyAg
ICBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNj
cmlwdGlvblJhdyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8gZm9ybWF0RGVzY3Jp
cHRpb24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0aW9uUmF3KTsKIAotICAgIENNU2FtcGxlVGlt
aW5nSW5mbyBzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiA9IHsga0NNVGltZUludmFsaWQsIGtDTVRp
bWVJbnZhbGlkLCBrQ01UaW1lSW52YWxpZCB9OworICAgIENNU2FtcGxlVGltaW5nSW5mbyBzYW1w
bGVUaW1pbmdJbmZvcm1hdGlvbiA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjprQ01UaW1l
SW52YWxpZCwgUEFMOjprQ01UaW1lSW52YWxpZCB9OwogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlclJhdyA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVy
LmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9ybWF0aW9u
LCAmc2FtcGxlQnVmZmVyUmF3KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZl
ci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZvcm1hdGlv
biwgJnNhbXBsZUJ1ZmZlclJhdyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8gc2Ft
cGxlQnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXJSYXcpOwogCi0gICAgQ0ZBcnJheVJlZiBh
dHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5
KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0Fy
cmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxl
QnVmZmVyLmdldCgpLCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0gQ0ZB
cnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAg
ICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENG
TXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNB
cnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NN
U2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsK
KyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxl
QXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9
CiAgICAgcmV0dXJuIGNyZWF0ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOwogfQogCiBNZWRpYVRpbWUg
TWVkaWFTYW1wbGVBVkZPYmpDOjpwcmVzZW50YXRpb25UaW1lKCkgY29uc3QKIHsKLSAgICBhdXRv
IHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1w
KG1fc2FtcGxlLmdldCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlm
IChDTVRJTUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQotICAgICAgICB0aW1lU3RhbXAgPSBDTVNh
bXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAg
ICAgIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3Rh
bXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFt
cCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUoKSBjb25z
dAogewotICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3Rh
bXAobV9zYW1wbGUuZ2V0KCkpOworICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldERlY29kZVRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKENNVElNRV9J
U19JTlZBTElEKHRpbWVTdGFtcCkpCiAgICAgICAgIHJldHVybiBwcmVzZW50YXRpb25UaW1lKCk7
CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUodGltZVN0YW1wKTsKQEAgLTEwMywxNSArMTA1
LDE1IEBAIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUoKSBjb25zdAog
CiBNZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkdXJhdGlvbigpIGNvbnN0CiB7Ci0gICAg
YXV0byBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24obV9zYW1wbGUu
Z2V0KCkpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0
RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRChkdXJh
dGlvbikpCi0gICAgICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3Nh
bXBsZS5nZXQoKSk7CisgICAgICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1
cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZShkdXJh
dGlvbik7CiB9CiAKIHNpemVfdCBNZWRpYVNhbXBsZUFWRk9iakM6OnNpemVJbkJ5dGVzKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUobV9zYW1w
bGUuZ2V0KCkpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVT
aXplKG1fc2FtcGxlLmdldCgpKTsKIH0KIAogUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1wbGVBVkZP
YmpDOjpwbGF0Zm9ybVNhbXBsZSgpCkBAIC0xMjIsMjMgKzEyNCwyMyBAQCBQbGF0Zm9ybVNhbXBs
ZSBNZWRpYVNhbXBsZUFWRk9iakM6OnBsYXRmb3JtU2FtcGxlKCkKIAogdWludDMyX3QgTWVkaWFT
YW1wbGVBVkZPYmpDOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKIHsKLSAgICBhdXRvIHBpeGVs
QnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJ
bWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0
aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZm
ZXIobV9zYW1wbGUuZ2V0KCkpKTsKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9y
bWF0VHlwZShwaXhlbEJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJB
dHRhY2htZW50UmFuZG9tQWNjZXNzKENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCkKIHsK
LSAgICByZXR1cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBrQ01T
YW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMpOworICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5Q29u
dGFpbnNLZXkoYXR0YWNobWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RT
eW5jKTsKIH0KIAogc3RhdGljIGJvb2wgZG9lc0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIHsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIHJldHVybiBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKIH0K
IAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGUpCiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5
UmVmIGF0dGFjaG1lbnRzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRz
QXJyYXkoc2FtcGxlLCBmYWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgCkBAIC0xNTEsMTIgKzE1MywxMiBAQCBzdGF0aWMgYm9vbCBpc0NNU2Ft
cGxlQnVmZmVyUmFuZG9tQWNjZXNzKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIAogc3RhdGlj
IGJvb2wgaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKENGRGljdGlvbmFy
eVJlZiBhdHRhY2htZW50RGljdCkKIHsKLSAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29udGFpbnNL
ZXkoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsK
KyAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIFBBTDo6
a0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkpOwogfQogCiBzdGF0aWMgYm9vbCBp
c0NNU2FtcGxlQnVmZmVyTm9uRGlzcGxheWluZyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiB7
Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0
YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRz
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBm
YWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IApAQCAtMTg2LDExICsxODgsMTEgQEAgTWVkaWFTYW1wbGU6OlNhbXBsZUZsYWdzIE1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZmxhZ3MoKSBjb25zdAogCiBGbG9hdFNpemUgTWVkaWFTYW1wbGVBVkZPYmpD
OjpwcmVzZW50YXRpb25TaXplKCkgY29uc3QKIHsKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiht
X3NhbXBsZS5nZXQoKSk7Ci0gICAgaWYgKENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUo
Zm9ybWF0RGVzY3JpcHRpb24pICE9IGtDTU1lZGlhVHlwZV9WaWRlbykKKyAgICBDTUZvcm1hdERl
c2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICBpZiAoUEFMOjpDTUZvcm1hdERl
c2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVf
VmlkZW8pCiAgICAgICAgIHJldHVybiBGbG9hdFNpemUoKTsKICAgICAKLSAgICByZXR1cm4gRmxv
YXRTaXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMo
Zm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKFBB
TDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3Jt
YXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwogfQogCiB2b2lkIE1lZGlhU2FtcGxlQVZGT2Jq
Qzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdApAQCAtMjAxLDEyICsyMDMsMTIgQEAgdm9p
ZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHZvaWQg
TWVkaWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBv
ZmZzZXQpCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBpZiAobm9FcnIg
IT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCks
IDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRy
LCAmaXRlbUNvdW50KSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFZlY3RvcjxDTVNhbXBs
ZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3Jvdyhp
dGVtQ291bnQpOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0
YSgpLCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZv
QXJyYXkuZGF0YSgpLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGZvciAo
YXV0byYgdGltaW5nIDogdGltaW5nSW5mb0FycmF5KSB7CkBAIC0yMTUsNyArMjE3LDcgQEAgdm9p
ZCBNZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUm
IG9mZnNldCkKICAgICB9CiAgICAgCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3U2FtcGxlOwot
ICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9B
cnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxl
QnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1w
bGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkp
CiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBtX3NhbXBsZSA9IGFkb3B0Q0YobmV3U2FtcGxl
KTsKQEAgLTIyNCwxMiArMjI2LDEyIEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRU
aW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiB2b2lkIE1lZGlhU2FtcGxlQVZG
T2JqQzo6c2V0VGltZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGlt
ZXN0YW1wLCBjb25zdCBXVEY6Ok1lZGlhVGltZSAmZGVjb2RlVGltZXN0YW1wKQogewogICAgIENN
SXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRl
bUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCiAg
ICAgICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1p
bmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBp
ZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1w
bGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisg
ICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVs
bHB0cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWluZyA6IHRp
bWluZ0luZm9BcnJheSkgewpAQCAtMjM4LDcgKzI0MCw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZP
YmpDOjpzZXRUaW1lc3RhbXBzKGNvbnN0IFdURjo6TWVkaWFUaW1lICZwcmVzZW50YXRpb25UaW1l
c3RhCiAgICAgfQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBp
ZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXku
ZGF0YSgpLCAmbmV3U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdl
dCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAg
ICAgICByZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBA
IC0yNDYsMTAgKzI0OCwxMCBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGltZXN0YW1w
cyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogCiBib29sIE1lZGlh
U2FtcGxlQVZGT2JqQzo6aXNEaXZpc2FibGUoKSBjb25zdAogewotICAgIGlmIChDTVNhbXBsZUJ1
ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpID09IDEpCisgICAgaWYgKFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAxKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXko
bV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09IGtDTVNhbXBsZUJ1ZmZlckVy
cm9yX0J1ZmZlckhhc05vU2FtcGxlU2l6ZXMpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVTaXplQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09
IGtDTVNhbXBsZUJ1ZmZlckVycm9yX0J1ZmZlckhhc05vU2FtcGxlU2l6ZXMpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtMjYyLDE3ICsyNjQsMTcgQEAgc3Rk
OjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGl2aWRlKGMKIAogICAgIENGSW5kZXggc2FtcGxlc0JlZm9yZVByZXNlbnRh
dGlvblRpbWUgPSAwOwogCi0gICAgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxl
KG1fc2FtcGxlLmdldCgpLCBbJl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01J
dGVtQ291bnQpIC0+IE9TU3RhdHVzIHsKLSAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBDTVNhbXBs
ZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOworICAg
IFBBTDo6Q01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2FtcGxlLmdldCgp
LCBbJl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQpIC0+IE9T
U3RhdHVzIHsKKyAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CiAgICAgICAgIGlmIChD
TVRJTUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQotICAgICAgICAgICAgdGltZVN0YW1wID0gQ01T
YW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICAg
ICAgICAgIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1l
U3RhbXAoc2FtcGxlQnVmZmVyKTsKIAogICAgICAgICBpZiAodXNlRW5kVGltZSA9PSBVc2VFbmRU
aW1lOjpVc2UpIHsKLSAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdl
dE91dHB1dER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGR1cmF0aW9u
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CiAg
ICAgICAgICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAgICAgICAgICAg
ICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwor
ICAgICAgICAgICAgICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9u
KHNhbXBsZUJ1ZmZlcik7CiAKLSAgICAgICAgICAgIGlmIChQQUw6OnRvTWVkaWFUaW1lKENNVGlt
ZUFkZCh0aW1lU3RhbXAsIGR1cmF0aW9uKSkgPiBwcmVzZW50YXRpb25UaW1lKQorICAgICAgICAg
ICAgaWYgKFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVBZGQodGltZVN0YW1wLCBkdXJhdGlv
bikpID4gcHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAg
ICAgfSBlbHNlIGlmIChQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCkgPj0gcHJlc2VudGF0aW9u
VGltZSkKICAgICAgICAgICAgIHJldHVybiAxOwpAQCAtMjgzLDE5ICsyODUsMTkgQEAgc3RkOjpw
YWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2FtcGxl
QVZGT2JqQzo6ZGl2aWRlKGMKICAgICBpZiAoIXNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1l
KQogICAgICAgICByZXR1cm4geyBudWxscHRyLCB0aGlzIH07CiAKLSAgICBDTUl0ZW1Db3VudCBz
YW1wbGVDb3VudCA9IENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSk7
CisgICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0TnVt
U2FtcGxlcyhtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKHNhbXBsZXNCZWZvcmVQcmVzZW50YXRp
b25UaW1lID49IHNhbXBsZUNvdW50KQogICAgICAgICByZXR1cm4geyB0aGlzLCBudWxscHRyIH07
CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVCZWZvcmUgPSBudWxscHRyOwogICAg
IENGUmFuZ2UgcmFuZ2VCZWZvcmUgPSBDRlJhbmdlTWFrZSgwLCBzYW1wbGVzQmVmb3JlUHJlc2Vu
dGF0aW9uVGltZSk7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJh
bmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9yZSwgJnJh
d1NhbXBsZUJlZm9yZSkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5
U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCks
IHJhbmdlQmVmb3JlLCAmcmF3U2FtcGxlQmVmb3JlKSAhPSBub0VycikKICAgICAgICAgcmV0dXJu
IHsgbnVsbHB0ciwgbnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
c2FtcGxlQmVmb3JlID0gYWRvcHRDRihyYXdTYW1wbGVCZWZvcmUpOwogCiAgICAgQ01TYW1wbGVC
dWZmZXJSZWYgcmF3U2FtcGxlQWZ0ZXIgPSBudWxscHRyOwogICAgIENGUmFuZ2UgcmFuZ2VBZnRl
ciA9IENGUmFuZ2VNYWtlKHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lLCBzYW1wbGVDb3Vu
dCAtIHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lKTsKLSAgICBpZiAoQ01TYW1wbGVCdWZm
ZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUu
Z2V0KCksIHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIpCisgICAgaWYgKFBB
TDo6Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9F
cnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUFmdGVyID0gYWRvcHRDRihyYXdTYW1wbGVBZnRlcik7
CiAKQEAgLTMwNSwxMyArMzA3LDEzIEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1wbGU+LCBS
ZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZShjCiBSZWY8TWVk
aWFTYW1wbGU+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkoKSBj
b25zdAogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlciA9IDA7Ci0gICAg
Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdl
dCgpLCAmbmV3U2FtcGxlQnVmZmVyKTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29w
eShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7
CiAgICAgQVNTRVJUKG5ld1NhbXBsZUJ1ZmZlcik7CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2Ft
cGxlQnVmZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShuZXdTYW1wbGVCdWZmZXIs
IHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3VudChhdHRh
Y2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0
YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJh
eUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgIENGRGljdGlv
bmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlz
cGxheSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRh
Y2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwga0NGQm9v
bGVhblRydWUpOwogICAgIH0KIAogICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0
ZShhZG9wdENGKG5ld1NhbXBsZUJ1ZmZlcikuZ2V0KCksIG1faWQpOwpAQCAtMzI2LDcgKzMyOCw3
IEBAIFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9iakM6Omdl
dFJHQkFJbWFnZURhdGEoKSBjb25zdAogICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGNvbmZvcm1l
ck9wdGlvbnMuZ2V0KCksIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBpbWFnZUZv
cm1hdE51bWJlci5nZXQoKSk7CiAgICAgUGl4ZWxCdWZmZXJDb25mb3JtZXJDViBwaXhlbEJ1ZmZl
ckNvbmZvcm1lcihjb25mb3JtZXJPcHRpb25zLmdldCgpKTsKIAotICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19j
YXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlciht
X3NhbXBsZS5nZXQoKSkpOwogICAgIGF1dG8gcmdiYVBpeGVsQnVmZmVyID0gcGl4ZWxCdWZmZXJD
b25mb3JtZXIuY29udmVydChwaXhlbEJ1ZmZlcik7CiAgICAgYXV0byBzdGF0dXMgPSBDVlBpeGVs
QnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHJnYmFQaXhlbEJ1ZmZlci5nZXQoKSwga0NWUGl4ZWxCdWZm
ZXJMb2NrX1JlYWRPbmx5KTsKICAgICBBU1NFUlQoc3RhdHVzID09IG5vRXJyKTsKQEAgLTM0Mywx
MCArMzQ1LDEwIEBAIFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFW
Rk9iakM6OmdldFJHQkFJbWFnZURhdGEoKSBjb25zdAogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0
U2FtcGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
QnVmZmVyKQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENG
QXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVB
dHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkg
PSAwOyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsKICAgICAg
ICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxD
Rk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRz
QXJyYXksIGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtD
TVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7
CisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBs
ZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAg
fQogfQogCkBAIC0zNTcsNyArMzU5LDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldEFz
RGlzcGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAKIGJvb2wgTWVkaWFTYW1w
bGVBVkZPYmpDOjppc0hvbW9nZW5lb3VzKCkgY29uc3QKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFj
aG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9z
YW1wbGUuZ2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgp
LCB0cnVlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCkBAIC0zODUsNyArMzg3LDcgQEAgVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PiBN
ZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMKIHsKICAgICB1
c2luZyBTYW1wbGVWZWN0b3IgPSBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+OwogCi0g
ICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVB
dHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQog
ICAgICAgICByZXR1cm4gU2FtcGxlVmVjdG9yOjpmcm9tKG1ha2VSZWYoKnRoaXMpKTsKIApAQCAt
NDE4LDcgKzQyMCw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1w
bGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiAgICAgc2FtcGxlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KHJhbmdlcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgcmFuZ2Ug
OiByYW5nZXMpIHsKICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlID0gbnVsbHB0
cjsKLSAgICAgICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1NhbXBsZSkgIT0g
bm9FcnIgfHwgIXJhd1NhbXBsZSkKKyAgICAgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5
U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCks
IHJhbmdlLCAmcmF3U2FtcGxlKSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQogICAgICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICAgICAgc2FtcGxlcy51bmNoZWNrZWRBcHBlbmQoTWVkaWFTYW1wbGVB
VkZPYmpDOjpjcmVhdGUoYWRvcHRDRihyYXdTYW1wbGUpLmdldCgpLCBtX2lkKSk7CiAgICAgfQpA
QCAtNDMyLDI0ICs0MzQsMjQgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBNZWRpYVNh
bXBsZUFWRk9iakM6OmNsb25lU2FtcGxlQnVmZmVyQW5kU2V0QXNEaXNwbGEKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24gPSBudWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZm
ZXIsICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gcmV0YWluZWRGb3JtYXREZXNjcmlwdGlvbiA9
IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50
ID0gMDsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShzYW1wbGUsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpOworICAgIHN0YXR1cyA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAm
aXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1p
bmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJy
YXkuZGF0YSgpLCBudWxscHRyKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXku
ZGF0YSgpLCBudWxscHRyKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlcjsKLSAgICBzdGF0dXMg
PSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRh
dGEoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVm
ZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBs
ZUJ1ZmZlcik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KaW5kZXggMGI5YmI2NDg1ZjNlOWUyNTM0NWFhZDRmNGU0NzA5MmM0MjlhNWNjOC4uMDIxOTIx
NmQ3YzJkODhlZjU3NzUyNmQ4ODIzMGMzZTUwM2ZkOGNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTI1OCw3ICsy
NTgsNiBAQCAtICh2b2lkKWF1ZGlvUmVuZGVyZXJXYXNBdXRvbWF0aWNhbGx5Rmx1c2hlZDooTlNO
b3RpZmljYXRpb24qKW5vdGUKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQwpAQCAtMjc3LDcgKzI3Niw3IEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0TWFw
SUQoKQogCiBzdGF0aWMgdm9pZCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKENNTm90aWZpY2F0
aW9uQ2VudGVyUmVmLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0
aW9uTmFtZSwgY29uc3Qgdm9pZCosIENGVHlwZVJlZikKIHsKLSAgICBpZiAoIUNGRXF1YWwoa0NN
U2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG5vdGlmaWNh
dGlvbk5hbWUpKQorICAgIGlmICghQ0ZFcXVhbChQQUw6OmtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVy
Tm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewpAQCAtMzE2LDcgKzMxNSw3IEBA
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhN
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsK
IAogICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGlu
c3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVyb2xsRGVjb2RlV2l0aENvbXBs
ZXRpb25IYW5kbGVyOildKQotICAgICAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVy
KENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KG1fbWFwSUQpLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1w
bGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7
CisgICAgICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihQQUw6OkNNTm90
aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KG1fbWFwSUQpLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBQQUw6OmtDTVNhbXBs
ZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyLCAwKTsK
IAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIG1fcGFyc2VyLT5zZXRMb2dnZXIobV9s
b2dnZXIuZ2V0KCksIG1fbG9nSWRlbnRpZmllcik7CkBAIC0zNTQsNyArMzUzLDcgQEAgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6On5Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQygpCiAgICAg
Y2xlYXJUcmFja3MoKTsKIAogICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVyb2xs
RGVjb2RlV2l0aENvbXBsZXRpb25IYW5kbGVyOildKQotICAgICAgICBDTU5vdGlmaWNhdGlvbkNl
bnRlclJlbW92ZUxpc3RlbmVyKENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2Vu
dGVyKCksIHRoaXMsIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIGtDTVNhbXBsZUJ1ZmZlckNv
bnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyKTsKKyAgICAgICAgUEFM
OjpDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKFBBTDo6Q01Ob3RpZmljYXRpb25D
ZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3VtZWRDYWxs
YmFjaywgUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25z
dW1lZCwgbnVsbHB0cik7CiAKICAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKQogICAgICAg
ICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25hbCgpOwpAQCAtOTkzLDcgKzk5Miw3IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyCiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OnJlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyICpyZW5kZXJlciwgY29uc3QgQ01UaW1lJiB0aW1lKQogewotICAgIGF1dG8gbWVkaWFUaW1l
ID0gdG9NZWRpYVRpbWUodGltZSk7CisgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFU
aW1lKHRpbWUpOwogICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYVRpbWUpOwogICAg
IEF0b21TdHJpbmcgdHJhY2tJZDsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2F1ZGlvUmVuZGVy
ZXJzKSB7CkBAIC0xMTAxLDEzICsxMTAwLDEzIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKICAg
ICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKICAgICBERUJVR19MT0co
bG9nU2l0ZUlkZW50aWZpZXIsICJ0cmFjayBJRCA9ICIsIHRyYWNrSUQsICIsIHNhbXBsZSA9ICIs
IHNhbXBsZS5nZXQoKSk7CiAKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2Ny
aXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBs
ZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9y
bWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24o
cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBBU1NFUlQoZm9ybWF0
RGVzY3JpcHRpb24pOwogICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAgRVJS
T1JfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiUmVjZWl2ZWQgc2FtcGxlIHdpdGggYSBudWxsIGZv
cm1hdERlc2NyaXB0aW9uLiBCYWlsaW5nLiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IGF1dG8gbWVkaWFUeXBlID0gQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShmb3JtYXRE
ZXNjcmlwdGlvbik7CisgICAgYXV0byBtZWRpYVR5cGUgPSBQQUw6OkNNRm9ybWF0RGVzY3JpcHRp
b25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgaWYgKHRyYWNrSUQgPT0g
bV9lbmFibGVkVmlkZW9UcmFja0lEKSB7CiAgICAgICAgIC8vIEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyIHdpbGwgdGhyb3cgYW4gdW4tZG9jdW1lbnRlZCBleGNlcHRpb24gaWYgcGFzc2VkIGEg
c2FtcGxlCkBAIC0xMTIwLDcgKzExMTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAgICAg
ICAgIH0KIAogICAgICAgICBhdXRvIHBsYXllciA9IHRoaXMtPnBsYXllcigpOwotICAgICAgICBG
bG9hdFNpemUgZm9ybWF0U2l6ZSA9IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7
CisgICAgICAgIEZsb2F0U2l6ZSBmb3JtYXRTaXplID0gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlv
biwgdHJ1ZSwgdHJ1ZSkpOwogICAgICAgICBpZiAoIW1fY2FjaGVkU2l6ZSB8fCBmb3JtYXRTaXpl
ICE9IG1fY2FjaGVkU2l6ZS52YWx1ZSgpKSB7CiAgICAgICAgICAgICBERUJVR19MT0cobG9nU2l0
ZUlkZW50aWZpZXIsICJzaXplIGNoYW5nZWQgdG8gIiwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAg
ICBib29sIHNpemVXYXNOdWxsID0gIW1fY2FjaGVkU2l6ZTsKQEAgLTExNDYsOSArMTE0NSw5IEBA
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlh
U2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKIAogICAgICAgICAgICAgaWYgKCFoYXZlUHJlcm9sbERl
Y29kZVdpdGhDb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgICAgIENNU2FtcGxlQnVm
ZmVyUmVmIHJhd1NhbXBsZUNvcHk7Ci0gICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJDcmVh
dGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBs
ZUJ1ZmZlciwgJnJhd1NhbXBsZUNvcHkpOworICAgICAgICAgICAgICAgIFBBTDo6Q01TYW1wbGVC
dWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxlLnNhbXBs
ZS5jbVNhbXBsZUJ1ZmZlciwgJnJhd1NhbXBsZUNvcHkpOwogICAgICAgICAgICAgICAgIGF1dG8g
c2FtcGxlQ29weSA9IGFkb3B0Q0YocmF3U2FtcGxlQ29weSk7Ci0gICAgICAgICAgICAgICAgQ01T
ZXRBdHRhY2htZW50KHNhbXBsZUNvcHkuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRL
ZXlfUG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJl
ZilAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bv
c3ROb3RpZmljYXRpb25XaGVuQ29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRNb2RlX1No
b3VsZE5vdFByb3BhZ2F0ZSk7CisgICAgICAgICAgICAgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQo
c2FtcGxlQ29weS5nZXQoKSwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3RO
b3RpZmljYXRpb25XaGVuQ29uc3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9f
YnJpZGdlIE5TU3RyaW5nICopUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3RO
b3RpZmljYXRpb25XaGVuQ29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3Vs
ZE5vdFByb3BhZ2F0ZSk7CiAgICAgICAgICAgICAgICAgW21fZGlzcGxheUxheWVyIGVucXVldWVT
YW1wbGVCdWZmZXI6c2FtcGxlQ29weS5nZXQoKV07CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICAgICAgICAgICAgICBwbGF5ZXItPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUodHJ1ZSk7
CkBAIC0xMjk4LDE0ICsxMjk3LDE0IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21TCiBib29sIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRp
b25UaW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPHVpbnQ2NF90Pih0cmFja0lEU3Ry
aW5nKS52YWx1ZV9vcigwKSA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQKLSAgICAgICAgJiYgW2dl
dEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0
aW9uVGltZTopXTsKKyAgICAgICAgJiYgW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBlY3RNaW5p
bXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOildOwogfQogCiB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25U
aW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcsIGNvbnN0IE1lZGlhVGltZSYgcHJl
c2VudGF0aW9uVGltZSkKIHsKICAgICBBU1NFUlQoY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2Vu
dGF0aW9uVGltZSh0cmFja0lEU3RyaW5nKSk7CiAgICAgaWYgKGNhblNldE1pbmltdW1VcGNvbWlu
Z1ByZXNlbnRhdGlvblRpbWUodHJhY2tJRFN0cmluZykpCi0gICAgICAgIFttX2Rpc3BsYXlMYXll
ciBleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOnRvQ01U
aW1lKHByZXNlbnRhdGlvblRpbWUpXTsKKyAgICAgICAgW21fZGlzcGxheUxheWVyIGV4cGVjdE1p
bmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6UEFMOjp0b0NNVGltZShw
cmVzZW50YXRpb25UaW1lKV07CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmNsZWFyTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiB0
cmFja0lEU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCBlNmRm
Y2IzNDk2ZjkyZDJhYTIxZjg3Njg0NjQ4MDhiMTYxZDU3NzZiLi5iNWQ4ZjUzNmEyMDc4Zjk0ZTQ0
ZGFjNzE4MzU3MTM1ODhkZjQzMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNw
cApAQCAtMjU4LDggKzI1OCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlN0YXRlPiB7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0No
YW5uZWwoKSB7IHJldHVybiBMb2dNZWRpYTsgfQogc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNz
TmFtZSgpIHsgcmV0dXJuICJTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIjsgfQogCkBAIC0xMDU3LDcg
KzEwNTUsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFtZShj
b25zdCBGcmFtZU1ldGFkYXRhJiBtZXRhZGF0YSwgUmVhZAogICAgICAgICByZXR1cm4gU2tpcChy
ZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKICAgICB9CiAKLSAgICByZXR1cm4gdHJhY2tEYXRhLT5j
b25zdW1lRnJhbWVEYXRhKCpyZWFkZXIsIG1ldGFkYXRhLCBieXRlc1JlbWFpbmluZywgQ01UaW1l
TWFrZShibG9jay0+dGltZWNvZGUgKyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUpLCBi
bG9jay0+bnVtX2ZyYW1lcyk7CisgICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZyYW1lRGF0
YSgqcmVhZGVyLCBtZXRhZGF0YSwgYnl0ZXNSZW1haW5pbmcsIFBBTDo6Q01UaW1lTWFrZShibG9j
ay0+dGltZWNvZGUgKyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUpLCBibG9jay0+bnVt
X2ZyYW1lcyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6cHJvdmlkZU1lZGlh
RGF0YShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlciwgdWludDY0X3Qg
dHJhY2tJRCwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGJ5dGVSYW5nZU9mZnNldCkKQEAgLTEwODEs
NyArMTA3OSw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1Ry
YWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgQ01CbG9ja0J1ZmZlclJl
ZiByYXdCbG9ja0J1ZmZlciA9IG51bGxwdHI7CiAKICAgICBpZiAoIW1fY3VycmVudEJsb2NrQnVm
ZmVyKSB7Ci0gICAgICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlC
bG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXplLCBrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3QmxvY2tCdWZm
ZXIpOworICAgICAgICBhdXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1v
cnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXplLCBrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3QmxvY2tC
dWZmZXIpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9S
X0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZhaWxlZCB3
aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVz
UmVtYWluaW5nKTsKQEAgLTEwOTAsNyArMTA4OCw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZm
ZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFk
CiAgICAgICAgIG1fY3VycmVudEJsb2NrQnVmZmVyID0gYWRvcHRDRihyYXdCbG9ja0J1ZmZlcik7
CiAgICAgICAgIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24gPSAwOwogCi0gICAgICAgIGVy
ciA9IENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRCbG9ja0J1ZmZlci5n
ZXQoKSk7CisgICAgICAgIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5
KG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAg
ICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb1NhbXBsZUJ1ZmZlckNy
ZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAg
ICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTEwMSw3
ICsxMDk5LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJh
Y2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICB3aGlsZSAoYnl0ZXNUb1Jl
YWQpIHsKICAgICAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9IDA7CiAgICAgICAg
IHVpbnQ4X3QqIGJsb2NrQnVmZmVyRGF0YSA9IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gZXJyID0g
Q01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCBt
X2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxs
cHRyLCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOworICAgICAgICBhdXRvIGVyciA9IFBBTDo6
Q01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCBt
X2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxs
cHRyLCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0RGF0
YVBvaW50ZXIgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICAgICAgcmV0dXJuIFNr
aXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTEzNSw3ICsxMTMzLDcgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVy
KGNvbnN0IENNVGltZSYgcHIKICNpZiBFTkFCTEUoVlA5KQogICAgIHVpbnQ4X3QqIGJsb2NrQnVm
ZmVyRGF0YSA9IG51bGxwdHI7CiAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9IDA7
Ci0gICAgYXV0byBlcnIgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJyZW50Qmxv
Y2tCdWZmZXIuZ2V0KCksIDAsICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFy
KiopJmJsb2NrQnVmZmVyRGF0YSk7CisgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJH
ZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgMCwgJnNlZ21lbnRTaXpl
QXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKICAgICBpZiAo
ZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZm
ZXJHZXREYXRhUG9pbnRlciBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgIHJldHVy
bjsKQEAgLTExNzksOSArMTE3Nyw5IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6Vmlk
ZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAgICAgICAg
IGR1cmF0aW9uID0gdHJhY2suZGVmYXVsdF9kdXJhdGlvbi52YWx1ZSgpICogcHJlc2VudGF0aW9u
VGltZS50aW1lc2NhbGUgLyAxMDAwMDAwMDAwOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3
U2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBzaXplX3QgZnJhbWVTaXplID0gQ01CbG9ja0J1
ZmZlckdldERhdGFMZW5ndGgobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOwotICAgIENNU2Ft
cGxlVGltaW5nSW5mbyB0aW1pbmcgPSB7IENNVGltZU1ha2UoZHVyYXRpb24sIHByZXNlbnRhdGlv
blRpbWUudGltZXNjYWxlKSwgcHJlc2VudGF0aW9uVGltZSwgcHJlc2VudGF0aW9uVGltZSB9Owot
ICAgIGVyciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
bV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0
KCksIHNhbXBsZUNvdW50LCAxLCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2FtcGxlQnVm
ZmVyKTsKKyAgICBzaXplX3QgZnJhbWVTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxl
bmd0aChtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSk7CisgICAgQ01TYW1wbGVUaW1pbmdJbmZv
IHRpbWluZyA9IHsgUEFMOjpDTVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRp
bWVzY2FsZSksIHByZXNlbnRhdGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKKyAgICBlcnIg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9j
dXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCks
IHNhbXBsZUNvdW50LCAxLCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2FtcGxlQnVmZmVy
KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUo
IkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAg
ICAgICByZXR1cm47CkBAIC0xMTkxLDcgKzExODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBw
cgogICAgIG1fY3VycmVudEJsb2NrQnVmZmVyID0gbnVsbHB0cjsKICAgICBtX2N1cnJlbnRCbG9j
a0J1ZmZlclBvc2l0aW9uID0gMDsKIAotICAgIGF1dG8gYXR0YWNobWVudHNBcnJheSA9IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRy
dWUpOworICAgIGF1dG8gYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CiAgICAgQVNT
RVJUKGF0dGFjaG1lbnRzQXJyYXkpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkgewogICAg
ICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkgcmV0dXJuZWQgTlVMTCIpOwpAQCAtMTIwMSw3ICsxMTk5LDcgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxl
QnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICBpZiAoIWlzS2V5KSB7CiAgICAgICAgIGZvciAo
Q0ZJbmRleCBpID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7
IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0
dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJy
YXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICAgICAgQ0ZE
aWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90
U3luYywga0NGQm9vbGVhblRydWUpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUo
YXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBrQ0ZCb29s
ZWFuVHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEyODIsMTIgKzEyODAsMTIgQEAgd2Vi
bTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1l
RnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5
dGVzUmVtYWluaW5nKTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gc3RyZWFtRGVzY3JpcHRp
b24gPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZv
cm1hdERlc2NyaXB0aW9uLmdldCgpKTsKKyAgICAgICAgYXV0byBzdHJlYW1EZXNjcmlwdGlvbiA9
IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihm
b3JtYXREZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgICAgIGlmICghc3RyZWFtRGVzY3JpcHRpb24p
IHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24gZmFpbGVkIik7CiAgICAgICAg
ICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CiAgICAgICAgIH0KLSAg
ICAgICAgbV9wYWNrZXREdXJhdGlvbiA9IENNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRpb24tPm1G
cmFtZXNQZXJQYWNrZXQsIHN0cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7CisgICAgICAg
IG1fcGFja2V0RHVyYXRpb24gPSBQQUw6OkNNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRpb24tPm1G
cmFtZXNQZXJQYWNrZXQsIHN0cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7CiAKICAgICAg
ICAgc2V0Rm9ybWF0RGVzY3JpcHRpb24oV1RGTW92ZShmb3JtYXREZXNjcmlwdGlvbikpOwogICAg
IH0gZWxzZSBpZiAoY29kZWMoKSA9PSBDb2RlY1R5cGU6Ok9wdXMpIHsKQEAgLTEzMDksNyArMTMw
Nyw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0
YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgbV9jdXJyZW50UGFja2V0Qnl0ZU9m
ZnNldCA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2N1cnJlbnRQYWNrZXRTaXplID0gc3RkOjpudWxs
b3B0OwogCi0gICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9IENNVGltZUdldFNlY29uZHMoQ01UaW1l
U3VidHJhY3QocHJlc2VudGF0aW9uVGltZSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lKSkgKyBD
TVRpbWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7CisgICAgYXV0
byBzYW1wbGVEdXJhdGlvbiA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhQQUw6OkNNVGltZVN1YnRy
YWN0KHByZXNlbnRhdGlvblRpbWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgUEFMOjpD
TVRpbWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7CiAgICAgaWYg
KHNhbXBsZUR1cmF0aW9uID49IG1fbWluaW11bVNhbXBsZUR1cmF0aW9uKQogICAgICAgICBjcmVh
dGVTYW1wbGVCdWZmZXIobWV0YWRhdGEucG9zaXRpb24pOwogCkBAIC0xMzI0LDIxICsxMzIyLDIx
IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNyZWF0ZVNh
bXBsZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPHNpCiAgICAgQVNTRVJUKCFtX3BhY2tldERhdGEuaXNF
bXB0eSgpKTsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXIgPSBudWxscHRyOwot
ICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSwga0NGQWxs
b2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgMCwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtD
TUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKTsKKyAgICBhdXRv
IGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBudWxscHRyLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSwga0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbnVsbHB0ciwgMCwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDTUJs
b2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKTsKICAgICBpZiAoZXJy
KSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJD
cmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihibG9ja0J1ZmZlcik7CiAKLSAg
ICBlcnIgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhtX3BhY2tldERhdGEuZGF0YSgp
LCBidWZmZXIuZ2V0KCksIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpKTsKKyAgICBlcnIg
PSBQQUw6OkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzKG1fcGFja2V0RGF0YS5kYXRhKCks
IGJ1ZmZlci5nZXQoKSwgMCwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCkpOwogICAgIGlmIChl
cnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZl
clJlcGxhY2VEYXRhQnl0ZXMgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQnVmZmVyID0gbnVsbHB0
cjsKLSAgICBlcnIgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVz
Y3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3Jp
cHRpb24oKS5nZXQoKSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuc2l6ZSgpLCBtX3NhbXBsZVByZXNl
bnRhdGlvblRpbWUsIG1fcGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnJhd1NhbXBsZUJ1ZmZl
cik7CisgICAgZXJyID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFj
a2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgZm9ybWF0
RGVzY3JpcHRpb24oKS5nZXQoKSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuc2l6ZSgpLCBtX3NhbXBs
ZVByZXNlbnRhdGlvblRpbWUsIG1fcGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnJhd1NhbXBs
ZUJ1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BP
U1NJQkxFKCJDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyBm
YWlsZWQgd2l0aCAlZCIsIGVycik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2Eu
bW0KaW5kZXggZTlmODZkZWE0MzhlODk1ZTYzZGJkZTA3YzRkOTVmOWI1YWVmMThjYy4uYWE3MzZj
ZjE0OWE0NzRiYTI2M2NhYWNkNjY0MmRlNzhmNzc4ODc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2Eu
bW0KQEAgLTQ3LDcgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIHdlYm07CiAKIFZQOVRlc3RpbmdPdmVycmlkZXMm
IFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpCkBAIC0zNjIsMTEgKzM2MSwxMSBAQCBz
dGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRvQ01Db2xvclByaW1hcmllcyh1aW50OF90IHByaW1h
cmllcykKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVzOjpTTVBURV9TVF8y
NDA6CiAgICAgICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZlckNvbG9yUHJpbWFyaWVzX1NNUFRFX0M7
CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfUlBfNDMxXzI6
Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9Q
MzsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmll
c19EQ0lfUDM7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVf
RUdfNDMyXzE6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX1AzX0Q2NTsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xv
clByaW1hcmllc19QM19ENjU7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmll
czo6QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBrQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQ
QUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMDsKICAgICB9
CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQyMCwxOCArNDE5LDE4IEBAIHN0YXRpYyBDRlN0
cmluZ1JlZiBjb252ZXJ0VG9DTVRyYW5zZmVyRnVuY3Rpb24odWludDhfdCBjaGFyYWN0ZXJpc3Rp
Y3MpCiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6U01Q
VEVfU1RfMjQwOgogICAgICAgICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJUcmFuc2ZlckZ1bmN0aW9u
X1NNUFRFXzI0ME1fMTk5NTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFj
dGVyaXN0aWNzOjpTTVBURV9TVF8yMDg0OgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFE7CisgICAgICAgIHJldHVybiBQ
QUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BR
OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIw
MjBfMTBiaXQ6CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGlj
czo6QlRfMjAyMF8xMmJpdDoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29uZmln
dXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpTTVBURV9TVF80MjhfMToKLSAgICAgICAg
cmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80Mjhf
MTsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX1NNUFRFX1NUXzQyOF8xOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFy
YWN0ZXJpc3RpY3M6OkJUXzIxMDBfSExHOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHOworICAgICAgICByZXR1cm4gUEFM
OjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEc7CiAg
ICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6SUVDXzYxOTY2
XzJfMToKLSAgICAgICAgcmV0dXJuIGNhbkxvYWRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgPyBQQUw6OmdldF9Db3JlTWVkaWFfa0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA6IG51bGxwdHI7CisgICAgICAgIHJl
dHVybiBQQUw6OmNhbkxvYWRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9zUkdCKCkgPyBQQUw6OmdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA6IG51bGxwdHI7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRp
b25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6TGluZWFyOgotICAgICAgICByZXR1cm4ga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcjsKKyAgICAgICAgcmV0dXJuIFBB
TDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcjsKICAgICB9CiAK
ICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQ2Nyw3ICs0NjYsNyBAQCBzdGF0aWMgQ0ZTdHJpbmdS
ZWYgY29udmVydFRvQ01ZQ2JDUk1hdHJpeCh1aW50OF90IGNvZWZmaWNpZW50cykKIHsKICAgICBz
d2l0Y2ggKGNvZWZmaWNpZW50cykgewogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uTWF0cml4Q29l
ZmZpY2llbnRzOjpCVF8yMDIwX05vbmNvbnN0YW50X0x1bWluYW5jZToKLSAgICAgICAgcmV0dXJu
IGtDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0
dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwOwogICAg
IGNhc2UgVlBDb25maWd1cmF0aW9uTWF0cml4Q29lZmZpY2llbnRzOjpCVF80NzBfN19CRzoKICAg
ICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNjAxXzc6CiAgICAg
ICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZlcllDYkNyTWF0cml4X0lUVV9SXzYwMV80OwpAQCAtNTQz
LDExICs1NDIsMTEgQEAgc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBj
cmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVjQ29uZmkKICAgICBDRlR5cGVSZWYgY29u
ZmlndXJhdGlvblZhbHVlc1tdID0geyBkYXRhLmdldCgpIH07CiAgICAgYXV0byBjb25maWd1cmF0
aW9uRGljdCA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGNvbmZpZ3VyYXRpb25LZXlzLCBjb25maWd1cmF0aW9uVmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RI
KGNvbmZpZ3VyYXRpb25LZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NG
VHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogCi0gICAgVmVjdG9yPENGVHlwZVJlZj4g
ZXh0ZW5zaW9uc0tleXMgeyBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNj
cmlwdGlvbkV4dGVuc2lvbkF0b21zIH07CisgICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9u
c0tleXMgeyBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0
aW9uRXh0ZW5zaW9uQXRvbXMgfTsKICAgICBWZWN0b3I8Q0ZUeXBlUmVmPiBleHRlbnNpb25zVmFs
dWVzID0geyBjb25maWd1cmF0aW9uRGljdC5nZXQoKSB9OwogCiAgICAgaWYgKHJlY29yZC52aWRl
b0Z1bGxSYW5nZUZsYWcgPT0gVlBDb25maWd1cmF0aW9uUmFuZ2U6OkZ1bGxSYW5nZSkgewotICAg
ICAgICBleHRlbnNpb25zS2V5cy5hcHBlbmQoa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
RnVsbFJhbmdlVmlkZW8pOworICAgICAgICBleHRlbnNpb25zS2V5cy5hcHBlbmQoUEFMOjprQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbyk7CiAgICAgICAgIGV4dGVu
c2lvbnNWYWx1ZXMuYXBwZW5kKGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQppbmRleCBjZWExNTZhZTJmYmUyNWFkYTAwNzY2
OGU5MWQ1MGU1NjFjNjQyZTRlLi43YjUzOGIxZTk4ZWY4OTk1NWVlZThmNzk4NGE1MzcwMGUxOTM3
Yjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCkBAIC00Myw5
ICs0MywxMSBAQAogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgIlZpZGVv
VG9vbGJveFNvZnRMaW5rLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KLVdURl9ERUNMQVJF
X0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOworLy8gV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9U
UkFJVChDTVNhbXBsZUJ1ZmZlcik7Cit0ZW1wbGF0ZSA8Pgorc3RydWN0IFdURjo6Q0ZUeXBlVHJh
aXQ8Q01TYW1wbGVCdWZmZXJSZWY+IHsKKyAgICBzdGF0aWMgaW5saW5lIENGVHlwZUlEIHR5cGVJ
RCh2b2lkKSB7IHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VHlwZUlEKCk7IH0KK307CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzIsNyArNzQsNyBAQCB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6c2V0VGltZWJhc2UoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENNVGltZWJhc2VS
ZW1vdmVUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2Uu
Z2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VSZW1vdmVUaW1lckRpc3BhdGNoU291cmNl
KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgbV90aW1lYmFz
ZSA9IHRpbWViYXNlOwogCkBAIC04NCw3ICs4Niw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjpzZXRUaW1lYmFzZShDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICBkaXNwYXRjaF9hY3RpdmF0ZShtX3RpbWVyU291cmNlLmdldCgp
KTsKICAgICAgICAgfQotICAgICAgICBDTVRpbWViYXNlQWRkVGltZXJEaXNwYXRjaFNvdXJjZSht
X3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgUEFMOjpDTVRp
bWViYXNlQWRkVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291
cmNlLmdldCgpKTsKICAgICB9CiB9CiAKQEAgLTEwNCwxMiArMTA2LDEyIEBAIHZvaWQgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjptYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgp
CiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZShDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGJvb2wgZGlzcGxheWluZykKIHsKICAgICBDTUl0ZW1D
b3VudCBpdGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIDAsIG51bGxwdHIsICZpdGVtQ291bnQp
KQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsK
ICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIGlmIChub0VyciAhPSBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIGl0ZW1D
b3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAgaWYgKG5vRXJyICE9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVy
LCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBDTUJ1ZmZlckNhbGxiYWNrcyBjb250YWlucyA2NC1iaXQgcG9pbnRl
cnMgdGhhdCBhcmVuJ3QgOC1ieXRlIGFsaWduZWQuIFRvIHN1cHByZXNzIHRoZSBsaW5rZXIKQEAg
LTEzNCw3ICsxMzYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1
ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsCiAgICAgICAgIHN0YXRpY19h
c3NlcnQoc2l6ZW9mKGNhbGxiYWNrcy5jYWxsYmFja3MudmVyc2lvbikgPT0gc2l6ZW9mKHVpbnQz
Ml90KSwgIlZlcnNpb24gZmllbGQgbXVzdCBiZSA0IGJ5dGVzIik7CiAgICAgICAgIHN0YXRpY19h
c3NlcnQoYWxpZ25vZihCdWZmZXJDYWxsYmFja3MpID09IDQsICJDTUJ1ZmZlckNhbGxiYWNrcyBz
dHJ1Y3QgbXVzdCBoYXZlIDQgYnl0ZSBhbGlnbm1lbnQiKTsKIAotICAgICAgICBDTUJ1ZmZlclF1
ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZjYWxsYmFj
a3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOworICAgICAgICBQQUw6OkNNQnVmZmVyUXVldWVDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxs
YmFja3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fcHJvZHVjZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0
UXVldWUpOwogICAgIH0KIApAQCAtMTU2LDcgKzE1OCw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
ciwKICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoY2FsbGJhY2tzLmNhbGxiYWNrcy52ZXJz
aW9uKSA9PSBzaXplb2YodWludDMyX3QpLCAiVmVyc2lvbiBmaWVsZCBtdXN0IGJlIDQgYnl0ZXMi
KTsKICAgICAgICAgc3RhdGljX2Fzc2VydChhbGlnbm9mKEJ1ZmZlckNhbGxiYWNrcykgPT0gNCwg
IkNNQnVmZmVyQ2FsbGJhY2tzIHN0cnVjdCBhbGlnbm1lbnQgbXVzdCBiZSA0Iik7CiAKLSAgICAg
ICAgQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFj
aXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKKyAgICAgICAgUEFMOjpDTUJ1
ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZj
YWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOwogICAgICAgICBtX2NvbnN1bWVyUXVldWUg
PSBhZG9wdENGKG91dFF1ZXVlKTsKICAgICB9CiAKQEAgLTE3NywyMCArMTc5LDIwIEBAIGJvb2wg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUoQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlLCBiCiAgICAgaWYgKCFtX3RpbWViYXNlKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIGF1dG8gY3VycmVudFRpbWUgPSBDTVRpbWViYXNlR2V0VGltZShtX3RpbWVi
YXNlLmdldCgpKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IENNU2FtcGxlQnVm
ZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7Ci0gICAgYXV0byBkdXJhdGlvbiA9
IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKLSAgICBhdXRvIHByZXNlbnRhdGlv
bkVuZFRpbWUgPSBDTVRpbWVBZGQocHJlc2VudGF0aW9uU3RhcnRUaW1lLCBkdXJhdGlvbik7Ci0g
ICAgaWYgKENNVGltZUNvbXBhcmUocHJlc2VudGF0aW9uRW5kVGltZSwgY3VycmVudFRpbWUpID49
IDApCisgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1l
YmFzZS5nZXQoKSk7CisgICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7CisgICAgYXV0byBkdXJh
dGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOworICAgIGF1dG8g
cHJlc2VudGF0aW9uRW5kVGltZSA9IFBBTDo6Q01UaW1lQWRkKHByZXNlbnRhdGlvblN0YXJ0VGlt
ZSwgZHVyYXRpb24pOworICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUocHJlc2VudGF0aW9uRW5k
VGltZSwgY3VycmVudFRpbWUpID49IDApCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgQ0ZB
cnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiAg
ICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBmb3IgKENG
SW5kZXggaW5kZXggPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50cyk7IGlu
ZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIGF0dGFjaG1l
bnREaWN0ID0gKENGRGljdGlvbmFyeVJlZilDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1l
bnRzLCBpbmRleCk7Ci0gICAgICAgIENGQm9vbGVhblJlZiBkZXBlbmRlZE9uID0gKENGQm9vbGVh
blJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShhdHRhY2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNo
bWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycyk7CisgICAgICAgIENGQm9vbGVhblJlZiBkZXBl
bmRlZE9uID0gKENGQm9vbGVhblJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShhdHRhY2htZW50RGlj
dCwgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzKTsKICAg
ICAgICAgaWYgKGRlcGVuZGVkT24gJiYgIUNGQm9vbGVhbkdldFZhbHVlKGRlcGVuZGVkT24pKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIwMywxNCArMjA1LDE0IEBAIHZv
aWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNvbXByZXNzaW9uU2Vzc2lv
bkZvclNhbXBsZShDTVNhbXBsZUJ1CiAgICAgaWYgKGlzSW52YWxpZGF0ZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVz
Y3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZSk7Cisg
ICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKICAgICBpZiAo
bV9kZWNvbXByZXNzaW9uU2Vzc2lvbiAmJiAhVlREZWNvbXByZXNzaW9uU2Vzc2lvbkNhbkFjY2Vw
dEZvcm1hdERlc2NyaXB0aW9uKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCksIHZpZGVvRm9y
bWF0RGVzY3JpcHRpb24pKSB7CiAgICAgICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9y
QXN5bmNocm9ub3VzRnJhbWVzKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCkpOwogICAgICAg
ICBtX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAoIW1f
ZGVjb21wcmVzc2lvblNlc3Npb24pIHsKLSAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2Ny
aXB0aW9uKHNhbXBsZSk7CisgICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRl
b0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0
aW9uKHNhbXBsZSk7CiAgICAgICAgIGF1dG8gdmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbiA9IEB7
IChfX2JyaWRnZSBOU1N0cmluZyAqKWtWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxl
SGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlcjogQCggbV9oYXJkd2FyZURlY29kZXJFbmFi
bGVkICkgfTsKIAogICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXM7CkBAIC0yNTYsNyAr
MjU4LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmRlY29kZVNhbXBsZShD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGJvb2wgZGkKIAogICAgIE1vbm90b25pY1RpbWUgc3Rh
cnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lv
bkRlY29kZUZyYW1lV2l0aE91dHB1dEhhbmRsZXIobV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQo
KSwgc2FtcGxlLCBmbGFncywgbnVsbHB0ciwgW3RoaXMsIGRpc3BsYXlpbmcsIHN0YXJ0VGltZV0o
T1NTdGF0dXMgc3RhdHVzLCBWVERlY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsIENWSW1hZ2VCdWZm
ZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSBw
cmVzZW50YXRpb25EdXJhdGlvbikgewotICAgICAgICBkb3VibGUgZGVsdGFSYXRpbyA9IChNb25v
dG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkuc2Vjb25kcygpIC8gQ01UaW1lR2V0U2Vjb25k
cyhwcmVzZW50YXRpb25EdXJhdGlvbik7CisgICAgICAgIGRvdWJsZSBkZWx0YVJhdGlvID0gKE1v
bm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5zZWNvbmRzKCkgLyBQQUw6OkNNVGltZUdl
dFNlY29uZHMocHJlc2VudGF0aW9uRHVyYXRpb24pOwogCiAgICAgICAgIHVwZGF0ZVFvc1dpdGhE
ZWNvZGVUaW1lU3RhdGlzdGljcyhkZWx0YVJhdGlvKTsKICAgICAgICAgaGFuZGxlRGVjb21wcmVz
c2lvbk91dHB1dChkaXNwbGF5aW5nLCBzdGF0dXMsIGluZm9GbGFncywgaW1hZ2VCdWZmZXIsIHBy
ZXNlbnRhdGlvblRpbWVTdGFtcCwgcHJlc2VudGF0aW9uRHVyYXRpb24pOwpAQCAtMjg5LDcgKzI5
MSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpoYW5kbGVEZWNvbXByZXNz
aW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAgICAgICAgICsrbV9kcm9wcGVkVmlkZW9G
cmFtZXM7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgcmF3SW1hZ2VCdWZmZXJE
ZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCBub0VyciAh
PSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgJnJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24pKSB7
CisgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCBub0VyciAhPSBQQUw6OkNNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJhd0lt
YWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbikpIHsKICAgICAgICAgKyttX2Nv
cnJ1cHRlZFZpZGVvRnJhbWVzOwogICAgICAgICAtLW1fZnJhbWVzQmVpbmdEZWNvZGVkOwogICAg
ICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzA0LDcgKzMwNiw3
IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpoYW5kbGVEZWNvbXByZXNzaW9u
T3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAgICAgfTsKIAogICAgIENNU2FtcGxlQnVmZmVy
UmVmIHJhd0ltYWdlU2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9FcnIgIT0gQ01T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJEZXNjcmlwdGlvbi5nZXQoKSwgJmltYWdlQnVm
ZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVCdWZmZXIpKSB7CisgICAgaWYgKG5vRXJyICE9IFBB
TDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJEZXNjcmlwdGlvbi5nZXQoKSwgJmlt
YWdlQnVmZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVCdWZmZXIpKSB7CiAgICAgICAgICsrbV9j
b3JydXB0ZWRWaWRlb0ZyYW1lczsKICAgICAgICAgLS1tX2ZyYW1lc0JlaW5nRGVjb2RlZDsKICAg
ICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTMxOCwxMSArMzIw
LDExIEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpoYW5kbGVEZWNvbXByZXNz
aW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0VmlkZW9GcmFtZSgpCiB7
Ci0gICAgaWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9k
dWNlclF1ZXVlLmdldCgpKSkKKyAgICBpZiAoIW1fcHJvZHVjZXJRdWV1ZSB8fCBQQUw6OkNNQnVm
ZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxl
ID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVl
dWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKLSAgICBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilDTVNh
bXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOworICAgIFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9j
Zl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0
YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CiAgICAgQVNTRVJUKENGR2V0VHlw
ZUlEKGltYWdlQnVmZmVyLmdldCgpKSA9PSBDVlBpeGVsQnVmZmVyR2V0VHlwZUlEKCkpOwogCiAg
ICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTMzNSwyNSArMzM3LDI1
IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCkK
ICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gdGltZSA9
IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOwor
ICAgIGF1dG8gdGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGltZSht
X3RpbWViYXNlLmdldCgpKSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHB1cmdpbmcgYWxsIHNhbXBsZXMgYmVmb3Jl
IHRpbWUoJXMpIiwgdGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBN
ZWRpYVRpbWUgbmV4dEZpcmVUaW1lID0gTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgp
OwogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSBmYWxzZTsKIAotICAgIHdoaWxlIChD
TVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1
ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsK
LSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRp
bWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1wbGUpKTsK
LSAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1
ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CisgICAgd2hpbGUgKENNU2FtcGxlQnVmZmVy
UmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6
OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7CisgICAgICAg
IE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1wbGUpKTsKKyAg
ICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKICAgICAgICAgTWVkaWFUaW1lIHByZXNl
bnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlvblRpbWVzdGFtcCArIGR1cmF0aW9uOwog
ICAgICAgICBpZiAodGltZSA+IHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCkgewotICAgICAgICAg
ICAgQ0ZSZWxlYXNlKENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOworICAgICAgICAgICAgQ0ZSZWxlYXNlKFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVl
dWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAgICByZWxlYXNl
ZEltYWdlQnVmZmVycyA9IHRydWU7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGlt
ZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1
ZXVlLmdldCgpKSk7Ci0gICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZl
clF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkp
OworICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVl
dWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsK
KyAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdl
dEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAg
ICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1
ZXVlKCVwKSAtIHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKGJlZ2luKS51dGY4KCku
ZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAKQEAgLTM2NSw3
ICszNjcsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVx
dWV1ZSgpCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CiAKICAg
ICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVl
dWUoJXApIC0gcXVldWUgZW1wdHkiLCB0aGlzKTsKLSAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNw
YXRjaFNvdXJjZU5leHRGaXJlVGltZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdl
dCgpLCBQQUw6OnRvQ01UaW1lKG5leHRGaXJlVGltZSksIDApOworICAgIFBBTDo6Q01UaW1lYmFz
ZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUobV90aW1lYmFzZS5nZXQoKSwgbV90
aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0b0NNVGltZShuZXh0RmlyZVRpbWUpLCAwKTsKIH0KIAog
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYm9vbCBkaXNwbGF5aW5nKQpAQCAtMzgzLDE3ICszODUs
MTcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2Ft
cGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKICAgICBib29sIHNob3VsZE5vdGlmeSA9IHRy
dWU7CiAKICAgICBpZiAoZGlzcGxheWluZyAmJiBtX3RpbWViYXNlKSB7Ci0gICAgICAgIGF1dG8g
Y3VycmVudFJhdGUgPSBDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKLSAgICAg
ICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUo
bV90aW1lYmFzZS5nZXQoKSkpOwotICAgICAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9
IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
c2FtcGxlKSk7Ci0gICAgICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IHByZXNlbnRhdGlv
blN0YXJ0VGltZSArIFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihz
YW1wbGUpKTsKKyAgICAgICAgYXV0byBjdXJyZW50UmF0ZSA9IFBBTDo6Q01UaW1lYmFzZUdldFJh
dGUobV90aW1lYmFzZS5nZXQoKSk7CisgICAgICAgIGF1dG8gY3VycmVudFRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOworICAg
ICAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKKyAgICAgICAg
YXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJlc2VudGF0aW9uU3RhcnRUaW1lICsgUEFMOjp0
b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKSk7CiAgICAg
ICAgIGlmIChjdXJyZW50VGltZSA8IHByZXNlbnRhdGlvblN0YXJ0VGltZSB8fCBjdXJyZW50VGlt
ZSA+PSBwcmVzZW50YXRpb25FbmRUaW1lKQogICAgICAgICAgICAgc2hvdWxkTm90aWZ5ID0gZmFs
c2U7CiAKICAgICAgICAgaWYgKGN1cnJlbnRSYXRlID4gMCAmJiBwcmVzZW50YXRpb25FbmRUaW1l
IDwgY3VycmVudFRpbWUpIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgICAgICBhdXRvIGJl
Z2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25U
aW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgICAgICAgICBhdXRvIGVuZCA9
IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFt
cChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0
YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgYXV0byBlbmQgPSBQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFt
cChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIExPRyhNZWRpYSwgIldlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoJXApIC0gZHJvcHBp
bmcgZnJhbWUgbGF0ZSBieSAlcywgZnJhbWVzQmVpbmdEZWNvZGVkKCVkKSwgcHJvZHVjZXJRdWV1
ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhwcmVzZW50YXRpb25FbmRUaW1lIC0gY3VycmVu
dFRpbWUpLnV0ZjgoKS5kYXRhKCksIG1fZnJhbWVzQmVpbmdEZWNvZGVkLCB0b1N0cmluZyhiZWdp
bikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgog
ICAgICAgICAgICAgKyttX2Ryb3BwZWRWaWRlb0ZyYW1lczsKQEAgLTQwMSwxNyArNDAzLDE3IEBA
IHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZShD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBDTUJ1ZmZl
clF1ZXVlRW5xdWV1ZShtX3Byb2R1Y2VyUXVldWUuZ2V0KCksIHNhbXBsZSk7CisgICAgUEFMOjpD
TUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX3Byb2R1Y2VyUXVldWUuZ2V0KCksIHNhbXBsZSk7CiAKICNp
ZiAhTE9HX0RJU0FCTEVECi0gICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZm
ZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQo
KSkpOwotICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5k
UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgIGF1dG8g
cHJlc2VudGF0aW9uVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7CisgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRp
YVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9w
cm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKFBB
TDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVl
dWUuZ2V0KCkpKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBQQUw6OnRvTWVkaWFUaW1l
KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7CiAg
ICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2Rl
ZFNhbXBsZSglcCkgLSBwcmVzZW50YXRpb25UaW1lKCVzKSwgZnJhbWVzQmVpbmdEZWNvZGVkKCVk
KSwgcHJvZHVjZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhwcmVzZW50YXRpb25U
aW1lKS51dGY4KCkuZGF0YSgpLCBtX2ZyYW1lc0JlaW5nRGVjb2RlZCwgdG9TdHJpbmcoYmVnaW4p
LnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKIAog
ICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNv
dXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0
KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJl
SW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAg
ICBpZiAoIW1faGFzQXZhaWxhYmxlRnJhbWVDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwpAQCAt
NDI2LDcgKzQyOCw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVl
RGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAKIGJvb2wgV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpIGNvbnN0CiB7Ci0g
ICAgQ01JdGVtQ291bnQgcHJvZHVjZXJDb3VudCA9IG1fcHJvZHVjZXJRdWV1ZSA/IENNQnVmZmVy
UXVldWVHZXRCdWZmZXJDb3VudChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpIDogMDsKKyAgICBDTUl0
ZW1Db3VudCBwcm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVlID8gUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0QnVmZmVyQ291bnQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSA6IDA7CiAgICAgcmV0dXJu
IG1fZnJhbWVzQmVpbmdEZWNvZGVkICsgcHJvZHVjZXJDb3VudCA8PSBrSGlnaFdhdGVyTWFyazsK
IH0KIApAQCAtNDUyLDcgKzQ1NCw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjpzdG9wUmVxdWVzdGluZ01lZGlhRGF0YSgpCiAKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjpub3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFtZShzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4gY2FsbGJhY2spCiB7Ci0gICAgaWYgKGNhbGxiYWNrICYmIG1fcHJvZHVjZXJRdWV1ZSAm
JiAhQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgeworICAgIGlm
IChjYWxsYmFjayAmJiBtX3Byb2R1Y2VyUXVldWUgJiYgIVBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1w
dHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgewogICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW2NhbGxiYWNrXSB7CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICB9KTsK
QEAgLTQ2Myw3ICs0NjUsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90
aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoc3RkOjpmdW5jdGlvbgogCiBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBJbWFnZUZvclRpbWVGbGFncyBmbGFncykKIHsKLSAg
ICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgeworICAg
IGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsK
ICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZv
clRpbWUoJXApIC0gdGltZSglcyksIHF1ZXVlIGVtcHR5IiwgdGhpcywgdG9TdHJpbmcodGltZSku
dXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAgLTQ3MSw5
ICs0NzMsOSBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQogICAgIGJvb2wgYWxsb3dFYXJsaWVy
ID0gZmxhZ3MgPT0gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpBbGxvd0VhcmxpZXI7CiAg
ICAgYm9vbCBhbGxvd0xhdGVyID0gZmxhZ3MgPT0gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjpBbGxvd0xhdGVyOwogCi0gICAgTWVkaWFUaW1lIHN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRp
bWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSkpOworICAgIE1lZGlhVGltZSBzdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1l
KFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpOwogI2lmICFMT0dfRElTQUJMRUQKLSAgICBNZWRpYVRpbWUgZW5kVGlt
ZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVT
dGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBNZWRpYVRpbWUgZW5kVGltZSA9IFBB
TDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0
YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogI2VuZGlmCiAgICAgaWYgKCFhbGxvd0xhdGVy
ICYmIHRpbWUgPCBzdGFydFRpbWUpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoJXApIC0gdGltZSglcykgdG9vIGVhcmx5IGZv
ciBxdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpLCB0
b1N0cmluZyhzdGFydFRpbWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZFRpbWUpLnV0Zjgo
KS5kYXRhKCkpOwpAQCAtNDgyLDI0ICs0ODQsMjQgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkK
IAogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSBmYWxzZTsKIAotICAgIHdoaWxlIChD
TVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1
ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsK
LSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRp
bWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1wbGUpKTsK
LSAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1
ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CisgICAgd2hpbGUgKENNU2FtcGxlQnVmZmVy
UmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6
OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7CisgICAgICAg
IE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1wbGUpKTsKKyAg
ICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKICAgICAgICAgTWVkaWFUaW1lIHByZXNl
bnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlvblRpbWVzdGFtcCArIGR1cmF0aW9uOwog
ICAgICAgICBpZiAoIWFsbG93TGF0ZXIgJiYgcHJlc2VudGF0aW9uVGltZXN0YW1wID4gdGltZSkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAoIWFsbG93RWFybGllciAm
JiBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPCB0aW1lKSB7Ci0gICAgICAgICAgICBDRlJlbGVh
c2UoQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7
CisgICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFp
bihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIHJlbGVhc2VkSW1hZ2VCdWZm
ZXJzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAg
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVj
a2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0
YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKLSAgICAgICAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpQ01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKKyAgICAgICAgUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8
Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9w
cm9kdWNlclF1ZXVlLmdldCgpKSkpOworICAgICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CiAgICAgICAgIEFTU0VSVChDRkdldFR5
cGVJRChpbWFnZUJ1ZmZlci5nZXQoKSkgPT0gQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJRCgpKTsKIAog
ICAgICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgICAgIENNVGltZWJhc2VTZXRUaW1lckRp
c3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNv
dXJjZS5nZXQoKSk7CisgICAgICAgICAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNo
U291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5n
ZXQoKSk7CiAKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKIApA
QCAtNTA4LDcgKzUxMCw3IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiAgICAgfQogCiAgICAg
aWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNl
VG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7
CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1l
ZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAgIGlm
IChyZWxlYXNlZEltYWdlQnVmZmVycykKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVN
ZWRpYURhdGEoKTsKQEAgLTUyMCw5ICs1MjIsOSBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQog
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmZsdXNoKCkKIHsKICAgICBtX2RlY29t
cHJlc3Npb25RdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldKCkgbXV0YWJsZSB7Ci0gICAgICAgIENNQnVmZmVyUXVldWVSZXNldChwcm90ZWN0
ZWRUaGlzLT5tX3Byb2R1Y2VyUXVldWUuZ2V0KCkpOworICAgICAgICBQQUw6OkNNQnVmZmVyUXVl
dWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX3Byb2R1Y2VyUXVldWUuZ2V0KCkpOwogICAgICAgICBt
X2VucXVlaW5nUXVldWUtPmRpc3BhdGNoU3luYyhbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJv
dGVjdGVkVGhpcyldIHsKLSAgICAgICAgICAgIENNQnVmZmVyUXVldWVSZXNldChwcm90ZWN0ZWRU
aGlzLT5tX2NvbnN1bWVyUXVldWUuZ2V0KCkpOworICAgICAgICAgICAgUEFMOjpDTUJ1ZmZlclF1
ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25zdW1lclF1ZXVlLmdldCgpKTsKICAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPm1fZnJhbWVzU2luY2VMYXN0UW9zQ2hlY2sgPSAwOwogICAgICAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jdXJyZW50UW9zVGllciA9IDA7CiAgICAgICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5yZXNldFFvc1RpZXIoKTsKQEAgLTUzMywyNCArNTM1LDI0IEBAIHZvaWQg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCgpCiBDTVRpbWUgV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKENNQnVmZmVyUmVmIGJ1Ziwgdm9pZCopCiB7
CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxl
QnVmZmVyUmVmPihidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVT
dGFtcChzYW1wbGUpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGlt
ZVN0YW1wKHNhbXBsZSk7CiB9CiAKIENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmdldFByZXNlbnRhdGlvblRpbWUoQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikKIHsKICAgICBDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+
KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1w
KHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25U
aW1lU3RhbXAoc2FtcGxlKTsKIH0KIAogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6Z2V0RHVyYXRpb24oQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikKIHsKICAgICBDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KGJ1Zik7
Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKKyAgICByZXR1
cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CiB9CiAKIENGQ29tcGFy
aXNvblJlc3VsdCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmNvbXBhcmVCdWZmZXJzKENN
QnVmZmVyUmVmIGJ1ZjEsIENNQnVmZmVyUmVmIGJ1ZjIsIHZvaWQqIHJlZmNvbikKIHsKLSAgICBy
ZXR1cm4gKENGQ29tcGFyaXNvblJlc3VsdClDTVRpbWVDb21wYXJlKGdldFByZXNlbnRhdGlvblRp
bWUoYnVmMSwgcmVmY29uKSwgZ2V0UHJlc2VudGF0aW9uVGltZShidWYyLCByZWZjb24pKTsKKyAg
ICByZXR1cm4gKENGQ29tcGFyaXNvblJlc3VsdClQQUw6OkNNVGltZUNvbXBhcmUoZ2V0UHJlc2Vu
dGF0aW9uVGltZShidWYxLCByZWZjb24pLCBnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjIsIHJlZmNv
bikpOwogfQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6cmVzZXRRb3NUaWVy
KCkKQEAgLTYwMiw3ICs2MDQsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
dXBkYXRlUW9zV2l0aERlY29kZVRpbWVTdGF0aXN0aWNzKGRvdWJsZSByYXRpbwogICAgIGlmICgh
bV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZG91YmxlIHJhdGUgPSBDTVRpbWVi
YXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKKyAgICBkb3VibGUgcmF0ZSA9IFBBTDo6Q01U
aW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7CiAgICAgaWYgKCFyYXRlKQogICAgICAg
ICByYXRlID0gMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KaW5kZXggZTNmMDkyNzAzNDhl
N2E1YWVmNzI2NmViNDcyZGRiYWU3M2JjMzQwNy4uZjMxNjlhYmMwMjc3MDgyZjBjZmNlNDcyNjc5
ZTExMDc5N2M4YzlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCkBAIC00Miw3ICs0Miw2
IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBDRlN0cmluZ1Jl
ZiBjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkKIHsKQEAgLTEzOCw3ICsxMzcsNyBAQCBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVs
QnVmZmVyKENWUGl4ZWxCdQogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNl
QnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBjb252ZXJ0UGl4ZWxC
dWZmZXIoQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpLCBzaXplKTsK
KyAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihzb3VyY2VCdWZmZXIpLCBzaXplKTsKIH0KIAogUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01T
YW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtMTQ2
LDkgKzE0NSw5IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgaWYgKCFzb3VyY2VCdWZm
ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBkZXNjcmlwdGlvbiA9IENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc291cmNlQnVmZmVyKTsKLSAgICBhdXRv
IHNvdXJjZVNpemUgPSBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2Vu
dGF0aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwotICAgIGF1dG8gcGl4
ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdl
dEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOworICAgIGF1dG8gZGVzY3JpcHRpb24gPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc291cmNlQnVmZmVyKTsKKyAgICBh
dXRvIHNvdXJjZVNpemUgPSBGbG9hdFNpemUoUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGRlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7CisgICAg
YXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpKTsKICAgICBpZiAoc2l6ZSA9
PSBleHBhbmRlZEludFNpemUoc291cmNlU2l6ZSkgJiYgbV9waXhlbEZvcm1hdCA9PSBDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSkKICAgICAgICAgcmV0dXJuIHJl
dGFpblB0cihzb3VyY2VCdWZmZXIpOwogCkBAIC0xNjAsNyArMTU5LDcgQEAgUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVC
dWZmZXIoQ01TYW0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBDTUl0ZW1Db3VudCBp
dGVtQ291bnQgPSAwOwotICAgIGF1dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCAxLCBudWxscHRyLCAmaXRlbUNvdW50KTsKKyAg
ICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkoc291cmNlQnVmZmVyLCAxLCBudWxscHRyLCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGlu
dD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTY5LDcgKzE2OCw3IEBA
IFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29u
dmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1laW5n
SW5mb1B0ciA9IG51bGxwdHI7CiAgICAgaWYgKGl0ZW1Db3VudCkgewogICAgICAgICB0aW1pbmdJ
bmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgICAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIGl0ZW1Db3VudCwgdGltaW5n
SW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CisgICAgICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCBpdGVtQ291bnQs
IHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOwogICAgICAgICBpZiAoc3RhdHVzICE9
IG5vRXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxp
bnQ+KHN0YXR1cykpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNzgsMTQgKzE3
NywxNCBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIH0KIAogICAgIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgc3RhdHVz
ID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlv
bik7CisgICAgc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQo
KSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENN
U2FtcGxlQnVmZmVyOiBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZl
ciByZXR1cm5lZDogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByZXNpemVkU2FtcGxl
QnVmZmVyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksIGZv
cm1hdERlc2NyaXB0aW9uLCB0aW1laW5nSW5mb1B0ciwgJnJlc2l6ZWRTYW1wbGVCdWZmZXIpOwor
ICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZl
cihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0
RGVzY3JpcHRpb24sIHRpbWVpbmdJbmZvUHRyLCAmcmVzaXplZFNhbXBsZUJ1ZmZlcik7CiAgICAg
Q0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29u
dmVydENNU2FtcGxlQnVmZmVyOiBmYWlsZWQgdG8gY3JlYXRlIENNU2FtcGxlQnVmZmVyIHdpdGgg
ZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpAQCAtMjM3LDE2ICsy
MzYsMTYgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihDVlBpeGUKICAgICB9CiAKICAgICBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgIGF1dG8g
c3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksICZm
b3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVklt
YWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAg
IGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6IGZhaWxlZCB0byBpbml0aWFsaXplIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbiB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50
PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1dG8gY21UaW1lID0gdG9DTVRpbWUoc2Ft
cGxlVGltZSk7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IGtDTVRpbWVJ
bnZhbGlkLCBjbVRpbWUsIGNtVGltZSB9OwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZm
ZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5mbywg
JnNhbXBsZUJ1ZmZlcik7CisgICAgYXV0byBjbVRpbWUgPSBQQUw6OnRvQ01UaW1lKHNhbXBsZVRp
bWUpOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBQQUw6OmtDTVRpbWVJ
bnZhbGlkLCBjbVRpbWUsIGNtVGltZSB9OworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFn
ZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJ
bmZvLCAmc2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwog
ICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6IGZhaWxlZCB0byBpbml0aWFsaXplIENN
U2FtcGxlQnVmZmVyIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1
cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vz
c2lvbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXli
YWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IGUwZGFhYzg1Yjg3M2FkNmFhOWI0YWIy
ZGI3YTAwOWNjMzdkNDc4OTUuLjMyYTA0NDk2Y2ZmN2Q4NDExMTIwZmNkMTMzZTZkNjc0MjU0YTg2
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KQEAgLTQ3LDcgKzQ3LDYgQEAgU09GVExJTktf
QVZLSVRfRlJBTUVXT1JLKCkKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVktpdCwgQVZWYWx1
ZVRpbWluZykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAog
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0KFBsYXliYWNrU2Vzc2lvbk1vZGVsJiBtb2RlbCkKICAgICA6IG1fcGxheWVyQ29udHJvbGxl
cihhZG9wdE5TKFtbV2ViQVZQbGF5ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0XSkpCkBAIC0xNDUs
NyArMTQ0LDcgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6c2Vla2FibGVS
YW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMmIHRpbWUKICAgICAgICAgZG91YmxlIHN0YXJ0
ID0gdGltZVJhbmdlcy5zdGFydChpKS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICAgICAgZG91
YmxlIGVuZCA9IHRpbWVSYW5nZXMuZW5kKGkpLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAg
ICAgIENNVGltZVJhbmdlIHJhbmdlID0gQ01UaW1lUmFuZ2VNYWtlKENNVGltZU1ha2VXaXRoU2Vj
b25kcyhzdGFydCwgMTAwMCksIENNVGltZU1ha2VXaXRoU2Vjb25kcyhlbmQtc3RhcnQsIDEwMDAp
KTsKKyAgICAgICAgQ01UaW1lUmFuZ2UgcmFuZ2UgPSBQQUw6OkNNVGltZVJhbmdlTWFrZShQQUw6
OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhzdGFydCwgMTAwMCksIFBBTDo6Q01UaW1lTWFrZVdpdGhT
ZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOwogICAgICAgICBbc2Vla2FibGVSYW5nZXMgYWRkT2Jq
ZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENNVGltZVJhbmdlOnJhbmdlXV07CiAgICAgfQogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjLm1tCmluZGV4IGVhNDIzYzcxN2M3YWU5MWJkNGVlOTkwODdlMDdjNGU1
YzM3ZTRjM2YuLjVkZjM0OWZjNmZjZGZjZmFlYTc1NTYzMjBmM2FlNmU2Njc2MzRlOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbQpAQCAtMzczLDcgKzM3Myw2IEBAIC0gKHZvaWQpcGlwQWN0aW9uU3Rv
cDooUElQVmlld0NvbnRyb2xsZXIgKilwaXAKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMoUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjJiBwbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgOiBtX3BsYXliYWNrU2Vzc2lvbkludGVyZmFjZShw
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbC5jcHAKaW5kZXggODg0MDk0Mjk3OTI2YzhhZWJkZWY2ZjNlOTU3ODQyZjgzNDI4Yjg5Mi4u
ZDQxOWUwZTE5MjU1NWQ3MzYwODU4NTFmNTRjYTAwNDBkNDZiNjYzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtNDIsNyArNDIsNiBAQAogI2luY2x1ZGUg
PHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2lu
ZyBuYW1lc3BhY2UgUEFMOwogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShNZWRpYVN0cmVhbVBy
aXZhdGUmIHN0cmVhbSwgY29uc3QgTWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zJiBvcHRpb25z
KQogewpAQCAtODgsMTIgKzg3LDEyIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlQnVmZmVyCiB7CiAgICAg
aWYgKHNob3VsZE11dGVWaWRlbygpKSB7CiAgICAgICAgIGlmICghbV9ibGFja0ZyYW1lKSB7Ci0g
ICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9y
bWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKTsKLSAgICAgICAgICAgIGF1dG8gZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0KCkpOwor
ICAgICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxl
LmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgIGF1dG8gZGltZW5zaW9ucyA9IFBBTDo6Q01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhtX2JsYWNrRnJhbWVEZXNjcmlwdGlv
bi5nZXQoKSk7CiAgICAgICAgICAgICBtX2JsYWNrRnJhbWUgPSBjcmVhdGVCbGFja1BpeGVsQnVm
ZmVyKGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0KTsKIAogICAgICAgICAgICAg
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsK
LSAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9ibGFja0ZyYW1lLmdldCgpLCAm
Zm9ybWF0RGVzY3JpcHRpb24pOworICAgICAgICAgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG1fYmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICAgICAgICAg
IGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFi
bGUgOjp1bmFibGUgdG8gY3JlYXRlIGEgYmxhY2sgZnJhbWUgZGVzY3JpcHRpb246ICVkIiwgc3Rh
dGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgICAgICAgICBtX2JsYWNrRnJhbWUgPSBu
dWxscHRyOwpAQCAtMTAzLDggKzEwMiw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlQnVmZmVyCiAgICAg
ICAgIH0KIAogICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBudWxscHRyOwotICAg
ICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyB7IGtDTVRpbWVJbnZhbGlkLCB0b0NN
VGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0aW9uVGltZSgpKSwgdG9DTVRpbWUoc2FtcGxlQnVm
ZmVyLmRlY29kZVRpbWUoKSkgfTsKLSAgICAgICAgYXV0byBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdl
QnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0
KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKKyAgICAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRp
bWluZ0luZm8geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OnRvQ01UaW1lKHNhbXBsZUJ1ZmZl
ci5wcmVzZW50YXRpb25UaW1lKCkpLCBQQUw6OnRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5kZWNvZGVU
aW1lKCkpIH07CisgICAgICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVy
UmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0KCksICZ0
aW1pbmdJbmZvLCAmc2FtcGxlKTsKIAogICAgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUgLSB1bmFibGUgdG8gY3JlYXRlIGEg
YmxhY2sgZnJhbWU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNTFhM2UxOGEyY2Vk
ZDNjZDVkYTkzZjM0ZWJmMzcxMWUwMjBmOGI2Mi4uNWUxMTBlY2Q3ZGUzODQ2MWI0MjkwNGEwZWI0
ODgzNDE4NDNlNzVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IubW0KQEAgLTM2LDEzICszNiwxMiBAQAogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgog
CiAjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KKyNpbXBvcnQgPHBhbC9j
Zi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiAjZGVmaW5lIExPV19XQVRFUl9USU1FX0lOX1NFQ09O
RFMgMC4xCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQog
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpjcmVhdGUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxs
YmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgYXV0byBjb21wcmVzc29yID0gc3Rk
Ojp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4obmV3IEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvcigpKTsKQEAgLTUyLDE1ICs1MSwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmNyZWF0ZQogfQogCiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvcigpCi0gICAgOiBtX3NlcmlhbERpc3BhdGNoUXVldWUgeyBXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciIpIH0KLSAgICAs
IG1fbG93V2F0ZXJUaW1lIHsgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKExPV19XQVRFUl9USU1FX0lO
X1NFQ09ORFMsIDEwMDApIH0KKyAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciIpKQorICAgICwg
bV9sb3dXYXRlclRpbWUoUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dBVEVSX1RJTUVf
SU5fU0VDT05EUywgMTAwMCkpCiB7CiB9CiAKIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgaWYgKG1fY29udmVydGVyKSB7
Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIFBB
TDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKICAgICAgICAgbV9jb252ZXJ0
ZXIgPSBudWxscHRyOwogICAgIH0KIH0KQEAgLTY4LDE5ICs2NywxOSBAQCBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6On5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogYm9vbCBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJD
YWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgQ01CdWZmZXJR
dWV1ZVJlZiBpbnB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJR
dWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJh
Y2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZpbnB1dEJ1ZmZlclF1ZXVlKSkgeworICAg
IGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxl
QnVmZmVycygpLCAmaW5wdXRCdWZmZXJRdWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1
ZUNyZWF0ZSBmb3IgbV9pbnB1dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1faW5wdXRCdWZmZXJRdWV1ZSA9IGFk
b3B0Q0YoaW5wdXRCdWZmZXJRdWV1ZSk7CiAKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1
ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRT
YW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6
OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91
dHB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlQ3JlYXRlIGZvciBt
X291dHB1dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICAgIG1fb3V0cHV0QnVmZmVyUXVldWUgPSBhZG9wdENGKG91dHB1
dEJ1ZmZlclF1ZXVlKTsKLSAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRC
dWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1
ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVaZXJvLCBOVUxMKTsKKyAgICBQ
QUw6OkNNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
LCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0
YUJlY29tZXNSZWFkeSwgUEFMOjprQ01UaW1lWmVybywgTlVMTCk7CiAKICAgICBtX2lzRW5jb2Rp
bmcgPSB0cnVlOwogICAgIHJldHVybiB0cnVlOwpAQCAtODksOCArODgsOCBAQCBib29sIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNh
bGxiYWNrIGNhbGxiYQogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCgp
CiB7CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAg
ICAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShrQ01UaW1lSW52YWxp
ZCk7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291
dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKKyAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRp
bExvd1dhdGVyVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBlcnJvciA9
IFBBTDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQo
KSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSBmYWls
ZWQgJWQiLCBlcnJvcik7CiAgICAgICAgIG1faXNFbmNvZGluZyA9IGZhbHNlOwogICAgIH0pOwpA
QCAtMTEyLDcgKzExMSw3IEBAIFVJbnQzMiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmRl
ZmF1bHRPdXRwdXRCaXRSYXRlKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNECiAKIGJvb2wgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXRE
ZXNjcmlwdGlvbihDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBBdWRp
b0Zvcm1hdElEIG91dHB1dEZvcm1hdElEKQogewotICAgIGNvbnN0IGF1dG8gKmF1ZGlvRm9ybWF0
TGlzdEl0ZW0gPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9y
bWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBhdXRvICphdWRpb0Zvcm1hdExpc3RJ
dGVtID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9y
bWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBtX3NvdXJjZUZvcm1hdCA9IGF1ZGlvRm9ybWF0
TGlzdEl0ZW0tPm1BU0JEOwogCiAgICAgbWVtc2V0KCZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBz
aXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CkBAIC0xMjEsMzQgKzEyMCwzNCBA
QCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9y
U291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIG1fZGVzdGluYXRpb25Gb3JtYXQubUNoYW5u
ZWxzUGVyRnJhbWUgPSBtX3NvdXJjZUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKIAogICAgIFVJ
bnQzMiBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOwotICAgIGlmIChhdXRvIGVy
cm9yID0gQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9wZXJ0eV9Gb3JtYXRJ
bmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CisgICAgaWYgKGF1
dG8gZXJyb3IgPSBQQUw6OkF1ZGlvRm9ybWF0R2V0UHJvcGVydHkoa0F1ZGlvRm9ybWF0UHJvcGVy
dHlfRm9ybWF0SW5mbywgMCwgTlVMTCwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBBdWRpb0Zvcm1hdEdldFByb3BlcnR5IGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgQXVkaW9Db252ZXJ0ZXJSZWYg
Y29udmVydGVyOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJOZXcoJm1fc291
cmNlRm9ybWF0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZlcnRlcikpIHsKKyAgICBpZiAo
YXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcoJm1fc291cmNlRm9ybWF0LCAmbV9k
ZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZlcnRlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQXVkaW9Db252ZXJ0
ZXJOZXcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAgICAgbV9jb252ZXJ0ZXIgPSBjb252ZXJ0ZXI7CiAKICAgICBhdXRvIGNsZWFudXBJbkNh
c2VPZkVycm9yID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAgICBBdWRpb0NvbnZlcnRlckRp
c3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyRGlzcG9zZSht
X2NvbnZlcnRlcik7CiAgICAgICAgIG1fY29udmVydGVyID0gbnVsbHB0cjsKICAgICB9KTsKIAog
ICAgIHNpemVfdCBjb29raWVTaXplID0gMDsKLSAgICBjb25zdCB2b2lkICpjb29raWUgPSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNv
b2tpZVNpemUpOworICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IFBBTDo6Q01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRpb24sICZjb29raWVTaXplKTsK
ICAgICBpZiAoY29va2llU2l6ZSkgewotICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29u
dmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Np
b25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUpKSB7CisgICAgICAgIGlm
IChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVy
LCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUsIChVSW50MzIpY29va2ll
U2l6ZSwgY29va2llKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJE
ZWNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBzaXplID0gc2l6ZW9m
KG1fc291cmNlRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0
UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURl
c2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9y
ID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252
ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX3NvdXJjZUZvcm1h
dCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJl
YW1EZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KQEAgLTE1OSw3ICsxNTgsNyBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwog
ICAgIH0KIAogICAgIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9kZXN0
aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0
ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0
cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9u
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpA
QCAtMTY3LDE0ICsxNjYsMTQgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6Omlu
aXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICBpZiAobV9k
ZXN0aW5hdGlvbkZvcm1hdC5tRm9ybWF0SUQgPT0ga0F1ZGlvRm9ybWF0TVBFRzRBQUMpIHsKICAg
ICAgICAgYm9vbCBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSA9IHRydWU7CiAgICAgICAg
IGlmIChtX291dHB1dEJpdFJhdGUpIHsKLSAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0Nv
bnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRS
YXRlLCBzaXplb2YoKm1fb3V0cHV0Qml0UmF0ZSksICZtX291dHB1dEJpdFJhdGUudmFsdWUoKSk7
CisgICAgICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5
KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXplb2YoKm1fb3V0
cHV0Qml0UmF0ZSksICZtX291dHB1dEJpdFJhdGUudmFsdWUoKSk7CiAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgc2hvdWxkU2V0RGVmYXVsdE91dHB1dEJpdFJhdGUg
PSAhIWVycm9yOwogICAgICAgICB9CiAgICAgICAgIGlmIChzaG91bGRTZXREZWZhdWx0T3V0cHV0
Qml0UmF0ZSkgewogICAgICAgICAgICAgYXV0byBvdXRwdXRCaXRSYXRlID0gZGVmYXVsdE91dHB1
dEJpdFJhdGUobV9kZXN0aW5hdGlvbkZvcm1hdCk7CiAgICAgICAgICAgICBzaXplID0gc2l6ZW9m
KG91dHB1dEJpdFJhdGUpOwotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRl
LCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBB
TDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVy
RW5jb2RlQml0UmF0ZSwgc2l6ZSwgJm91dHB1dEJpdFJhdGUpKQogICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IHNldHRpbmcgZGVmYXVsdCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTgzLDcgKzE4Miw3IEBAIGJvb2wg
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VG
b3JtYXREZXNjcmlwdGlvbihDCiAgICAgICAgIC8vIElmIHRoZSBkZXN0aW5hdGlvbiBmb3JtYXQg
aXMgVkJSLCB3ZSBuZWVkIHRvIGdldCBtYXggc2l6ZSBwZXIgcGFja2V0IGZyb20gdGhlIGNvbnZl
cnRlci4KICAgICAgICAgc2l6ZSA9IHNpemVvZihtX21heE91dHB1dFBhY2tldFNpemUpOwogCi0g
ICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwgJnNp
emUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0
ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4T3V0cHV0UGFj
a2V0U2l6ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyUHJvcGVy
dHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMjExLDYgKzIxMCw4IEBAIHNpemVf
dCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNvbXB1dGVCdWZmZXJTaXplRm9yQXVkaW9G
b3JtYXQoQXVkaW9TdHJlYW1CCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZChDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7Cisg
ICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRChtX3Jl
bWFpbmluZ1ByaW1lRHVyYXRpb24pKSB7CiAgICAgICAgIEF1ZGlvQ29udmVydGVyUHJpbWVJbmZv
IHByaW1lSW5mbyB7IDAsIDAgfTsKICAgICAgICAgVUludDMyIHNpemUgPSBzaXplb2YocHJpbWVJ
bmZvKTsKQEAgLTIzNiwyNSArMjM3LDI1IEBAIFJldGFpblB0cjxOU051bWJlcj4gQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2RlclJlZnJlc2hDb3VudCgpCiB7CiAgICAg
VUludDMyIGRlbGF5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7CiAgICAgdWludDMyX3Qgb3JpZ2lu
YWxEZWxheU1vZGUgPSAwOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgJmRlbGF5
U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpB
dWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5
RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICB1aW50MzJfdCBvcHRpbWFs
RGVsYXlNb2RlID0ga0F1ZGlvQ29kZWNEZWxheU1vZGVfT3B0aW1hbDsKLSAgICBpZiAoYXV0byBl
cnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVj
UHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxEZWxheU1vZGUpKSB7CisgICAg
aWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0
ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxEZWxh
eU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9k
ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAK
ICAgICBVSW50MzIgcHJpbWVTaXplID0gc2l6ZW9mKEF1ZGlvQ29kZWNQcmltZUluZm8pOwogICAg
IEF1ZGlvQ29kZWNQcmltZUluZm8gcHJpbWVJbmZvIHsgMCwgMCB9OwotICAgIGlmIChhdXRvIGVy
cm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQ
cm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5mbykpIHsKKyAgICBpZiAoYXV0
byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1
ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5mbykpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAotICAgIGlmIChhdXRv
IGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29k
ZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7Cisg
ICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252
ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFs
RGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxh
eU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAg
fQpAQCAtMjY3LDE4ICsyNjgsMTggQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBpZiAo
IW1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikgewogICAgICAgICBVSW50MzIgY29va2ll
U2l6ZSA9IDA7CiAKLSAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVy
dHlJbmZvKG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2ll
LCAmY29va2llU2l6ZSwgTlVMTCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVz
c2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgTlVMTCk7CiAgICAgICAgIGlmICgoZXJyb3Ig
PT0gbm9FcnIpICYmICEhY29va2llU2l6ZSkgewogICAgICAgICAgICAgY29va2llLnJlc2l6ZShj
b29raWVTaXplKTsKIAotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2lj
Q29va2llLCAmY29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsKKyAgICAgICAgICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBr
QXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgY29va2ll
LmRhdGEoKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckNv
bXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIENN
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbjsKLSAgICAg
ICAgaWYgKGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEwsIGNvb2tpZVNpemUs
IGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSkgewor
ICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBOVUxMLCBj
b29raWVTaXplLCBjb29raWUuZGF0YSgpLCBOVUxMLCAmZGVzdGluYXRpb25Gb3JtYXREZXNjcmlw
dGlvbikpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBuaWw7CiAgICAgICAg
IH0KQEAgLTI5MCwyNiArMjkxLDI2IEBAIENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tldHMoVUludDMyCiAgICAgc2l6
ZV90IGRhdGFTaXplID0gZmlsbEJ1ZmZlckxpc3QubUJ1ZmZlcnNbMF0ubURhdGFCeXRlU2l6ZTsK
IAogICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXI7Ci0gICAgaWYgKGF1dG8gZXJyb3Ig
PSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQs
IE5VTEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBkYXRhU2l6ZSwg
a0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIpKSB7CisgICAg
aWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2so
a0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZGF0YVNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQs
IE5VTEwsIDAsIGRhdGFTaXplLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZi
bG9ja0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlC
bG9jayBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9
CiAgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKGJsb2NrQnVmZmVyKTsKIAotICAgIGlmIChhdXRv
IGVycm9yID0gQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMoZGF0YSwgYnVmZmVyLmdldCgp
LCAwLCBkYXRhU2l6ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZl
clJlcGxhY2VEYXRhQnl0ZXMoZGF0YSwgYnVmZmVyLmdldCgpLCAwLCBkYXRhU2l6ZSkpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0
KCksIHRydWUsIE5VTEwsIE5VTEwsIG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbi5nZXQo
KSwgbnVtUGFja2V0cywgbV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wLCBtX2Rl
c3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnNhbXBsZUJ1ZmZlcik7CisgICAg
YXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCB0cnVlLCBOVUxMLCBO
VUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksIG51bVBhY2tldHMsIG1f
Y3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCwgbV9kZXN0aW5hdGlvblBhY2tldERl
c2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIpOwogICAgIGlmIChlcnJvcikgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAg
ICBpZiAoW21fZ2RyQ291bnROdW0gaW50VmFsdWVdKQotICAgICAgICBDTVNldEF0dGFjaG1lbnQo
c2FtcGxlQnVmZmVyLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1YWxEZWNvZGVy
UmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgpLCBrQ01BdHRh
Y2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOworICAgICAgICBQQUw6OkNNU2V0QXR0YWNobWVu
dChzYW1wbGVCdWZmZXIsIFBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9HcmFkdWFs
RGVjb2RlclJlZnJlc2gsIChfX2JyaWRnZSBDRlR5cGVSZWYpbV9nZHJDb3VudE51bS5nZXQoKSwg
a0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKIAogICAgIHJldHVybiBzYW1wbGVC
dWZmZXI7CiB9CkBAIC0zNDEsMjQgKzM0MiwyNCBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyhVSW50MzIqCiAg
ICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9p
bnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKKyAgICAgICAgICAgICAgICBpZiAoUEFMOjpDTUJ1ZmZl
clF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRD
RigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1
ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7Ci0gICAgICAgICAgICAg
ICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1w
bGVCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRv
cHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJR
dWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKKyAgICAg
ICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERh
dGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgICAgICBpZiAoIW1fc2Ft
cGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01TYW1wbGVCdWZmZXJH
ZXREYXRhQnVmZmVyIGZhaWxlZCIpOwogICAgICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2Nr
QnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudE9mZnNldEluU2Ft
cGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBD
TUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsKKyAg
ICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IFBBTDo6Q01CbG9ja0J1ZmZl
ckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSk7CiAgICAgICAgICAgICAg
ICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIGlmIChtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICAg
ICAgc2l6ZV90IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1pbihudW1CeXRl
c1RvQ29weSwgKG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplIC0gbV9jdXJyZW50T2Zmc2V0SW5TYW1w
bGVCbG9ja0J1ZmZlcikpOwotICAgICAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9j
a0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50
T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1Ziwg
KG1fc291cmNlQnVmZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJDb3B5
RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2Ft
cGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChtX3NvdXJjZUJ1
ZmZlci5kYXRhKCkgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgewogICAgICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICAgICAg
ICAgIH0KQEAgLTM5MywyOCArMzk0LDI4IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKICAgICAg
ICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUu
Z2V0KCkpKQorICAgICAgICAgICAgaWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1
dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAg
ICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3Rf
Y2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1
ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBhZG9wdENG
KChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihDTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkpKSk7CisgICAgICAgICAgICBh
dXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0
PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJR
dWV1ZS5nZXQoKSkpKSk7CisgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gYWRvcHRD
RigoQ01CbG9ja0J1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ0ZSZXRhaW4oUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkpKSk7CiAgICAgICAg
ICAgICBpZiAoIW1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTVNh
bXBsZUJ1ZmZlckdldERhdGFCdWZmZXIgZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgbV9zYW1w
bGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgICAgIG1fY3VycmVudE9mZnNldElu
U2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBDTUJsb2NrQnVm
ZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7CisgICAgICAg
ICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSkgLyAyOwogICAgICAgICAgICAgbV9jdXJy
ZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAobV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgc2l6ZV90IG51bUJ5dGVzVG9D
b3B5RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1pbihudW1CeXRlc1RvQ29weSwgKG1fc2FtcGxlQmxv
Y2tCdWZmZXJTaXplIC0gbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlcikpOwotICAg
ICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3Nh
bXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVy
LCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoZmlyc3RDaGFubmVsICsgY3VycmVudE9m
ZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFM
OjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBt
X2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1w
bGVCYnVmLCAoZmlyc3RDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsK
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyBmaXJzdCBjaGFu
bmVsIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVybiBlcnJv
cjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1
ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zm
c2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplLCBudW1CeXRl
c1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25kQ2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJblNv
dXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9j
a0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50
T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplLCBudW1C
eXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25kQ2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJ
blNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlckNvcHlE
YXRhQnl0ZXMgc2Vjb25kIGNoYW5uZWwgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICAgICAgfQpAQCAtNDM4LDYgKzQzOSw4IEBA
IE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFO
dW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGxvd1dhdGVy
VGltZSkKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1FX0NPTVBBUkVf
SU5MSU5FCisKICAgICBpZiAoIW1fY29udmVydGVyKSB7CiAgICAgICAgIGlmIChDTUJ1ZmZlclF1
ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtNTAxLDcgKzUwNCw3IEBAIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpw
cm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENNVGltZSBsCiAKIHZvaWQgQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVm
ZmVyUmVmIGJ1ZmZlcikKIHsKLSAgICBhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUVucXVldWUo
bV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6
OkNNQnVmZmVyUXVldWVFbnF1ZXVlKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsK
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CiAKICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKG1fbG93
V2F0ZXJUaW1lKTsKQEAgLTUyMCwxMiArNTIzLDEyIEBAIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogCiBD
TVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNh
bXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2Fz
dDx2b2lkKj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkp
KTsKKyAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6
OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CiB9CiAK
IFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1w
bGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0
YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgIHJldHVybiBhZG9wdENGKChD
TVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVx
dWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKIH0KIAogdW5zaWdu
ZWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpiaXRSYXRlKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKaW5kZXggZjVm
ODU1ODcxZmM3MDg1NjZmN2VmOGI5YTE2MWUyN2I4ZTVkODllZC4uYjc1NThkMjgwYzJlZjc5NjA2
OGNhYzBjYzk2YjUwMzNkYzM3MDk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKQEAgLTEyNyw4ICsxMjcsOCBAQCBwcml2YXRlOgog
ICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX3ZpZGVvRm9ybWF0RGVzY3Jp
cHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4g
bV92aWRlb0NvbXByZXNzb3I7CiAgICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXJJbnB1dD4gbV92
aWRlb0Fzc2V0V3JpdGVySW5wdXQ7Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9u
VGltZSB7IGtDTVRpbWVJbnZhbGlkIH07Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdU
aW1lIHsga0NNVGltZUludmFsaWQgfTsKKyAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRp
b25UaW1lOworICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5nVGltZTsKICAgICBib29sIG1f
aGFzRW5jb2RlZFZpZGVvU2FtcGxlcyB7IGZhbHNlIH07CiAKICAgICBSZXRhaW5QdHI8V2ViQVZB
c3NldFdyaXRlckRlbGVnYXRlPiBtX3dyaXRlckRlbGVnYXRlOwpAQCAtMTM5LDkgKzEzOSw5IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFN0b3BBZnRlckZsdXNoaW5nU2FtcGxlcyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2ZpcnN0VmlkZW9GcmFtZSB7IGZhbHNlIH07CiAgICAgc3RkOjpv
cHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gbV92aWRlb1RyYW5zZm9ybTsKLSAgICBDTVRpbWUg
bV9yZXN1bWVkVmlkZW9UaW1lIHsga0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUgbV9jdXJyZW50
VmlkZW9EdXJhdGlvbiB7IGtDTVRpbWVaZXJvIH07Ci0gICAgQ01UaW1lIG1fY3VycmVudEF1ZGlv
U2FtcGxlVGltZSB7IGtDTVRpbWVaZXJvIH07CisgICAgQ01UaW1lIG1fcmVzdW1lZFZpZGVvVGlt
ZTsKKyAgICBDTVRpbWUgbV9jdXJyZW50VmlkZW9EdXJhdGlvbjsKKyAgICBDTVRpbWUgbV9jdXJy
ZW50QXVkaW9TYW1wbGVUaW1lOwogICAgIGRvdWJsZSBtX3RpbWVDb2RlIHsgMCB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1t
CmluZGV4IDYzYmQ2NTk4ZDAyYTVjNzAwNmRhOTI5ZmM5NGYxZjVmNjZhNzE2ZGEuLjZhZDIwYmU4
Y2I1NzkyM2EwZTc4NDJlMzcwMWQzM2E2YWEwM2FiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KQEAgLTkzLDggKzkzLDYgQEAg
QGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIFJl
ZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBjb25zdCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgYXV0byB3cml0ZXIgPSBhZG9wdFJl
ZigqbmV3IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKGhhc0F1ZGlvLCBoYXNWaWRlbykpOwpA
QCAtMTIyLDYgKzEyMCwxMSBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjb21w
cmVzc2VkQXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFjayh2b2lkICptZWRpYQogTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKGJvb2wgaGFzQXVkaW8s
IGJvb2wgaGFzVmlkZW8pCiAgICAgOiBtX2hhc0F1ZGlvKGhhc0F1ZGlvKQogICAgICwgbV9oYXNW
aWRlbyhoYXNWaWRlbykKKyAgICAsIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZShQQUw6OmtD
TVRpbWVJbnZhbGlkKQorICAgICwgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUoUEFMOjprQ01UaW1l
SW52YWxpZCkKKyAgICAsIG1fcmVzdW1lZFZpZGVvVGltZShQQUw6OmtDTVRpbWVaZXJvKQorICAg
ICwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbihQQUw6OmtDTVRpbWVaZXJvKQorICAgICwgbV9jdXJy
ZW50QXVkaW9TYW1wbGVUaW1lKFBBTDo6a0NNVGltZVplcm8pCiB7CiB9CiAKQEAgLTE3OSw3ICsx
ODIsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29tcHJl
c3NlZFZpZGVvU2FtcGxlQnVmZmVycygpCiB7CiAgICAgQVNTRVJUKG1faGFzVmlkZW8pOwogICAg
IGlmICghbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uKSB7Ci0gICAgICAgIG1fdmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV92aWRlb0Nv
bXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKKyAgICAgICAgbV92aWRlb0Zvcm1h
dERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1f
dmlkZW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CiAKICAgICAgICAgaWYg
KG1faGFzQXVkaW8gJiYgIW1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbikKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTE5Niw3ICsxOTksNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Ojpwcm9jZXNzTmV3Q29tcHJlc3NlZEF1ZGlvU2FtcGxlQnVmZmVycygpCiB7CiAgICAgQVNTRVJU
KG1faGFzQXVkaW8pOwogICAgIGlmICghbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKSB7Ci0gICAg
ICAgIG1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVz
Y3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKKyAg
ICAgICAgbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKG1fYXVkaW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIo
KSk7CiAgICAgICAgIGlmIChtX2hhc1ZpZGVvICYmICFtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24p
CiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTIzOCw3ICsyNDEsNyBAQCB2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3JpdGVyKCkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNlc3Npb25BdFNvdXJjZVRpbWU6a0NN
VGltZVplcm9dOworICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNlc3Npb25BdFNvdXJjZVRpbWU6
UEFMOjprQ01UaW1lWmVyb107CiAKICAgICBhcHBlbmRDb21wcmVzc2VkU2FtcGxlQnVmZmVycygp
OwogCkBAIC0zMDAsOCArMzAzLDggQEAgYm9vbCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6
YXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVySWZQb3NzaWJsZSgpCiB2b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIo
Q01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogewogICAgIEFTU0VSVChbbV92aWRlb0Fzc2V0V3Jp
dGVySW5wdXQgaXNSZWFkeUZvck1vcmVNZWRpYURhdGFdKTsKLSAgICBtX2xhc3RWaWRlb1ByZXNl
bnRhdGlvblRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZm
ZXIpOwotICAgIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lID0gQ01TYW1wbGVCdWZmZXJHZXREZWNv
ZGVUaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUgPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7CisgICAg
bV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGlt
ZVN0YW1wKGJ1ZmZlcik7CiAgICAgbV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzID0gdHJ1ZTsKIAog
ICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKSBhcHBlbmRTYW1wbGVCdWZmZXI6YnVm
ZmVyXTsKQEAgLTMxNCwxNyArMzE3LDE3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCkKIAogc3RhdGljIGlubGluZSB2b2lk
IGFwcGVuZEVuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uTWFya2VyKEFWQXNzZXRXcml0ZXJJbnB1
dCAqYXNzZXRXcml0ZXJJbnB1dCwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1l
IGRlY29kaW5nVGltZVN0YW1wKQogewotICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZv
ID0geyBrQ01UaW1lSW52YWxpZCwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkZWNvZGluZ1RpbWVT
dGFtcH07CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IFBBTDo6a0NNVGlt
ZUludmFsaWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZGVjb2RpbmdUaW1lU3RhbXB9OwogCiAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyID0gTlVMTDsKLSAgICBhdXRvIGVycm9yID0gQ01T
YW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgdHJ1ZSwgTlVMTCwg
TlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5VTEwsICZidWZmZXIpOworICAgIGF1
dG8gZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IE5VTEwsIHRydWUsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEsICZ0aW1pbmdJbmZvLCAwLCBOVUxM
LCAmYnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBhcHBlbmRFbmRzUHJldmlv
dXNTYW1wbGVEdXJhdGlvbk1hcmtlciBmYWlsZWQgQ01TYW1wbGVCdWZmZXJDcmVhdGUgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHNhbXBsZUJ1ZmZl
ciA9IGFkb3B0Q0YoYnVmZmVyKTsKIAotICAgIENNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIu
Z2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVy
YXRpb24sIGtDRkJvb2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUp
OworICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlci5nZXQoKSwgUEFMOjprQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uLCBrQ0ZC
b29sZWFuVHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKICAgICBpZiAo
IVthc3NldFdyaXRlcklucHV0IGFwcGVuZFNhbXBsZUJ1ZmZlcjpzYW1wbGVCdWZmZXIuZ2V0KCld
KQogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyIGFwcGVuZFNhbXBsZUJ1ZmZlciB0byB3cml0ZXIgaW5wdXQgZmFpbGVkIik7
CiB9CkBAIC0zODIsMTggKzM4NSwxOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjpmbHVzaENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKEZ1bmN0aW9uPHZvaWQoKT4mJgogc3RhdGlj
IGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNvcHlTYW1wbGVCdWZmZXJXaXRo
Q3VycmVudFRpbWVTdGFtcChDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbEJ1ZmZlciwgQ01UaW1l
IHN0YXJ0VGltZSkKIHsKICAgICBDTUl0ZW1Db3VudCBjb3VudCA9IDA7Ci0gICAgQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIsIDAsIG5pbCwgJmNv
dW50KTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9y
aWdpbmFsQnVmZmVyLCAwLCBuaWwsICZjb3VudCk7CiAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1p
bmdJbmZvPiB0aW1lSW5mbyhjb3VudCk7Ci0gICAgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIsIGNvdW50LCB0aW1lSW5mby5kYXRhKCksICZjb3Vu
dCk7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmln
aW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50KTsKIAogICAgIGZvciAo
YXV0byBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgdGltZUluZm9baV0uZGVjb2Rl
VGltZVN0YW1wID0ga0NNVGltZUludmFsaWQ7CisgICAgICAgIHRpbWVJbmZvW2ldLmRlY29kZVRp
bWVTdGFtcCA9IFBBTDo6a0NNVGltZUludmFsaWQ7CiAgICAgICAgIHRpbWVJbmZvW2ldLnByZXNl
bnRhdGlvblRpbWVTdGFtcCA9IHN0YXJ0VGltZTsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBuZXdCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01TYW1wbGVC
dWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5h
bEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1ZmZlcikpIHsKKyAgICBpZiAo
YXV0byBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEo
KSwgJm5ld0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0s
ICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRo
TmV3VGltaW5nIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CkBAIC00MDQsNyArNDA3LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAg
ICBpZiAoIW1fZmlyc3RWaWRlb0ZyYW1lKSB7CiAgICAgICAgIG1fZmlyc3RWaWRlb0ZyYW1lID0g
dHJ1ZTsKLSAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gQ01DbG9ja0dldFRpbWUoQ01DbG9j
a0dldEhvc3RUaW1lQ2xvY2soKSk7CisgICAgICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IFBBTDo6
Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKICAgICAgICAg
aWYgKHNhbXBsZS52aWRlb1JvdGF0aW9uKCkgIT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246
Ok5vbmUgfHwgc2FtcGxlLnZpZGVvTWlycm9yZWQoKSkgewogICAgICAgICAgICAgbV92aWRlb1Ry
YW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVJvdGF0aW9uKHN0YXRpY19jYXN0PGludD4o
c2FtcGxlLnZpZGVvUm90YXRpb24oKSkgKiBNX1BJIC8gMTgwKTsKICAgICAgICAgICAgIGlmIChz
YW1wbGUudmlkZW9NaXJyb3JlZCgpKQpAQCAtNDEyLDggKzQxNSw4IEBAIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBz
YW1wbGUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvIHNhbXBsZVRpbWUgPSBDTVRpbWVT
dWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1
bWVkVmlkZW9UaW1lKTsKLSAgICBzYW1wbGVUaW1lID0gQ01UaW1lQWRkKHNhbXBsZVRpbWUsIG1f
Y3VycmVudFZpZGVvRHVyYXRpb24pOworICAgIGF1dG8gc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1l
U3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2Nr
KCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgIHNhbXBsZVRpbWUgPSBQQUw6OkNNVGltZUFk
ZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKICAgICBpZiAoYXV0byBidWZm
ZXJXaXRoQ3VycmVudFRpbWUgPSBjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXAo
c2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCBzYW1wbGVUaW1l
KSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihidWZmZXJXaXRo
Q3VycmVudFRpbWUuZ2V0KCkpOwogfQpAQCAtNDIyLDcgKzQyNSw3IEBAIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1w
bGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgc2Ft
cGxlQ291bnQpKQogICAgICAgICBtX2F1ZGlvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKHNh
bXBsZUJ1ZmZlci5nZXQoKSk7Ci0gICAgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lID0gQ01UaW1l
QWRkKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgdG9DTVRpbWUoTWVkaWFUaW1lKHNhbXBsZUNv
dW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7CisgICAgbV9jdXJyZW50QXVkaW9TYW1w
bGVUaW1lID0gUEFMOjpDTVRpbWVBZGQobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBQQUw6OnRv
Q01UaW1lKE1lZGlhVGltZShzYW1wbGVDb3VudCwgZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpKSkp
OwogfQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpmaW5pc2hlZEZsdXNoaW5n
U2FtcGxlcygpCkBAIC01MjMsMTAgKzUyNiwxMCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjpjb21wbGV0ZUZldGNoRGF0YSgpCiB7CiAgICAgYXV0byBjdXJyZW50VGltZUNvZGUg
PSBtX3RpbWVDb2RlOwogICAgIGlmIChtX2hhc0F1ZGlvKQotICAgICAgICBtX3RpbWVDb2RlID0g
Q01UaW1lR2V0U2Vjb25kcyhtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUpOworICAgICAgICBtX3Rp
bWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gc2FtcGxlVGltZSA9IENNVGltZVN1YnRyYWN0KENN
Q2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1Rp
bWUpOwotICAgICAgICBtX3RpbWVDb2RlID0gQ01UaW1lR2V0U2Vjb25kcyhDTVRpbWVBZGQoc2Ft
cGxlVGltZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbikpOworICAgICAgICBhdXRvIHNhbXBsZVRp
bWUgPSBQQUw6OkNNVGltZVN1YnRyYWN0KFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2Nr
R2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICAgICAgbV90aW1l
Q29kZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhQQUw6OkNNVGltZUFkZChzYW1wbGVUaW1lLCBt
X2N1cnJlbnRWaWRlb0R1cmF0aW9uKSk7CiAgICAgfQogICAgIG1fZmV0Y2hEYXRhQ29tcGxldGlv
bkhhbmRsZXIodGFrZURhdGEoKSwgY3VycmVudFRpbWVDb2RlKTsKIH0KQEAgLTU1MCwxMyArNTUz
LDEzIEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjp0
YWtlRGF0YSgpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnBhdXNlKCkKIHsK
LSAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gQ01UaW1lU3VidHJhY3QoQ01DbG9ja0dldFRp
bWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7Ci0gICAg
bV9jdXJyZW50VmlkZW9EdXJhdGlvbiA9IENNVGltZUFkZChyZWNvcmRpbmdEdXJhdGlvbiwgbV9j
dXJyZW50VmlkZW9EdXJhdGlvbik7CisgICAgYXV0byByZWNvcmRpbmdEdXJhdGlvbiA9IFBBTDo6
Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGlt
ZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgIG1fY3VycmVudFZpZGVvRHVyYXRp
b24gPSBQQUw6OkNNVGltZUFkZChyZWNvcmRpbmdEdXJhdGlvbiwgbV9jdXJyZW50VmlkZW9EdXJh
dGlvbik7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnJlc3VtZSgpCiB7
Ci0gICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RU
aW1lQ2xvY2soKSk7CisgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpDTUNsb2NrR2V0VGlt
ZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogfQogCiBjb25zdCBTdHJpbmcmIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjptaW1lVHlwZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IDc2ZDU2ZDdiOGQxM2M3
MmVhMzlmYzM0OTlkMTc5ODk5NzE3ZjBlNzguLmQwNzYwZjA3ZTM3MDgxMjdmOWRlMmVmYWY5MmYw
ZTA3NzJmZDM4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yLm1tCkBAIC0zNCwxMiArMzQsMTEgQEAKICNpbXBvcnQgPFZpZGVvVG9vbGJveC9WVENv
bXByZXNzaW9uU2Vzc2lvbi5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKKyNpbXBv
cnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NmL1ZpZGVvVG9v
bGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKLQogc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoU3RyaW5nIG1pbWVUeXBlLCBDTUJ1ZmZl
clF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsK
ICAgICBhdXRvIHByb2ZpbGUgPSBQcm9maWxlOjpCYXNlbGluZTsKQEAgLTY5LDcgKzY4LDcgQEAg
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Io
Q01WaWRlb0NvZGVjVHlwZSBvdXRwdXQKIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgaWYgKG1fdnRTZXNzaW9uKSB7Ci0g
ICAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShtX3Z0U2Vzc2lvbi5nZXQoKSk7
CisgICAgICAgIFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9u
LmdldCgpKTsKICAgICAgICAgbV92dFNlc3Npb24gPSBudWxscHRyOwogICAgIH0KIH0KQEAgLTc3
LDEyICs3NiwxMiBAQCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IoKQogYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRp
YWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJh
Y2tPYmplY3QpCiB7CiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBvdXRwdXRCdWZmZXJRdWV1ZTsKLSAg
ICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygp
LCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVm
ZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFMOjpDTUJ1ZmZlclF1ZXVl
R2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJRdWV1
ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgdW5hYmxlIHRvIGNyZWF0ZSBidWZmZXIgcXVldWUgJWQiLCBlcnJv
cik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1
ZSA9IG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlciht
X291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1
ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwp
OworICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2Vy
X1doZW5EYXRhQmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1f
aXNFbmNvZGluZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBAIC05NiwxMCArOTUsMTAgQEAg
dm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNldEJpdHNQZXJTZWNvbmQodW5zaWdu
ZWQgYml0UmF0ZSkKIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpmaW5pc2goKQog
ewogICAgIG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzXSB7Ci0gICAg
ICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRlRnJhbWVzKG1fdnRT
ZXNzaW9uLmdldCgpLCBrQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6
OlZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92dFNlc3Npb24uZ2V0KCksIFBB
TDo6a0NNVGltZUludmFsaWQpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwg
TWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNl
c3Npb25Db21wbGV0ZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAotICAgICAgICBl
cnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0
KCkpOworICAgICAgICBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9v
dXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVy
cm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1
ZXVlTWFya0VuZE9mRGF0YSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAogICAgICAgICBtX2lz
RW5jb2RpbmcgPSBmYWxzZTsKQEAgLTExNCw3ICsxMTMsNyBAQCB2b2lkIFZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6dmlkZW9Db21wcmVzc2lvbkNhbGxiYWNrKHZvaWQgKnJlZkNvbiwgdm9p
ZCosCiAKICAgICBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgKmNvbXByZXNzb3IgPSBzdGF0
aWNfY2FzdDxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IqPihyZWZDb24pOwogCi0gICAgYXV0
byBlcnJvciA9IENNQnVmZmVyUXVldWVFbnF1ZXVlKGNvbXByZXNzb3ItPm1fb3V0cHV0QnVmZmVy
UXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1
ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsK
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CiB9CiAKQEAgLTEzMCw1MyArMTI5LDUzIEBAIENGU3RyaW5nUmVmIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dnRQcm9maWxlTGV2ZWwoKSBjb25zdAogewogICAgIHN3aXRjaCAo
bV9wcm9maWxlKSB7CiAgICAgY2FzZSBQcm9maWxlOjpCYXNlbGluZToKLSAgICAgICAgcmV0dXJu
IGtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbDsKKyAgICAgICAgcmV0dXJu
IFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOwogICAgIGNhc2Ug
UHJvZmlsZTo6SGlnaDoKLSAgICAgICAgcmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hf
QXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdo
X0F1dG9MZXZlbDsKICAgICBjYXNlIFByb2ZpbGU6Ok1haW46Ci0gICAgICAgIHJldHVybiBrVlRQ
cm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a1ZU
UHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWw7CiAgICAgfQogfQogCiBib29sIFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24pCiB7Ci0gICAgQ01WaWRlb0RpbWVu
c2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMo
Zm9ybWF0RGVzY3JpcHRpb24pOworICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBQ
QUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRp
b24pOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZp
Y2F0aW9ucyA9IG5pbDsKICNlbHNlCi0gICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVyU3BlY2lmaWNh
dGlvbnMgPSBAeyhfX2JyaWRnZSBOU1N0cmluZyAqKWtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRp
b25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlcjpAWUVTfTsKKyAgICBOU0Rp
Y3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9IEB7KF9fYnJpZGdlIE5TU3RyaW5nICop
UEFMOjprVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0
ZWRWaWRlb0VuY29kZXI6QFlFU307CiAjZW5kaWYKIAogICAgIFZUQ29tcHJlc3Npb25TZXNzaW9u
UmVmIHZ0U2Vzc2lvbjsKLSAgICBhdXRvIGVycm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25DcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWln
aHQsIG1fb3V0cHV0Q29kZWNUeXBlLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKWVuY29kZXJT
cGVjaWZpY2F0aW9ucywgTlVMTCwgTlVMTCwgdmlkZW9Db21wcmVzc2lvbkNhbGxiYWNrLCB0aGlz
LCAmdnRTZXNzaW9uKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lv
bkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25z
LmhlaWdodCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5j
b2RlclNwZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ss
IHRoaXMsICZ2dFNlc3Npb24pOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXBy
ZXNzaW9uU2Vzc2lvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0
dXJuIE5POwogICAgIH0KICAgICBtX3Z0U2Vzc2lvbiA9IGFkb3B0Q0YodnRTZXNzaW9uKTsKIAot
ICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJvb2xlYW5UcnVlKTsKKyAgICBlcnJv
ciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJvb2xlYW5UcnVlKTsKICAgICBSRUxFQVNF
X0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFs
VGltZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBlcnJvciA9IHNldENvbXByZXNzaW9u
U2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgbV9tYXhLZXlGcmFtZUludGVydmFsRHVy
YXRpb24pOworICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNl
c3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUlu
dGVydmFsRHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uKTsKICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9N
YXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAg
ZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwg
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSwgbV9leHBlY3RlZEZy
YW1lUmF0ZSk7CisgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0
U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJh
bWVSYXRlLCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihl
cnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9u
U2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAotICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxl
dmVsLCB2dFByb2ZpbGVMZXZlbCgpKTsKKyAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5
KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmls
ZUxldmVsLCB2dFByb2ZpbGVMZXZlbCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
VlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2
ZWwgZmFpbGVkIHdpdGggJWQgZm9yIHByb2ZpbGUgJWQiLCBlcnJvciwgbV9wcm9maWxlKTsKICAg
ICAgICAgaWYgKG1fcHJvZmlsZSAhPSBQcm9maWxlOjpCYXNlbGluZSkgewotICAgICAgICAgICAg
ZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2Vs
aW5lX0F1dG9MZXZlbCk7CisgICAgICAgICAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5
KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmls
ZUxldmVsLCBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCk7CiAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Np
b25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZmFpbGVkIHdpdGggJWQgZm9yIGRlZmF1bHQgcHJv
ZmlsZSIsIGVycm9yKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChtX291dHB1dEJpdFJh
dGUpIHsKLSAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0
U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwg
Km1fb3V0cHV0Qml0UmF0ZSk7CisgICAgICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9u
UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9BdmVyYWdlQml0UmF0ZSwgKm1fb3V0cHV0Qml0UmF0ZSk7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VC
aXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgIH0KIAotICAgIGVycm9yID0gVlRD
b21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMobV92dFNlc3Npb24uZ2V0KCkp
OworICAgIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZy
YW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3Is
IE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25T
ZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAg
ICAgcmV0dXJuIFlFUzsKQEAgLTE4NSwxNCArMTg0LDE0IEBAIGJvb2wgVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvCiB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZl
cihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgaWYgKCFtX3Z0U2Vzc2lvbikgewot
ICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Npb24oQ01TYW1wbGVCdWZmZXJHZXRGb3Jt
YXREZXNjcmlwdGlvbihidWZmZXIpKSkKKyAgICAgICAgaWYgKCFpbml0Q29tcHJlc3Npb25TZXNz
aW9uKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihidWZmZXIpKSkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0gQ01TYW1w
bGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihidWZmZXIpOwotICAgIGF1dG8gcHJlc2VudGF0aW9uVGlt
ZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsK
LSAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZmZXIpOwot
ICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lKG1fdnRTZXNz
aW9uLmdldCgpLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwg
TlVMTCwgdGhpcywgTlVMTCk7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRJbWFnZUJ1ZmZlcihidWZmZXIpOworICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZVN0
YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIp
OworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oYnVm
ZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZy
YW1lKG1fdnRTZXNzaW9uLmdldCgpLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1w
LCBkdXJhdGlvbiwgTlVMTCwgdGhpcywgTlVMTCk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYo
ZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJl
c3Npb25TZXNzaW9uRW5jb2RlRnJhbWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiB9CiAKQEAg
LTIwOCwxMiArMjA3LDEyIEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphZGRT
YW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogCiBDTVNhbXBsZUJ1ZmZlclJl
ZiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpCiB7
Ci0gICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZm
ZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICByZXR1cm4g
KENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVH
ZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CiB9CiAKIFJldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2Ft
cGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNv
bnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVm
ZmVyUXVldWUuZ2V0KCkpKSkpOworICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJl
ZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbiht
X291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKIH0KIAogdW5zaWduZWQgVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpiaXRSYXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcAppbmRl
eCBjM2ZlODIxYjljNTIwYzkyMjRlNWRlODg4ZTUxOGMzMTk2ZjMxY2I1Li5hMDI0MDg0YzI0ZTZk
MzYzOTYwOGE2NDY1MmVjYzVkNmQ5ZWZhYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklu
dGVybmFsVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwCkBAIC00
Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCIK
ICNlbmRpZgogCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5j
bHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTEyMyw5ICsxMjQsOSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0KCkKICAgICBpZiAoIW1fcmVtb3RlSU9Vbml0KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1f
cmVtb3RlSU9Vbml0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb091dHB1dFVu
aXRTdGFydChtX3JlbW90ZUlPVW5pdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0IEF1
ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKLSAgICAgICAg
QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOworICAgICAgICBQ
QUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKICAgICAg
ICAgbV9yZW1vdGVJT1VuaXQgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MTM5LDExICsxNDAsMTEgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0OjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1faXNTdGFy
dGVkKSB7Ci0gICAgICAgIEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJT1VuaXQpOworICAg
ICAgICBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJT1VuaXQpOwogICAgICAgICBt
X2lzU3RhcnRlZCA9IGZhbHNlOwogICAgIH0KIAotICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VE
aXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKKyAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VE
aXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKICAgICBtX3JlbW90ZUlPVW5pdCA9IG51bGxwdHI7CiB9
CiAKQEAgLTE2MywxNCArMTY0LDE0IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogICAgIGlvVW5p
dERlc2NyaXB0aW9uLmNvbXBvbmVudFN1YlR5cGUgPSBrQXVkaW9Vbml0U3ViVHlwZV9EZWZhdWx0
T3V0cHV0OwogI2VuZGlmCiAKLSAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IEF1ZGlv
Q29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKKyAgICBBdWRp
b0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxs
cHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChpb0NvbXBvbmVudCk7CiAgICAg
aWYgKCFpb0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0
IHVuYWJsZSB0byBmaW5kIHJlbW90ZSBJTyB1bml0IGNvbXBvbmVudCIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgYXV0byBlcnJvciA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXco
aW9Db21wb25lbnQsICZyZW1vdGVJT1VuaXQpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQsICZyZW1vdGVJT1VuaXQpOwogICAgIGlm
IChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0
byBvcGVuIHZwaW8gdW5pdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTc4LDcgKzE3OSw3IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICBVSW50MzIgcGFyYW0gPSAxOwotICAgIGVycm9yID0gQXVkaW9Vbml0
U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxl
SU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7Cisg
ICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlv
T3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAm
cGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IG91dHB1dCwg
ZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTg3LDcgKzE4OCw3IEBA
IHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3Jl
YXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChtX2Rl
dmljZUlEKSB7Ci0gICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9V
bml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNj
b3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7CisgICAgICAg
IGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091
dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAw
LCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKICAgICAgICAgaWYgKGVycm9yKSB7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQg
dW5pdCBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIChpbnQpbV9kZXZpY2VJRCwgKGlu
dCllcnJvciwgKGNoYXIqKSZlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xOTYsMTQg
KzE5NywxNCBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKICNlbmRpZgogCiAgICAgQVVSZW5kZXJD
YWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdDo6cmVuZGVyaW5nQ2FsbGJhY2ssIHRoaXMgfTsKLSAgICBlcnJvciA9
IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1Nl
dFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNp
emVvZihjYWxsYmFjaykpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShy
ZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlv
VW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKICAgICBp
ZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUg
dG8gc2V0IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihvdXRwdXREZXNj
cmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKTsKLSAgICBlcnJvciAgPSBBdWRpb1VuaXRHZXRQ
cm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0
aW9uKCksICZzaXplKTsKKyAgICBlcnJvciAgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KHJl
bW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNj
b3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgJnNp
emUpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9V
bml0IHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9y
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjExLDEzICsyMTIsMTMgQEAgdm9pZCBMb2NhbEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5l
ZWRlZCgpCiAKICAgICBvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLm1TYW1w
bGVSYXRlID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpOwogCi0g
ICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQ
cm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJm91dHB1dERl
c2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIHNpemVvZihvdXRwdXREZXNjcmlwdGlvbi5z
dHJlYW1EZXNjcmlwdGlvbigpKSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3Bl
cnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlv
VW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24o
KSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkpKTsKICAgICBp
ZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUg
dG8gc2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBlcnJvciA9IEF1ZGlvVW5pdEluaXRpYWxpemUocmVtb3Rl
SU9Vbml0KTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1vdGVJT1Vu
aXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9V
bml0IEF1ZGlvVW5pdEluaXRpYWxpemUoKSBmYWlsZWQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCA0Yjc4OGFl
NWFhODdiNzI5ZTViZGNmOWNmNzEzODEyYzY3NzBhMzI1Li5lMmUwMGIzOTdiMTM5YzQ4MmZmMDNj
MDEyNjYyYTAwYzc0Y2FjMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC01
MSw3ICs1MSw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBAaW50ZXJmYWNl
IFdlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVyIDogTlNPYmplY3Q8QVZDYXB0dXJl
VmlkZW9EYXRhT3V0cHV0U2FtcGxlQnVmZmVyRGVsZWdhdGU+IHsKICAgICBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZSogbV9jYWxsYmFjazsKQEAgLTM1MSwxMCArMzUwLDEwIEBAIHZvaWQgQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKCkKICAgICAgICAgICAgIGlm
IChmcmFtZVJhdGVSYW5nZSkgewogICAgICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lUmF0ZSA9
IGNsYW1wVG8obV9jdXJyZW50RnJhbWVSYXRlLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZVJhdGUs
IGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lUmF0ZSk7CiAKLSAgICAgICAgICAgICAgICBhdXRvIGZy
YW1lRHVyYXRpb24gPSBDTVRpbWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2Uu
bWluRnJhbWVEdXJhdGlvbikgPCAwKQorICAgICAgICAgICAgICAgIGF1dG8gZnJhbWVEdXJhdGlv
biA9IFBBTDo6Q01UaW1lTWFrZSgxLCBtX2N1cnJlbnRGcmFtZVJhdGUpOworICAgICAgICAgICAg
ICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2Uu
bWluRnJhbWVEdXJhdGlvbikgPCAwKQogICAgICAgICAgICAgICAgICAgICBmcmFtZUR1cmF0aW9u
ID0gZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbjsKLSAgICAgICAgICAgICAgICBlbHNl
IGlmIChDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1l
RHVyYXRpb24pID4gMCkKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChQQUw6OkNNVGltZUNvbXBh
cmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlvbikgPiAwKQog
ICAgICAgICAgICAgICAgICAgICBmcmFtZUR1cmF0aW9uID0gZnJhbWVSYXRlUmFuZ2UubWF4RnJh
bWVEdXJhdGlvbjsKIAogICAgICAgICAgICAgICAgIEFMV0FZU19MT0dfSUYobG9nZ2VyUHRyKCks
IExPR0lERU5USUZJRVIsICJzZXR0aW5nIGZyYW1lIHJhdGUgdG8gIiwgbV9jdXJyZW50RnJhbWVS
YXRlLCAiLCBkdXJhdGlvbiAiLCBQQUw6OnRvTWVkaWFUaW1lKGZyYW1lRHVyYXRpb24pKTsKQEAg
LTQzNCw2ICs0MzMsOCBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24o
KQogCiBBVkZyYW1lUmF0ZVJhbmdlKiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZnJhbWVEdXJhdGlv
bkZvckZyYW1lUmF0ZShkb3VibGUgcmF0ZSkKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAv
LyBGb3IgQ01USU1FX0NPTVBBUkVfSU5MSU5FCisKICAgICBBVkZyYW1lUmF0ZVJhbmdlICpiZXN0
RnJhbWVSYXRlUmFuZ2UgPSBuaWw7CiAgICAgZm9yIChBVkZyYW1lUmF0ZVJhbmdlICpmcmFtZVJh
dGVSYW5nZSBpbiBbW2RldmljZSgpIGFjdGl2ZUZvcm1hdF0gdmlkZW9TdXBwb3J0ZWRGcmFtZVJh
dGVSYW5nZXNdKSB7CiAgICAgICAgIGlmIChmcmFtZVJhdGVSYW5nZUluY2x1ZGVzUmF0ZSh7IFtm
cmFtZVJhdGVSYW5nZSBtaW5GcmFtZVJhdGVdLCBbZnJhbWVSYXRlUmFuZ2UgbWF4RnJhbWVSYXRl
XSB9LCByYXRlKSkgewpAQCAtNTk4LDcgKzU5OSw3IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OmdlbmVyYXRlUHJlc2V0cygpCiAgICAgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+IHByZXNl
dHM7CiAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2VGb3JtYXQqIGZvcm1hdCBpbiBbZGV2aWNlKCkg
Zm9ybWF0c10pIHsKIAotICAgICAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXQuZm9ybWF0RGVzY3JpcHRp
b24pOworICAgICAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7
CiAgICAgICAgIEludFNpemUgc2l6ZSA9IHsgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5o
ZWlnaHQgfTsKICAgICAgICAgYXV0byBpbmRleCA9IHByZXNldHMuZmluZE1hdGNoaW5nKFsmc2l6
ZV0oYXV0byYgcHJlc2V0KSB7CiAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PSBwcmVzZXQtPnNp
emU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKaW5kZXggNmUyNmM4ZmE0ZWNk
MzBhYzFlNTJmZWMzOGFmNTdkMGUzM2Q5YmMyNC4uZTE1NTQ2MmY1MTgxNTg4YmEzYmM5NDU2YzZi
NmFlOWFmZTIxYjVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcApAQCAt
MTksNyArMTksNyBAQAogICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogKElOQ0xVRElORyBORUdMSUdFUEFMOjpOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIApA
QCAtMzYsNyArMzYsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29s
IGdldERldmljZUluZm8odWludDMyX3QgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGUgdHlwZSwgU3RyaW5nJiBwZXJzaXN0ZW50SUQsIFN0cmluZyYgbGFiZWwpCiB7CkBAIC0yMDUs
NyArMjA0LDcgQEAgUmV0YWluUHRyPENNQ2xvY2tSZWY+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6
OmRldmljZUNsb2NrKCkKICAgICAgICAgcmV0dXJuIG1fZGV2aWNlQ2xvY2s7CiAKICAgICBDTUNs
b2NrUmVmIGNsb2NrOwotICAgIGF1dG8gZXJyID0gQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHBlcnNpc3RlbnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCks
ICZjbG9jayk7CisgICAgYXV0byBlcnIgPSBQQUw6OkNNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBwZXJzaXN0ZW50SWQoKS5jcmVhdGVDRlN0cmluZygpLmdldCgp
LCAmY2xvY2spOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKCVw
KSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwg
dGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMDNmM2U2MmEyNjM3YzNlOTAx
YmFmNjk0ZDNjNTI2NWVmYTc0YWViMi4uZjRiMzY1ODk0ZDM3Y2Q5NGZmMjFiN2ZiNTRmZGIyNjQx
ZjM2ZmU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDgsNiAr
NDgsOCBAQAogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2luY2x1ZGUgPHBh
bC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTU3LDcgKzU5LDYgQEAK
ICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiAj
aWYgUExBVEZPUk0oTUFDKQogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKQpAQCAtMjAzLDcgKzIwNCw3IEBAIE9T
U3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICBtX0RUU0Nv
bnZlcnNpb25SYXRpbyA9IDFlLTkgKiBzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5u
dW1lcikgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5kZW5vbSk7CiAKICAgICBB
dWRpb0NvbXBvbmVudERlc2NyaXB0aW9uIGlvVW5pdERlc2NyaXB0aW9uID0geyBrQXVkaW9Vbml0
VHlwZV9PdXRwdXQsIGtBdWRpb1VuaXRTdWJUeXBlX1ZvaWNlUHJvY2Vzc2luZ0lPLCBrQXVkaW9V
bml0TWFudWZhY3R1cmVyX0FwcGxlLCAwLCAwIH07Ci0gICAgQXVkaW9Db21wb25lbnQgaW9Db21w
b25lbnQgPSBBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlwdGlv
bik7CisgICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25lbnQgPSBQQUw6OkF1ZGlvQ29tcG9uZW50
RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKICAgICBBU1NFUlQoaW9Db21w
b25lbnQpOwogICAgIGlmICghaW9Db21wb25lbnQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJs
ZSB0byBmaW5kIHZwaW8gdW5pdCBjb21wb25lbnQiLCB0aGlzKTsKQEAgLTIxMiw3ICsyMTMsNyBA
QCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICNpZiAh
TE9HX0RJU0FCTEVECiAgICAgQ0ZTdHJpbmdSZWYgbmFtZSA9IG51bGxwdHI7Ci0gICAgQXVkaW9D
b21wb25lbnRDb3B5TmFtZShpb0NvbXBvbmVudCwgJm5hbWUpOworICAgIFBBTDo6QXVkaW9Db21w
b25lbnRDb3B5TmFtZShpb0NvbXBvbmVudCwgJm5hbWUpOwogICAgIGlmIChuYW1lKSB7CiAgICAg
ICAgIG1faW9Vbml0TmFtZSA9IG5hbWU7CiAgICAgICAgIENGUmVsZWFzZShuYW1lKTsKQEAgLTIy
MCw3ICsyMjEsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCgpCiAgICAgfQogI2VuZGlmCiAKLSAgICBhdXRvIGVyciA9IEF1ZGlvQ29tcG9uZW50SW5zdGFu
Y2VOZXcoaW9Db21wb25lbnQsICZtX2lvVW5pdCk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQsICZtX2lvVW5pdCk7CiAgICAgaWYgKGVy
cikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRV
bml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIG9wZW4gdnBpbyB1bml0LCBlcnJvciAl
ZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4g
ZXJyOwpAQCAtMjI4LDEzICsyMjksMTMgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c2V0dXBBdWRpb1VuaXQoKQogCiAgICAgaWYgKCFlbmFibGVFY2hvQ2FuY2VsbGF0aW9uKCkpIHsK
ICAgICAgICAgdWludDMyX3QgcGFyYW0gPSAwOwotICAgICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJvY2Vzc2luZ0VuYWJs
ZUFHQywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBh
cmFtKSk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQs
IGtBVVZvaWNlSU9Qcm9wZXJ0eV9Wb2ljZVByb2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1VuaXRT
Y29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgICAgICBp
ZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIGF1dG9t
YXRpYyBnYWluIGNvbnRyb2wsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hh
ciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgICAgICB9CiAgICAgICAgIHBh
cmFtID0gMTsKLSAgICAgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtB
VVZvaWNlSU9Qcm9wZXJ0eV9CeXBhc3NWb2ljZVByb2Nlc3NpbmcsIGtBdWRpb1VuaXRTY29wZV9H
bG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgICAgICBlcnIgPSBQ
QUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfQnlw
YXNzVm9pY2VQcm9jZXNzaW5nLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBh
cmFtLCBzaXplb2YocGFyYW0pKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1Vu
aXQoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IGVjaG8gY2FuY2VsbGF0aW9uLCBlcnJvciAl
ZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0
dXJuIGVycjsKQEAgLTI0Myw3ICsyNDQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0
OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVpbnQz
Ml90IHBhcmFtID0gMTsKLSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwg
a0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQs
IGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgIGVyciA9IFBBTDo6QXVkaW9V
bml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJ
Tywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0p
KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gZW5hYmxlIHZw
aW8gdW5pdCBpbnB1dCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikm
ZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTI1NSw3ICsyNTYsNyBAQCBPU1N0YXR1cyBD
b3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgICAgICAgICByZXR1cm4g
ZXJyOwogICAgIH0KIAotICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBr
QXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0ds
b2JhbCwgaW5wdXRCdXMsICZtX2NhcHR1cmVEZXZpY2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmlj
ZUlEKSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1
ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9i
YWwsIGlucHV0QnVzLCAmbV9jYXB0dXJlRGV2aWNlSUQsIHNpemVvZihtX2NhcHR1cmVEZXZpY2VJ
RCkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBzZXQgdnBp
byB1bml0IGNhcHR1cmUgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50
KW1fY2FwdHVyZURldmljZUlELCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1
cm4gZXJyOwpAQCAtMjcwLDcgKzI3MSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6
OnNldHVwQXVkaW9Vbml0KCkKICAgICBpZiAoZXJyKQogICAgICAgICByZXR1cm4gZXJyOwogCi0g
ICAgZXJyID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShtX2lvVW5pdCk7CisgICAgZXJyID0gUEFMOjpB
dWRpb1VuaXRJbml0aWFsaXplKG1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9V
bml0KCVwKSBBdWRpb1VuaXRJbml0aWFsaXplKCkgZmFpbGVkLCBlcnJvciAlZCAoJS40cykiLCB0
aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjky
LDcgKzI5Myw3IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6dW5kdWNrKCkKIE9TU3RhdHVz
IENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKIHsKICAgICBB
VVJlbmRlckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBtaWNyb3Bob25lQ2FsbGJhY2ssIHRo
aXMgfTsKLSAgICBhdXRvIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVk
aW9PdXRwdXRVbml0UHJvcGVydHlfU2V0SW5wdXRDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0ds
b2JhbCwgaW5wdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgYXV0byBl
cnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0
UHJvcGVydHlfU2V0SW5wdXRDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRC
dXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1
cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgbWljIHByb2MsIGVy
cm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJl
dHVybiBlcnI7CkBAIC0zMDEsMTQgKzMwMiwxNCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRV
bml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uIG1pY3JvcGhvbmVQcm9jRm9ybWF0ID0geyB9OwogCiAgICAgVUludDMyIHNpemUgPSBz
aXplb2YobWljcm9waG9uZVByb2NGb3JtYXQpOwotICAgIGVyciA9IEF1ZGlvVW5pdEdldFByb3Bl
cnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0
U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7Cisg
ICAgZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFBy
b3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZt
aWNyb3Bob25lUHJvY0Zvcm1hdCwgJnNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWlj
cm9waG9uZVByb2MoJXApIHVuYWJsZSB0byBnZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9y
ICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVy
biBlcnI7CiAgICAgfQogCiAgICAgbWljcm9waG9uZVByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBz
YW1wbGVSYXRlKCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtB
dWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlu
cHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsIHNpemUpOworICAgIGVyciA9IFBBTDo6QXVk
aW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3Jt
YXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3Jt
YXQsIHNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXApIHVu
YWJsZSB0byBzZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMs
IChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0zMjMsNyAr
MzI0LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9u
ZVByb2MoKQogT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclBy
b2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IHNwZWFrZXJD
YWxsYmFjaywgdGhpcyB9OwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNj
b3BlX0lucHV0LCBvdXRwdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAg
YXV0byBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0
UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0
QnVzLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnIpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmln
dXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywg
ZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAg
cmV0dXJuIGVycjsKQEAgLTMzMiwxNCArMzMzLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24gc3BlYWtlclByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVv
ZihzcGVha2VyUHJvY0Zvcm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9J
bnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBQ
QUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3Ry
ZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9j
Rm9ybWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkg
dW5hYmxlIHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlz
LCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAog
ICAgIHNwZWFrZXJQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOwotICAgIGVy
ciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3Ry
ZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9j
Rm9ybWF0LCBzaXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9V
bml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5w
dXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9ybWF0LCBzaXplKTsKICAgICBpZiAoZXJyKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6
OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3Jt
YXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAg
ICAgIHJldHVybiBlcnI7CkBAIC00NTksNyArNDYwLDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRV
bml0OjpjbGVhbnVwQXVkaW9Vbml0KCkKICAgICB9CiAKICAgICBpZiAobV9pb1VuaXQpIHsKLSAg
ICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9pb1VuaXQpOworICAgICAgICBQ
QUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1faW9Vbml0KTsKICAgICAgICAgbV9p
b1VuaXQgPSBudWxscHRyOwogICAgIH0KIApAQCAtNDc3LDcgKzQ3OCw3IEBAIE9TU3RhdHVzIENv
cmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0dXJu
IDA7CiAKICAgICBpZiAobV9pb1VuaXRTdGFydGVkKSB7Ci0gICAgICAgIGVyciA9IEF1ZGlvT3V0
cHV0VW5pdFN0b3AobV9pb1VuaXQpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5p
dFN0b3AobV9pb1VuaXQpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1ZGlv
VW5pdCglcCkgQXVkaW9PdXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cyki
LCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsK
QEAgLTQ5MCw3ICs0OTEsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZp
Z3VyZUF1ZGlvVW5pdCgpCiAgICAgICAgIHJldHVybiBlcnI7CiAKICAgICBpZiAobV9pb1VuaXRT
dGFydGVkKSB7Ci0gICAgICAgIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsK
KyAgICAgICAgZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAg
ICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1dFVu
aXRTdGFydCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTUxNCw3ICs1MTUsNyBAQCBP
U1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzdGFydEludGVybmFsKCkKIAogICAgIHVuZHVj
aygpOwogCi0gICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOworICAgIGVy
ciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c3RhcnQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRz
KSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIGNsZWFudXBBdWRpb1Vu
aXQoKTsKQEAgLTU1MSw3ICs1NTIsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0b3BJ
bnRlcm5hbCgpCiAgICAgaWYgKCFtX2lvVW5pdCB8fCAhbV9pb1VuaXRTdGFydGVkKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBhdXRvIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQp
OworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OnN0b3AoJXApIEF1ZGlvT3V0cHV0VW5pdFN0b3AgZmFpbGVkIHdpdGggZXJy
b3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtNTY1LDcgKzU2Niw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmRl
ZmF1bHRJbnB1dERldmljZSh1aW50MzJfdCogZGV2aWNlSUQpCiAgICAgQVNTRVJUKG1faW9Vbml0
KTsKIAogICAgIFVJbnQzMiBwcm9wZXJ0eVNpemUgPSBzaXplb2YoKmRldmljZUlEKTsKLSAgICBh
dXRvIGVyciA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0
UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMs
IGRldmljZUlELCAmcHJvcGVydHlTaXplKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0
R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2
aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0
eVNpemUpOwogICAgIGlmIChlcnIpCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSglcCkgdW5hYmxlIHRvIGdl
dCBkZWZhdWx0IGlucHV0IGRldmljZSBJRCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCll
cnIsIChjaGFyKikmZXJyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2Eu
Y3BwCmluZGV4IDNmNGU0ZGNmNDJjMGZhOTNlZjlhYjYyZGQyMmE5N2M1MTM4NzA2NjMuLjU4MmY0
YjI2Y2YxMThjNDk3MWFjZDdkMTgzMDkyMTk3ZTFlNzY4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNsdWRlICJDb3Jl
VmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2Ug
UEFMOwogCiBDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpj
cmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5kZXggYWE3ZmYw
ODc1MDU0MjU4MmYxZWY5MTY3YTgxZTZmYjVhNTQ4ZjE1Mi4uYjg2YjA1ZThjNjY1YmMyZTgwNWYy
N2IzOGIxYTRmZDMzMTNmOTJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAgLTQ0
LDE0ICs0NCwxMCBAQAogI2ltcG9ydCA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CiAj
aW1wb3J0IDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KIAorI2ltcG9ydCA8cGFsL2NmL0F1
ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KIAotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi0KLVNPRlRfTElOSyhBdWRp
b1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1
ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRB
dWRpb0NvbnZlcnRlcikpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IGFsaWduVG8xNkJ5dGVzKHNpemVfdCBzaXplKQog
ewpAQCAtMjIxLDcgKzIxNyw3IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1
cmUoKQogICAgIG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxp
c3Q+KG1fc3RyZWFtRm9ybWF0LCBtX21heGltaXVtRnJhbWVDb3VudCk7CiAKICAgICBDTUZvcm1h
dERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkNyZWF0ZShOVUxMLCAmbV9zdHJlYW1Gb3JtYXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5V
TEwsICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25DcmVhdGUoTlVMTCwgJm1fc3RyZWFtRm9ybWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAm
Zm9ybWF0RGVzY3JpcHRpb24pOwogICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZv
cm1hdERlc2NyaXB0aW9uKTsKIAogICAgIHNpemVfdCBzYW1wbGVDb3VudCA9IDIgKiByYXRlOwpA
QCAtMjQzLDcgKzIzOSw3IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1
ZmZlcnModWludDMyX3QgZnJhbWVDb3VudCkKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
ICAgICBBU1NFUlQobV9mb3JtYXREZXNjcmlwdGlvbik7CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1l
ID0gQ01UaW1lTWFrZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOworICAgIENNVGlt
ZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9zYW1wbGVzRW1pdHRlZCwgc2FtcGxlUmF0
ZSgpKTsKICAgICBtX3NhbXBsZXNFbWl0dGVkICs9IGZyYW1lQ291bnQ7CiAKICAgICBhdWRpb1Nh
bXBsZXNBdmFpbGFibGUoUEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpLCAqbV9hdWRpb0J1ZmZl
ckxpc3QsIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihtX3N0cmVhbUZvcm1hdCksIGZyYW1lQ291
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGIwNTlh
MzI1MWQ4Yjk2NTdiYTkwMTRjNDRmODA2M2FmODI3YjFkNDMuLmI2MGI4ODY2ZmJiODA0ODhjMjNm
ZTJiNTc2OTJiMzBmODdlMzg2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWMubW0KQEAgLTUxLDcgKzUxLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBD
YXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29j
b2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCA1ODA5NGIzNDIwZjM5YzhmMjZjMTc3
N2EyYWVkMDEyM2RiZWEyNjI4Li5hYTY5NmFkZGY3Zjc3OTI1OTE1Mjk1ODNjMjE2MGMxMjQ5MTFk
NTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2Nv
YS5jcHAKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUmVm
PFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
OjpjcmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4m
JiBhdWRpb1RyYWNrLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQpCiB7CkBAIC0xMzEsNyArMTMwLDcg
QEAgdm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKGNvbnN0IHZv
aWQqIGF1ZGlvRGF0YSwgaW50IGJpdHNQZXIKICAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMg
PSAwOwogICAgIH0KIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fbnVtYmVy
T2ZGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGlt
ZU1ha2UobV9udW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgYXV0byBtZWRpYVRpbWUg
PSBQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyArPSBu
dW1iZXJPZkZyYW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hLm1tCmluZGV4IDhkZjhmNjhmNmY3MjQwNDc1ZGJkNDMyMzA2YWEzYTU2OWY2ZTQ4
Y2YuLjBjNzFlMWRiMTBmYTQzN2E3YzAwNDNkMzY0ZjQ0YmY3MjM3MTFjOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTQyLDcgKzQy
LDYgQEAgQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1l
ZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIAogUmVmPFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlOjpjcmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0lu
dGVyZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB0cmFja0lkKQogewpAQCAtMTczLDE5ICsx
NzIsMTkgQEAgdm9pZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZShj
b25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lKQogICAgIH0KIAogICAgIENNU2FtcGxlVGlt
aW5nSW5mbyB0aW1pbmdJbmZvOwotICAgIHRpbWluZ0luZm8ucHJlc2VudGF0aW9uVGltZVN0YW1w
ID0gQ01UaW1lTWFrZShmcmFtZS50aW1lc3RhbXBfdXMoKSwgMTAwMDAwMCk7Ci0gICAgdGltaW5n
SW5mby5kZWNvZGVUaW1lU3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKLSAgICB0aW1pbmdJbmZvLmR1
cmF0aW9uID0ga0NNVGltZUludmFsaWQ7CisgICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1l
U3RhbXAgPSBQQUw6OkNNVGltZU1ha2UoZnJhbWUudGltZXN0YW1wX3VzKCksIDEwMDAwMDApOwor
ICAgIHRpbWluZ0luZm8uZGVjb2RlVGltZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKKyAg
ICB0aW1pbmdJbmZvLmR1cmF0aW9uID0gUEFMOjprQ01UaW1lSW52YWxpZDsKIAogICAgIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbjsKLSAgICBPU1N0YXR1cyBv
c3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsICZmb3JtYXRE
ZXNjcmlwdGlvbik7CisgICAgT1NTdGF0dXMgb3N0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1h
Z2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9z
dGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJ
REVOVElGSUVSLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
IHdpdGggZXJyb3IgIiwgc3RhdGljX2Nhc3Q8aW50Pihvc3RhdHVzKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgb3N0
YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsIGZvcm1hdERlc2NyaXB0
aW9uLCAmdGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7CisgICAgb3N0YXR1cyA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1p
bmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24p
OwogICAgIGlmIChvc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIEVSUk9SX0xPR19JRihsb2dn
ZXJQdHIoKSwgTE9HSURFTlRJRklFUiwgIkZhaWxlZCB0byBjcmVhdGUgdGhlIHNhbXBsZSBidWZm
ZXIgd2l0aCBlcnJvciAiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IDZiZjBjYTQ4
N2RkNjRkYmVmNTM5ZDk0ODgwZjYyOGM3ZmExNjFiZjEuLmUzM2JiNmRhOWRkZGQwMWEwMGQ5OTZm
ZDllZjAyYWM5ODE0YTFlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZUNvY29hLmNwcApAQCAtNDUsNyArNDUsNiBAQCBBTExPV19VTlVTRURfUEFSQU1F
VEVSU19FTkQKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlPiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZWY8TWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU+JiYgdmlkZW9Tb3VyY2UpCiB7CkBAIC04NSw3ICs4NCw3IEBAIHZvaWQg
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1l
ZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgfQogCiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNh
bXBsZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7Ci0gICAg
YXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxC
dWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZv
cm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKICAgICBhdXRvIHBpeGVsRm9ybWF0
VHlwZSA9IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwogCiAg
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNvbnZlcnRlZEJ1ZmZlciA9IHBpeGVsQnVm
ZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KaW5kZXggNzhiYmNhZDEz
OTk4NjJmNTViOTcwYmU0NzdmMjUxNGM0ZjM0ODQ1NC4uMTI5M2RhNTU5ZjkyOWE3YWVlYzU0ZDA3
YWE5YWU0Zjk5NGY5NWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1t
CkBAIC00Niw3ICs0Niw2IEBACiBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENHSW1hZ2UpOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgYm9v
bCBhbnlPZkNHV2luZG93KGNvbnN0IEZ1bmN0aW9uPGJvb2woQ0ZEaWN0aW9uYXJ5UmVmIGluZm8s
IHVuc2lnbmVkIGlkLCBjb25zdCBTdHJpbmcmIHRpdGxlKT4mIHByZWRpY2F0ZSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVk
aWFXcmFwcGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRl
ci9Db3JlTWVkaWFXcmFwcGVkLmNwcAppbmRleCBhMTZkMjQyNTY0MWYzN2ExOWQwYzA5ZTU0YmMz
ZWVmNGFhMjgxOGVhLi4wYmFjMWUyODllNzc3MmVhZTdlNmIzNjk4MTA4NTk0YjdhNjg2ODUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29y
ZU1lZGlhV3JhcHBlZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCkBAIC0zNCwxNyArMzQsMTcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGJvb2wgY3JlYXRlV3JhcHBlcihDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogYmFzZVZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lE
LCBDTUJhc2VPYmplY3RSZWYqIHdyYXBwZXIpCiB7Ci0gICAgcmV0dXJuIENNRGVyaXZlZE9iamVj
dENyZWF0ZShhbGxvY2F0b3IsIGJhc2VWVGFibGUsIGNsYXNzSUQsIHdyYXBwZXIpID09IG5vRXJy
OworICAgIHJldHVybiBQQUw6OkNNRGVyaXZlZE9iamVjdENyZWF0ZShhbGxvY2F0b3IsIGJhc2VW
VGFibGUsIGNsYXNzSUQsIHdyYXBwZXIpID09IG5vRXJyOwogfQogCiB2b2lkKiB3cmFwcGVyU3Rv
cmFnZShDTUJhc2VPYmplY3RSZWYgd3JhcHBlcikKIHsKLSAgICByZXR1cm4gQ01CYXNlT2JqZWN0
R2V0RGVyaXZlZFN0b3JhZ2Uod3JhcHBlcik7CisgICAgcmV0dXJuIFBBTDo6Q01CYXNlT2JqZWN0
R2V0RGVyaXZlZFN0b3JhZ2Uod3JhcHBlcik7CiB9CiAKIGNvbnN0IENNQmFzZVZUYWJsZSogd3Jh
cHBlclZUYWJsZShDTUJhc2VPYmplY3RSZWYgd3JhcHBlcikKIHsKLSAgICByZXR1cm4gQ01CYXNl
T2JqZWN0R2V0VlRhYmxlKHdyYXBwZXIpOworICAgIHJldHVybiBQQUw6OkNNQmFzZU9iamVjdEdl
dFZUYWJsZSh3cmFwcGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRS
ZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhRm9ybWF0UmVhZGVyLmNwcAppbmRleCBjMTg0ZTQ0N2IyY2Q0NDJhODQ3ZWMzMTYyMzM2YjZm
YWY3ODczYzdjLi41ZTc3OGNjMGI3YmRhNzRlM2Y3NWM5OWI1OGJhOGJmYTI1MTcyOTJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFG
b3JtYXRSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1h
dFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgV1RGX0RFQ0xB
UkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpbkZvcm1hdFJlYWRlcik7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IHN0YXRpYyBjb25zdCB2b2lkKiBuZXh0TG9nSWRlbnRpZmllcigpCkBAIC0yNDUsNyArMjQ0LDcg
QEAgT1NTdGF0dXMgTWVkaWFGb3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eShDRlN0cmluZ1JlZiBr
ZXksIENGQWxsb2NhdG9yUmVmIGFsbG9jYXQKICAgICBpZiAobV9kdXJhdGlvbi5pc0luZGVmaW5p
dGUoKSkKICAgICAgICAgcmV0dXJuIGtDTUJhc2VPYmplY3RFcnJvcl9WYWx1ZU5vdEF2YWlsYWJs
ZTsKIAotICAgIGlmIChhdXRvIGxlYWtlZER1cmF0aW9uID0gYWRvcHRDRihDTVRpbWVDb3B5QXNE
aWN0aW9uYXJ5KFBBTDo6dG9DTVRpbWUobV9kdXJhdGlvbiksIGFsbG9jYXRvcikpLmxlYWtSZWYo
KSkgeworICAgIGlmIChhdXRvIGxlYWtlZER1cmF0aW9uID0gYWRvcHRDRihQQUw6OkNNVGltZUNv
cHlBc0RpY3Rpb25hcnkoUEFMOjp0b0NNVGltZShtX2R1cmF0aW9uKSwgYWxsb2NhdG9yKSkubGVh
a1JlZigpKSB7CiAgICAgICAgICpyZWludGVycHJldF9jYXN0PENGRGljdGlvbmFyeVJlZio+KHZh
bHVlQ29weSkgPSBsZWFrZWREdXJhdGlvbjsKICAgICAgICAgcmV0dXJuIG5vRXJyOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9N
ZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCmluZGV4IGQ4M2VmY2Y0Nzc1Y2U5
NmIxMmE4NzYwZjhkMTcyMzRhYjBmMWVlN2QuLjRkZTFkMGVkMmE3YmU0OWUzY2JiYjk1ZTM3N2Y1
NDUwOWZhYzA3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcApAQCAt
MjUsMTIgKzI1LDEyIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNZWRpYVNh
bXBsZUJ5dGVSYW5nZS5oIgorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgog
CiAjaWYgRU5BQkxFKFdFQk1fRk9STUFUX1JFQURFUikKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFT
YW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKE1lZGlhU2FtcGxlJiBzYW1wbGUs
IE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291cmNlLCB1aW50NjRfdCB0cmFja0lEKQpAQCAt
NTAsNyArNTAsNyBAQCBNZWRpYVNhbXBsZUJ5dGVSYW5nZTo6TWVkaWFTYW1wbGVCeXRlUmFuZ2Uo
TWVkaWFTYW1wbGUmIHNhbXBsZSwgTVRQbHVnaW5CeXRlU291cgogICAgIGF1dG8gcGxhdGZvcm1T
YW1wbGUgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKTsKICAgICBzd2l0Y2ggKHBsYXRmb3JtU2Ft
cGxlLnR5cGUpIHsKICAgICBjYXNlIFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGU6
Ci0gICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERl
c2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAgICAg
IG1fZm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3Jp
cHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQbGF0Zm9ybVNhbXBsZTo6Qnl0ZVJhbmdlU2FtcGxlVHlwZToKICAgICAg
ICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5ieXRlUmFuZ2VT
YW1wbGUuc2Vjb25kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlh
Rm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKaW5kZXggY2UyOTA2
ZGM0NDI5Yjg3NTE0YTdiMDBjMzIxNzM5MmQ1MDdiM2Y5NS4uZmJlNDIyNzMwNmY4MGY2MWMxMjdj
MzM4YzcxZWZhNTRhMmQyMGM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCkBA
IC00Myw3ICs0Myw2IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoTVRQbHVnaW5TYW1wbGVD
dXJzb3IpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgTWVkaWFUaW1lIGFzc3VtZWREZWNvZGVU
aW1lKGNvbnN0IE1lZGlhVGltZSYgcHJlc2VudGF0aW9uVGltZSwgRGVjb2RlT3JkZXJTYW1wbGVN
YXAmIG1hcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1h
dFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9N
ZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcAppbmRleCA5MDg2MWM4NGRkZTZj
NjZkZGI4Nzc5M2FiMjMwNmE2NmU0ZGViNzMxLi4xZGMxY2FlMDMwMDhlMGEyMGE0NGFjNzNkMWFh
MzcyNTM1N2YyMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCkBAIC00Nyw3ICs0
Nyw2IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoTVRQbHVnaW5UcmFja1JlYWRlcik7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIENNQmFzZUNsYXNzSUQgTWVkaWFUcmFja1JlYWRlcjo6d3JhcHBlckNs
YXNzSUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUHJveHlDb2NvYS5tbQppbmRleCA0Mjc5NjljMjgyMTE4YWMzYzNkNzcwODNlYWI4MmQ5NWZk
MGFiZWZmLi4xNzFkOWNhNDg0OTE1ZDdhZjRlZWFkNjk3MDk5OTFlNTA0ZDQyNzk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2Nv
YS5tbQpAQCAtMjY5LDcgKzI2OSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kQXVkaW9D
b21wb25lbnRSZWdpc3RyYXRpb25zKCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgUEFMOwogCi0g
ICAgaWYgKCFpc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhY2FuTG9h
ZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25z
KCkpCisgICAgaWYgKCFQQUw6OmlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgp
IHx8ICFQQUw6OmNhbkxvYWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEZldGNoU2Vy
dmVyUmVnaXN0cmF0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKICAgICBkaXNwYXRjaF9hc3lu
YyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFV
TFQsIDApLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSAoKSBtdXRhYmxlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VN
YW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRp
YVVzYWdlTWFuYWdlckNvY29hLm1tCmluZGV4IGYzNzg0ZmMyNzEyYjBkZjYzODcxMjA0N2NkNzJm
ODUzMGM3NzcyMzQuLjJhODNkOTcxMGJmNzI1NWU1OTM4NWMxYjFmNjU5MzRjMjYzMDU1NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VN
YW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2Ev
TWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQpAQCAtNDIsNyArNDIsNiBAQCBAZW5kCiBOU19BU1NV
TUVfTk9OTlVMTF9FTkQKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFM
OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBib29sIHVzYWdlVHJhY2tpbmdB
dmFpbGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGMzMjNhNmE3OGI0NTAwNWI2
Nzc0MDg2MmI2MjliMTZmYmI4MGY0MGIuLmY4OTFhNTMzMTQ1MGJmMTdlYWY5NWIwMGUzMThkYWUz
YzczODc1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXggOTViYmQ1NDgzY2ZlYTE3YzkxMmVkNWI1
ZjEzZjQzMWZhZTM3MTI2Ny4uOGE1OWFlMWEyOGZhNDNhOWIyZjIxNTc2MjExODlhZTk3NmQxMDJk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCmluZGV4IDY2YTE5ZTczYTllYjU2NGRjY2UwNzc3ZGMzMjAwZTRjMGJjOTNjNjAu
LjhhY2MzZDBhOGFiMWNjZDRiM2ZlY2FkNjBiM2E2YmMzYWU2NDMwMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTM5Miw3
ICsxMzkyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpjb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3Ry
YXRpb25zKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGEKIHsKICAgICB1c2luZyBuYW1lc3Bh
Y2UgUEFMOwogCi0gICAgaWYgKCFpc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUo
KSB8fCAhY2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJS
ZWdpc3RyYXRpb25zKCkpCisgICAgaWYgKCFQQUw6OmlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29y
a0F2YWlsYWJsZSgpIHx8ICFQQUw6OmNhbkxvYWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBv
bmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvIHJlZ2lzdHJhdGlvbnMgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432108</attachid>
            <date>2021-06-23 16:42:08 -0700</date>
            <delta_ts>2021-06-23 17:21:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210624094206.patch</filename>
            <type>text/plain</type>
            <size>312464</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxYWM3ZDA0MjEwOWQ2
MDlmMGU3ZTdjN2MyNjQ1MGE1ZWJkYjY0Ni4uNWM5ODEyOTYyMDNmMDdlMGFhMTM2MmY1YjRiYjZm
OTlhNjhmOTQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlIG9m
IEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgVW5pZnkgQXVkaW9Ub29sYm94LCBDb3JlTWVkaWEsIFZpZGVvVG9vbGJveCBhbmQg
TWVkaWFUb29sYm94J3MgbWV0aG9kCisgICAgICAgIGRlZmluaXRpb25zIGFuZCB0aGVpciB1c2Us
IGVuc3VyaW5nIHRoYXQgdGhleSBhcmUgYWx3YXlzIHNvZnQtbGlua2VkLgorICAgICAgICBVbmlm
aWVkIGJ1aWxkcyBhbmQgdGhlIGluY29uc2lzdGVudCB1c2Ugb2YgZXhwbGljaXRseSB1c2luZyB0
aGUgUEFMIG5hbWVzcGFjZQorICAgICAgICBjYXVzZWQgc29tZSBjYWxscyB0byBiZSBhbWJpZ3Vv
dXMgbGVhZGluZyB0byBjb21waWxhdGlvbiBlcnJvcnM7IHNvbWUKKyAgICAgICAgY29kZSB3b3Vs
ZCBhbHNvIHVzZSB0aGUgc29mdGxpbmtlZCBtZXRob2RzIHdoaWxlIG90aGVycyBjYWxsZWQgaW50
byB0aGUgZnJhbWV3b3JrcworICAgICAgICBkaXJlY3RseS4KKyAgICAgICAgVG8gZ2V0IGFyb3Vu
ZCB0aG9zZSB3ZSBlbnN1cmUgdGhhdCBhbnkgY2FsbHMgdG8gQXVkaW9Ub29sYm94IG9yIENvcmVN
ZWRpYSBpcyBhbHdheXMgdXNpbmcKKyAgICAgICAgdGhlIGZ1bGx5IHJlc29sdmVkIFBBTCBuYW1l
LgorICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgYHVzaW5nIG5hbWVzcGFjZSBQQUw7YCBzdGF0
ZW1lbnRzIHdoZXJldmVyIGFwcGxpY2FibGUuCisgICAgICAgIE5vIGNoYW5nZSBpbiBvYnNlcnZh
YmxlIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0ZpbGVSZWFkZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3ApOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW06CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3Vy
ZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9T
YW1wbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnBy
ZXBhcmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
SW1hZ2VHZW5lcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwbGF0Zm9ybU1pblRpbWVTZWVrYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6c3RvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
aXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRD
aGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNlZWtJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRl
c3Ryb3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OnZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJl
Zj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0
ZUltYWdlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6cHJl
c2VudGF0aW9uVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmRlY29kZVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkdXJhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OnNpemVJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpkb2Vz
Q01TYW1wbGVCdWZmZXJIYXZlU3luY0luZm8pOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBs
ZUJ1ZmZlclJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudE5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpD
OjpwcmVzZW50YXRpb25TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6OmlzRGl2aXNhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6aXNIb21vZ2VuZW91cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZl
ckFuZFNldEFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhblNldE1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNr
RGF0YTo6Y29uc3VtZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1l
RnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1
ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQ01Db2xvclByaW1hcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9DTVRy
YW5zZmVyRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01ZQ2JDUk1hdHJp
eCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVj
Q29uZmlndXJhdGlvblJlY29yZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFp
dDxDTVNhbXBsZUJ1ZmZlclJlZj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29t
cHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0VmlkZW9G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1
dG9tYXRpY0RlcXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50YXRpb25UaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RHVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVmZmVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnVwZGF0
ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWth
YmxlUmFuZ2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0
dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dX
YXRlclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm9jZXNzU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29t
cHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNz
ZXRXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjph
cHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXApOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRp
b1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y29tcGxldGVGZXRjaERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpyZXN1bWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZp
bmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZp
ZGVvQ29tcHJlc3Npb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OnZ0UHJvZmlsZUxldmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1w
bGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkxvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZyYW1lRHVyYXRpb25Gb3JGcmFtZVJhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJlc2V0cyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNl
Q2xvY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNl
dHVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNv
bmZpZ3VyZU1pY3JvcGhvbmVQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpD
b3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW06CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbToKKwogMjAyMS0wNi0yMSAgSmVhbi1Z
dmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbWV0
aG9kIGluIEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZGVmZDdiNzZlNzZh
MDA4M2I2ZjhiNTYzNjgyNzBkY2YyMzc5ZGVhNi4uZGJlNjY3YWNjMTBlMmZiZDkyNjQwNzYxNmVl
N2ZmOWQyMDBmN2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEt
MDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBOb3Qg
YWxsIHVzZSBvZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAg
ICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaDogQWRkIG1ldGhvZHMgd2hvc2Ug
ZGVmaW5pdGlvbnMgd2VyZSBzY2F0dGVyZWQgYWNyb3NzCisgICAgICAgIHRoZSBjb2RlLgorICAg
ICAgICAqIHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFs
L2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmg6IFNhbWUgYXMgYWJvdmUuCisgICAgICAgICog
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9U
b29sYm94U29mdExpbmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kcworICAgICAgICAqIHBhbC9jZi9D
b3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg6IEFkZCBtaXNzaW5nIG1ldGhvZHMKKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQg
bWlzc2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAg
ICAgICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBh
bC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIw
MjEtMDYtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0Nv
Y29hXSBNYWtlIHRoZSBob3N0VGltZSBwYXJhbWV0ZXIgdG8gcGxheVNlc3Npb24gYSBNb25vdG9u
aWMgdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA1N2RjYjU2ZmJhODAzZjZmYzEyZDE5NDRhNTBjYjVjY2ZiODFm
NjI0Li41OTc3NDNiNGNjOTAwZGZlYzE0MzE5ZWVlMzhhYjdjNDdiMjg2MTUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMzIEBACisyMDIxLTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBs
ZS5jb20+CisKKyAgICAgICAgTm90IGFsbCB1c2Ugb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1
c2Ugc29mdCBsaW5raW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjcyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NjA2MDkwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpjb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKFdlYktpdDo6d3JhcHBlclN0b3JhZ2Up
OgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyVlRhYmxlKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFGb3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eSk6CisgICAgICAgICogU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZSk6CisgICAg
ICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHA6
CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVy
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVn
aXN0cmF0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VN
YW5hZ2VyQ29jb2EubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVBdWRp
b0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorCiAyMDIxLTA2LTIzICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbaU9TIDE1IFJlZ3Jlc3Npb25dOiBz
Y3JvbGwgcG9zaXRpb24gcmVzZXRzIHdoZW4gdXNpbmcgc2Nyb2xsIHNuYXAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcAppbmRleCA2YTgyM2Q2MWFkMTAxMDMyYmJlMTk0YTYyYjViNjE1NmQyM2NhYjEy
Li4wOWMyZWEzMjljMmMwY2E2ZWU2ZjdiYTNhMmM0NGFkZjgzNDhlNWY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCkBAIC01Myw4ICs1Myw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogI2lmICFVU0UoTElCV0VCUlRDKQogc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxQZWVyQ29ubmVjdGlvbkJhY2tlbmQ+IGNyZWF0ZU5vUGVlckNvbm5lY3Rpb25C
YWNrZW5kKFJUQ1BlZXJDb25uZWN0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRl
eCA0MDBmOWI4ZDE2YjU5M2I0ODVlMDBjN2Y3OGY1OWRlOThkYzM3ZDlmLi43NDk5NGUyYzUxMDBl
Y2FiYTYxNTkwZmIxMTgwYWEwYmMzN2IwZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBA
IC01OCw3ICs1OCw2IEBACiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhWYWx1ZUluQ29u
dGV4dChpZCwgSlNDb250ZXh0ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4
IDViMTM1YjM5YTVhMGExZDgwMWJlNjg3OGZiZGZmNjc2NmMyZThhY2UuLmYxYzJhZjMzYzVmYTJh
YjZmYzUxNjY5OTgzZmE3MGU3Njk2NDAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5j
cHAKQEAgLTM3LDggKzM3LDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCi11c2luZyBuYW1lc3BhY2UgUEFM
OwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIHN0cmVhbURlc2NyaXB0aW9uKHNpemVfdCBzYW1wbGVSYXRlLCBzaXplX3QgY2hh
bm5lbENvdW50KQpAQCAtNzEsNyArNjksNyBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6
OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyYgYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFrZSht
X251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCkpOworICAgIENN
VGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9jdXJy
ZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9N
ZWRpYVRpbWUoc3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJh
bWVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJv
eFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuY3BwCmluZGV4IDY3Yjc4ZjQ2YTc4MTE3ODg4ZjAwZDA4OTdkYmE1N2U3YWM1Mzg1MDIu
LjMzM2FhMjI0YzcxYTc1MGNkOWEwZjY5Zjc4M2RkMDE1OTc1MTBhYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0yNiwy
MCArMjYsNDYgQEAKIAogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxBdWRpb1Rv
b2xib3gvQXVkaW9Db21wb25lbnQuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db252
ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8
QXVkaW9Ub29sYm94L0F1ZGlvRm9ybWF0Lmg+Ci0KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVk
aW9Vbml0Lmg+CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CiAj
aW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgUEFMX0VYUE9SVCkKIAor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHlJbmZvLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVk
aW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
Miogb3V0U2l6ZSwgQm9vbGVhbiogb3V0V3JpdGFibGUpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Q
cm9wZXJ0eUlELCBvdXRTaXplLCBvdXRXcml0YWJsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0
dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZp
ZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNp
emUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6
ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZl
cnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGlu
U291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGlu
YXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNv
dXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVy
dGVyRGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVy
KSwgKGluQXVkaW9Db252ZXJ0ZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVk
aW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Q
cm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5
RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywg
KEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQ
cm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5
RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciwg
T1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIgaW5O
dW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1ZGlv
QnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJlclBD
TUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhC
dWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVk
aW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGlu
SW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1
ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlv
biogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQ
cm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0
T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRpb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RvcCwgT1NTdGF0dXMsIChBdWRpb1Vu
aXQgY2kpLCAoY2kpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2UgaW5JbnN0YW5jZSksIChpbkluc3RhbmNlKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudENvcHlOYW1l
LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBDRlN0cmluZ1JlZiogb3V0
TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9D
b21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmKiBv
dXRCdW5kbGVSZWdpc3RyYXRpb25zKSwgKG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0
aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYgaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgKGluQnVu
ZGxlUmVnaXN0cmF0aW9ucyksIFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRp
b0ZpbGVJRCBpbkF1ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Ms
IE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFk
RnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQ
cm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBB
dWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUp
LCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywg
aW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9z
ZSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRp
b0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gs
IEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4
dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiAq
aW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0Zp
bGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlv
RmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBVSW50
MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSksIChpbkV4dEF1ZGlv
RmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVz
LCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCAqaW5Q
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURh
dGFTaXplLCBpblByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywg
KEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxl
UmVmICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVk
aW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRp
b0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKKwor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29t
cG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25l
bnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChpbkNvbXBvbmVu
dCwgaW5EZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50
IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5jZSksIChpbkNv
bXBvbmVudCwgb3V0SW5zdGFuY2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29w
ZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9E
YXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9E
YXRhU2l6ZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwgKGlu
VW5pdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9V
bml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVt
ZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChp
blVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKIAog
I2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKaW5kZXggNDllMzJlMTc5NDAzNjNiODQ5Nzc0NDM1
YmQyMDk1ZTY0YWI0ODgxYi4uZGRmMTNhMDI3YTQ1YTIyYjgzOThkMTM1ZThlMGIzZGZjNjg1NTJi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0
TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExp
bmsuaApAQCAtMjYsMjcgKzI2LDExNCBAQAogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAorI2lu
Y2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgogCiB0eXBlZGVmIFVJbnQzMiBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQ7CiB0eXBl
ZGVmIFVJbnQzMiBBdWRpb0Zvcm1hdFByb3BlcnR5SUQ7CiB0eXBlZGVmIHN0cnVjdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24gQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uOwogdHlwZWRl
ZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db252ZXJ0ZXIqIEF1ZGlvQ29udmVydGVyUmVmOwordHlwZWRl
ZiBzdHJ1Y3QgQXVkaW9CdWZmZXJMaXN0IEF1ZGlvQnVmZmVyTGlzdDsKK3R5cGVkZWYgT1NTdGF0
dXMgKCpBdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKShBdWRpb0NvbnZlcnRlclJl
ZiBpbkF1ZGlvQ29udmVydGVyLAorICAgIFVJbnQzMiogaW9OdW1iZXJEYXRhUGFja2V0cywKKyAg
ICBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSwKKyAgICBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0
aW9uKiogb3V0RGF0YVBhY2tldERlc2NyaXB0aW9uLAorICAgIHZvaWQqIGluVXNlckRhdGEpOwor
Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqIEV4dEF1ZGlvRmlsZVJlZjsKK3R5
cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvRmlsZUlEKiBBdWRpb0ZpbGVJRDsKK3R5cGVkZWYgVUlu
dDMyIEF1ZGlvRmlsZVR5cGVJRDsKK3R5cGVkZWYgVUludDMyIEV4dEF1ZGlvRmlsZVByb3BlcnR5
SUQ7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1JlYWRQcm9jKSgKKyAgICB2b2lkKiBp
bkNsaWVudERhdGEsCisgICAgU0ludDY0IGluUG9zaXRpb24sCisgICAgVUludDMyIHJlcXVlc3RD
b3VudCwKKyAgICB2b2lkKiBidWZmZXIsCisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7Cit0eXBl
ZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1dyaXRlUHJvYykoCisgICAgdm9pZCogaW5DbGllbnRE
YXRhLAorICAgIFNJbnQ2NCBpblBvc2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQsCisg
ICAgY29uc3Qgdm9pZCogYnVmZmVyLAorICAgIFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlwZWRl
ZiBTSW50NjQgKCpBdWRpb0ZpbGVfR2V0U2l6ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0
YSk7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1NldFNpemVQcm9jKSgKKyAgICB2b2lk
KiBpbkNsaWVudERhdGEsCisgICAgU0ludDY0IGluU2l6ZSk7Cit0eXBlZGVmIHN0cnVjdCBPcGFx
dWVBdWRpb0NvbXBvbmVudCogQXVkaW9Db21wb25lbnQ7CisKKyNpZiBUQVJHRVRfT1NfSVBIT05F
IHx8IChkZWZpbmVkKEFVRElPQ09NUE9ORU5UX05PQ0FSQk9OSU5TVEFOQ0VTKSAmJiBBVURJT0NP
TVBPTkVOVF9OT0NBUkJPTklOU1RBTkNFUykKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29t
cG9uZW50SW5zdGFuY2UqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7CisjZWxzZQordHlwZWRlZiBz
dHJ1Y3QgQ29tcG9uZW50SW5zdGFuY2VSZWNvcmQqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7Cisj
ZW5kaWYKK3R5cGVkZWYgQXVkaW9Db21wb25lbnRJbnN0YW5jZSBBdWRpb1VuaXQ7CisKK3R5cGVk
ZWYgc3RydWN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gQXVkaW9Db21wb25lbnREZXNjcmlw
dGlvbjsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdFByb3BlcnR5SUQ7Cit0eXBlZGVmIFVJbnQz
MiBBdWRpb1VuaXRTY29wZTsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdEVsZW1lbnQ7CiAKIFNP
RlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRfTElO
S19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUpCiAKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5SW5mbywgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVy
dGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIG91dFNp
emUsIEJvb2xlYW4qIG91dFdyaXRhYmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJ
RCwgb3V0U2l6ZSwgb3V0V3JpdGFibGUpKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFByb3Bl
cnR5SW5mbyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUlu
Zm8KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRp
b0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVk
aW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
MiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0Nv
bnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0
YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVy
dGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlv
bkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlck5ldyBz
b2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJOZXcKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2UsIE9T
U3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlvQ29u
dmVydGVyKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9BdWRpb0NvbnZlcnRlckRpc3Bvc2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5LCBPU1N0YXR1cywg
KEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQq
IGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW5Qcm9w
ZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyU2V0
UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Zv
cm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9ybWF0UHJvcGVydHlJRCBpblByb3Bl
cnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0IHZvaWQqIGluU3BlY2lmaWVyLCBV
SW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluUHJv
cGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmllciwgaW9Qcm9wZXJ0eURhdGFTaXpl
LCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5IHNvZnRM
aW5rX0F1ZGlvVG9vbGJveF9BdWRpb0Zvcm1hdEdldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29t
cGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVy
LCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1
dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVy
LCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorI2RlZmlu
ZSBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1
ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRp
b0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywgdm9pZCogaW5J
bnB1dERhdGFQcm9jVXNlckRhdGEsIFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgQXVk
aW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9u
KiBvdXRQYWNrZXREZXNjcmlwdGlvbiksIChpbkF1ZGlvQ29udmVydGVyLCBpbklucHV0RGF0YVBy
b2MsIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRTaXplLCBvdXRP
dXRwdXREYXRhLCBvdXRQYWNrZXREZXNjcmlwdGlvbikpCisjZGVmaW5lIEF1ZGlvQ29udmVydGVy
RmlsbENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyRmls
bENvbXBsZXhCdWZmZXIKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAo
Y2kpKQorI2RlZmluZSBBdWRpb091dHB1dFVuaXRTdGFydCBzb2Z0TGlua19BdWRpb1Rvb2xib3hf
QXVkaW9PdXRwdXRVbml0U3RhcnQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBj
aSksIChjaSkpCisjZGVmaW5lIEF1ZGlvT3V0cHV0VW5pdFN0b3Agc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvT3V0cHV0VW5pdFN0b3AKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSwgT1NTdGF0dXMs
IChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAoaW5JbnN0YW5jZSkpCisjZGVm
aW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9B
dWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUsIE9TU3RhdHVzLCAo
QXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXROYW1lKSwgKGluQ29t
cG9uZW50LCBvdXROYW1lKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRDb3B5TmFtZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRDb3B5TmFtZQorCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9u
ZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0QnVu
ZGxlUmVnaXN0cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSkKICNkZWZpbmUgQXVk
aW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExpbmtBdWRpb1Rvb2xib3hD
b3JlQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMKIFNPRlRfTElOS19GVU5D
VElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21w
b25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGluQnVu
ZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2RlZmluZSBBdWRp
b0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlvVG9vbGJveENv
cmVBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucwogCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3Rh
dHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQorI2RlZmluZSBB
dWRpb0ZpbGVDbG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxlQ2xvc2UKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVPcGVu
V2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkKiBpbkNsaWVudERhdGEsIEF1ZGlvRmlsZV9S
ZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBBdWRp
b0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9jIGlu
U2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxlSUQq
IG91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5jLCBp
bkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9GaWxl
KSkKKyNkZWZpbmUgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9zZSwgT1NTdGF0dXMsIChF
eHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRpb0ZpbGUpKQorI2RlZmlu
ZSBFeHRBdWRpb0ZpbGVEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVE
aXNwb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
RXh0QXVkaW9GaWxlR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0
QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBp
b1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmls
ZSwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCisj
ZGVmaW5lIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRB
dWRpb0ZpbGVHZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVm
IGluRXh0QXVkaW9GaWxlLCBVSW50MzIqIGlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3Qq
IGlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCisjZGVm
aW5lIEV4dEF1ZGlvRmlsZVJlYWQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZVJl
YWQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRB
dWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRp
b0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9w
ZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmls
ZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKKyNk
ZWZpbmUgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1
ZGlvRmlsZVNldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywgKEF1ZGlv
RmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxlUmVmKiBv
dXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVkaW9GaWxl
KSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9FeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywg
KENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVS
TCwgb3V0RXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlT3BlblVSTCBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlT3BlblVSTAorCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4dCwgQXVk
aW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVkaW9Db21w
b25lbnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQorI2RlZmlu
ZSBBdWRpb0NvbXBvbmVudEZpbmROZXh0IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbXBv
bmVudEZpbmROZXh0CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVu
dCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5D
b21wb25lbnQsIG91dEluc3RhbmNlKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldworU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQg
aW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQs
IHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2Nv
cGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5pdEdl
dFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRHZXRQcm9wZXJ0eQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdElu
aXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorI2RlZmlu
ZSBBdWRpb1VuaXRJbml0aWFsaXplIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRJbml0
aWFsaXplCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9V
bml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVt
ZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChp
blVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKKyNk
ZWZpbmUgQXVkaW9Vbml0U2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5p
dFNldFByb3BlcnR5CisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAppbmRleCBjMTQzOTJiYTJj
OTE0MmQ1MWI0NzRlN2QyNDQ4MGI5NzE5ZjhhNGM2Li5kZjk4N2NmNzgwZjlkNDllOGQ1MGUxYWVh
M2Y2YTlkY2IwZGE0MDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNQnVm
ZmVyUXVldWUuaD4KICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAjZW5kaWYKIApA
QCAtNDcsNiArNDgsOCBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0
ZXMsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVTb3VyY2VCdWZmZXIsIHNpemVfdCBv
ZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCB2b2lkKiBkZXN0aW5hdGlvbiksICh0aGVT
b3VyY2VCdWZmZXIsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZGVzdGluYXRpb24pLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBD
TUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3Rp
bmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25CdWZm
ZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCksIFBBTF9FWFBPUlQpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
bG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYg
dGhlQnVmZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERh
dGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyLCBzaXplX3Qg
b2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXplX3QqIHRvdGFsTGVuZ3RoT3V0
LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBvZmZzZXQsIGxlbmd0aEF0T2Zm
c2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
Rm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZvcm1h
dERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJHZXRUeXBlSUQsIENGVHlwZUlELCAodm9pZCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCkBAIC0xMDQsOSArMTA3LDkgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0
RGVzY3JpcHRpb25HZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRl
ciwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01O
b3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNl
bnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxi
YWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVj
dCwgVUludDMyIGZsYWdzKSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRp
b24sIG9iamVjdCwgZmxhZ3MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVt
b3ZlTGlzdGVuZXIsIE9TU3RhdHVzLCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBj
b25zdCB2b2lkKiBsaXN0ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZT
dHJpbmdSZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBsaXN0
ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0KSwgUEFMX0VYUE9SVCkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENN
QmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVm
ZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFr
ZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50
cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVt
Q291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5
LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRh
dGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3Jt
YXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxl
VGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZP
dXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxl
QnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwg
UEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2lu
YWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNv
cHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2Nr
QnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1h
a2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRh
UmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENN
SXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50
IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01T
YW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVh
ZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVz
Y3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWlu
Z0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSwg
UEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZl
clJlZiogc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1
ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1p
bmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZDb3B5T3V0
KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1w
bGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2Ft
cGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdl
QnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9v
bGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0lu
Zm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChh
bGxvY2F0b3IsIGltYWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywg
bWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2Ft
cGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVT
dGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9S
VCkKQEAgLTExNiwxNCArMTE5LDE0IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFByZXNlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbiwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRh
dGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXksIENG
QXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVjZXNz
YXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5m
byAqdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRP
dXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJy
YXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0
ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nQXJy
YXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1Ziwg
dGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVl
ZGVkT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGlt
ZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9k
KSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziks
IChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXIsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01CbG9ja0J1ZmZlclJlZiBidWZmZXIpLCAo
c2J1ZiwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUdldEF0dGFjaG1lbnQsIENGVHlwZVJlZiwg
KENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ01BdHRhY2ht
ZW50TW9kZSogYXR0YWNobWVudE1vZGVPdXQpLCAodGFyZ2V0LCBrZXksIGF0dGFjaG1lbnRNb2Rl
T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRC
ZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENGVHlwZVJlZiB2YWx1ZSwgQ01BdHRh
Y2htZW50TW9kZSBhdHRhY2htZW50TW9kZSksICh0YXJnZXQsIGtleSwgdmFsdWUsIGF0dGFjaG1l
bnRNb2RlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFj
aG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFyZ2V0LCBrZXkpLCBQ
QUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWVi
YXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91
dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENN
VGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWVi
YXNlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1l
YmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdl
dFJhdGUsIEZsb2F0NjQsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWViYXNlU2V0UmF0ZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRp
bWViYXNlLCBGbG9hdDY0IHJhdGUpLCAodGltZWJhc2UsIHJhdGUpLCBQQUxfRVhQT1JUKQpAQCAt
MTQ0LDExICsxNDcsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVEZXF1ZXVlQW4KIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVl
RW5xdWV1ZSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclJlZiBi
dWZmZXIpLCAocXVldWUsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUlzRW1w
dHksIEJvb2xlYW4sIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlbUNvdW50LCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3Mg
KiwgKCksICgpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNv
cnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiwgKCksICgpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01U
aW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3Rh
bGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVl
dWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRy
aWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRyaWdn
ZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBjb25k
aXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2FsbGJh
Y2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIHRy
aWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVyUXVl
dWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxiYWNr
LCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0cmln
Z2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhLCBP
U1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQnVmZmVyUXVldWVHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1
ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90
RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtl
eV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE2OCw0MCArMTczLDQyIEBA
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZl
Y3RpdmVSYXRlQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VO
b3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
YyksIChkZXNjKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qLCAo
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1lbW9yeUJsb2NrLCBzaXplX3QgYmxvY2tM
ZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2NhdG9yLCBjb25zdCBDTUJsb2NrQnVmZmVy
Q3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291cmNlLCBzaXplX3Qgb2Zmc2V0VG9EYXRh
LCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZlckZsYWdzIGZsYWdzLCBDTUJsb2NrQnVm
ZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1cmVBbGxvY2F0b3IsIG1lbW9yeUJsb2Nr
LCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1c3RvbUJsb2NrU291cmNlLCBvZmZzZXRU
b0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXpl
TmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJM
aXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYg
KmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJM
aXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQs
IEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBD
RkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVt
b3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZm
ZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1
ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBm
bGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0TnVt
U2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
Q0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2Nh
dG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQsIENN
SXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJheUVu
dHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBP
UlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNh
bGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRp
b24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFr
ZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMs
IHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9j
YXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9C
dWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZN
ZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1l
IHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2Ny
aXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVm
ZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNv
biwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0
aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNl
bnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFj
a2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNl
bnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpLCBQ
QUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVy
TGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBi
YnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1
aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0KSwgKHNidWYs
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJM
aXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRp
bWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVRpbWUgb3V0cHV0
UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNidWYsIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFt
cCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01C
bG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERl
c2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5
LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVT
aXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9y
LCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGlt
aW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1w
bGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6
ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNp
emUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywg
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwg
bGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNp
b25zLCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRN
YWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
Yywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlv
Rm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRl
c2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNv
ZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0qLCAoQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RU
aW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dl
dFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzLCB1aW50NjRfdCwgKENNVGltZSBo
b3N0VGltZSksIChob3N0VGltZSksIFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxG
b3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVz
ICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoIENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQg
KnJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJS
ZWYgc2J1ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIp
KENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlciksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQ
RSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBp
bmRleCwgdm9pZCogcmVmY29uKSwgdm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZj
b24pLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNNU0FNUExFQlVG
RkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQp
KSwgKHNidWYsIGhhbmRsZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdS
ZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX3NSR0IsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9ja091
dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9j
a091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVt
LCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1l
IHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250YWlu
c1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFuZ2Us
IHRpbWUpLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSwgUEFMX0VY
UE9SVCkKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaWYgUExBVEZPUk0oTUFD
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAo
YWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2
aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0
cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2
aWNlVUlELCBjbG9ja091dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0
b3JhZ2UsIHZvaWQqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUq
LCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCksIFBBTF9FWFBPUlQp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgY29uc3QgQ01CYXNlVlRhYmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwg
Q01CYXNlT2JqZWN0UmVmKiBiYXNlT2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFzc0lE
LCBiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaAppbmRleCA3NTI1YjkxOWM2OTVkMzYwOTdiMTExMDMyYjk0Zjc0
N2YxNTFmMWYwLi45OGNjYjc5YWE0ZDkzZTU4M2ZlNTYzNTdhNjE5Y2I4MTdiZTBjYzY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC01MSw2
ICs1MSwxMCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdAogI2RlZmluZSBDTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFMZW5n
dGgKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2Nr
QnVmZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VCeXRl
cywgQ01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldEludG9E
ZXN0aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0aW9u
QnVmZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpKQogI2RlZmluZSBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZl
clJlcGxhY2VEYXRhQnl0ZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9j
a0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSkKKyNkZWZpbmUgQ01CbG9ja0J1ZmZl
ckFzc3VyZUJsb2NrTWVtb3J5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQXNzdXJl
QmxvY2tNZW1vcnkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJl
ZiB0aGVCdWZmZXIsIHNpemVfdCBvZmZzZXQsIHNpemVfdCogbGVuZ3RoQXRPZmZzZXRPdXQsIHNp
emVfdCogdG90YWxMZW5ndGhPdXQsIGNoYXIqKiBkYXRhUG9pbnRlck91dCksICh0aGVCdWZmZXIs
IG9mZnNldCwgbGVuZ3RoQXRPZmZzZXRPdXQsIHRvdGFsTGVuZ3RoT3V0LCBkYXRhUG9pbnRlck91
dCkpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBzb2Z0TGlua19Db3JlTWVk
aWFfQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMsIENG
RGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNk
ZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMgc29mdExpbmtfQ29yZU1lZGlh
X0NNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlE
LCAodm9pZCksICgpKQpAQCAtNjMsNiArNjcsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLAog
I2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8gc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbwogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHksIEJv
b2xlYW4sIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckRhdGFJc1JlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckRhdGFJ
c1JlYWR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBm
b3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVt
U2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1p
bmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCog
c2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNh
bXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmll
cywgc2FtcGxlU2l6ZUFycmF5LCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1l
Q29udmVydFNjYWxlLCBDTVRpbWUsIChDTVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2NhbGUs
IENNVGltZVJvdW5kaW5nTWV0aG9kIG1ldGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1ldGhv
ZCkpCiAjZGVmaW5lIENNVGltZUNvbnZlcnRTY2FsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
Q29udmVydFNjYWxlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01UaW1lQWRkLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1l
MSwgdGltZTIpKQpAQCAtODcsMjkgKzkzLDI5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUVxdWFsLCBCb29sZWFuLCAoQ01UaW1lCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcywgQ0ZTdHJp
bmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2Ny
aXB0aW9uRXh0ZW5zaW9uQXRvbXMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zKCkKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0
aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzIGdl
dF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
Q29sb3JQcmltYXJpZXNfRENJX1AzKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIw
MjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9r
Q01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1
LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NN
Rm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX1AzX0Q2NSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
UDNfRDY1IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19Q
M19ENjUoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvLCBDRlN0cmluZ1JlZikK
LSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRl
bygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVv
IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlk
ZW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikK
LSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRV
X1JfMjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9J
VFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hM
RywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKKyNkZWZpbmUga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIoKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4
NF9QUSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBU
RV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBU
RV9TVF80MjhfMSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80Mjhf
MSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgpCisjZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29yZU1l
ZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0
RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUg
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1h
dHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKKyNkZWZpbmUg
a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFf
a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19D
T05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3RyaW5n
UmVmKQogI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250
ZW50T3JpZ2luYWxGb3JtYXQgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQoKQogU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9zUkdCLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NS
R0IgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpCisjZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCwgQ0ZTdHJp
bmdSZWYpCiAjZGVmaW5lIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCBnZXRfQ29yZU1l
ZGlhX2tDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfTWlk
ZGxlLCBDRlN0cmluZ1JlZikKQEAgLTE1MSw3ICsxNTcsNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9M
ZWZ0LAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRp
bWVJbnZhbGlkLCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVJbnZhbGlkIGdldF9Db3JlTWVkaWFf
a0NNVGltZUludmFsaWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVaZXJvIFBBTDo6Z2V0
X0NvcmVNZWRpYV9rQ01UaW1lWmVybygpCisjZGVmaW5lIGtDTVRpbWVaZXJvIGdldF9Db3JlTWVk
aWFfa0NNVGltZVplcm8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5LCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVQ
b3NpdGl2ZUluZmluaXR5IGdldF9Db3JlTWVkaWFfa0NNVGltZVBvc2l0aXZlSW5maW5pdHkoKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5n
ZUludmFsaWQsIENNVGltZVJhbmdlKTsKQEAgLTE2OSwxMyArMTc1LDEzIEBAIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckFk
ZExpc3RlbmVyLCBPCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIgc29m
dExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRl
clJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRl
ciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ss
IENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0KSwgKGNlbnRlciwg
bGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCkpCiAjZGVmaW5lIENNTm90
aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZp
Y2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBk
YXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVh
ZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291
bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1w
bGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNp
emVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxv
Y2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtl
RGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBz
YW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRh
dGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFk
eUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBs
ZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6
ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9j
YXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VE
YXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNh
bXBsZVNpemVBcnJheSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZD
b3B5T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2J1ZkNvcHlP
dXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1p
bmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3Jp
Z2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1
ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRl
bUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyog
c2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChhbGxv
Y2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5n
QXJyYXksIHNCdWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0
aE5ld1RpbWluZyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0
aE5ld1RpbWluZwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxl
VGltaW5nSW5mbyAqc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChh
bGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBz
QnVmT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRp
bWluZ0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc0J1
Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZm
ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHks
IENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFj
aywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWlu
ZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGltYWdl
QnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJl
ZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2FtcGxlQnVmZmVyT3V0KSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlcgpAQCAtMTkzLDcgKzE5OSw3
IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0T3V0
cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
ckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3JlYXRl
SWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZOZWNlc3NhcnkpKQogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRp
bWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwgQ01J
dGVtQ291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJh
eUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZv
KiB0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91
dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJh
eUVudHJpZXNOZWVkZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvQXJyYXkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBs
ZVNpemUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXpl
CkBAIC0yMDUsNyArMjExLDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWUKICNkZWZpbmUgQ01T
ZXRBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNldEF0dGFjaG1lbnQKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQs
IHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAo
dGFyZ2V0LCBrZXkpKQogI2RlZmluZSBDTVJlbW92ZUF0dGFjaG1lbnQgc29mdExpbmtfQ29yZU1l
ZGlhX0NNUmVtb3ZlQXR0YWNobWVudAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWVi
YXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91
dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1l
YmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0
KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKICNkZWZpbmUgQ01UaW1l
YmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUNy
ZWF0ZVdpdGhNYXN0ZXJDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWVi
YXNlKSwgKHRpbWViYXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdldFRpbWUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNVGltZWJhc2VHZXRUaW1lCkBAIC0yMjcsNyArMjMzLDcgQEAgU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lckRpc3Bh
dGNoU291cmNlVG8KICNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0Zp
cmVJbW1lZGlhdGVseSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0
Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZUNvcHlBc0RpY3Rpb25hcnksIENGRGljdGlvbmFyeVJlZiwg
KENNVGltZSB0aW1lLCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAodGltZSwgYWxsb2NhdG9y
KSkKICNkZWZpbmUgQ01UaW1lQ29weUFzRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01U
aW1lQ29weUFzRGljdGlvbmFyeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFn
ZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmICpvdXREZXNjKSwgKGFsbG9jYXRv
ciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJl
ZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFs
bG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1l
bnNpb25zLCBDTVZpZGVvRGltZW5zaW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2
aWRlb0Rlc2MpLCAodmlkZW9EZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
R2V0RGltZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
R2V0RGltZW5zaW9ucwpAQCAtMjQ5LDE1ICsyNTUsMTggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwgQ01J
dGUKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50IHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1l
U3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmlu
ZSBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29y
ZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcAotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRD
YWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tz
ICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25z
dCBDTUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZm
ZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycwogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQcmVz
ZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVl
dWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1w
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENN
QnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZm
ZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJR
dWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVm
Y29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCkpCisjZGVmaW5lIENNQnVmZmVy
UXVldWVJbnN0YWxsVHJpZ2dlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUluc3Rh
bGxUcmlnZ2VyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVz
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0
cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQs
IENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJp
Z2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhy
ZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRy
aWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwgT1NT
dGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZm
ZXJRdWV1ZU1hcmtFbmRPZkRhdGEgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVNYXJr
RW5kT2ZEYXRhCi0KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVl
dWUpLCAocXVldWUpKQorI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24gc29mdExpbmtf
Q29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXREdXJhdGlvbgogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNw
bGF5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERp
c3BsYXkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZikKQEAgLTI5NSw0NiArMzA0LDQ4IEBA
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29yZU1l
ZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZSwg
Y29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6ZV90KiBz
aXplT3V0KSwgKGRlc2MsIHNpemVPdXQpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRNYWdpY0Nvb2tpZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uR2V0TWFnaWNDb29raWUKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVz
Y3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFfQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbgogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDcmVhdGVX
aXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0dXJlQWxsb2Nh
dG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFsbG9jYXRvclJl
ZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNlKiBj
dXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgs
IENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJP
dXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5ndGgsIGJsb2Nr
QWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBm
bGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2RlZmluZSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1l
bW9yeUJsb2NrIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NT
dGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXplTmVl
ZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0
U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYg
YmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYgKmJs
b2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0
T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9j
YXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhS
ZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNp
emVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlz
dE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxs
b2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFn
cywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNp
emVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxs
b2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2Rl
ZmluZSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVm
ZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdp
dGhSZXRhaW5lZEJsb2NrQnVmZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0ZW1Db3VudCwgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0
TnVtU2FtcGxlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVz
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3Jt
YXRMaXN0SXRlbSAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3Jt
YXRMaXN0SXRlbSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkK
ICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1h
dCBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERl
Y29kYWJsZUZvcm1hdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBz
YW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBzYnVm
LCBzYW1wbGVSYW5nZSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ29weVNhbXBs
ZUJ1ZmZlckZvclJhbmdlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNvcHlTYW1w
bGVCdWZmZXJGb3JSYW5nZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVfdCog
c2l6ZUFycmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIChz
YnVmLCBzaXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNOZWVk
ZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkKIAotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwg
Q01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNr
LCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywgY29u
c3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25zLCBDTVNh
bXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFk
eSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNj
cmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVmT3V0
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1l
IHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2Ny
aXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVm
ZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNv
biwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0
aW9ucywgc0J1Zk91dCkpCiAjZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFj
a2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZl
ckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYg
YmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwg
dWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVm
LCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVy
TGlzdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZl
ciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJl
YW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJl
Ziogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3Jp
cHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRp
b25zLCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVm
ZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVm
TWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBi
dWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0
b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVm
ZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJT
ZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBPU1N0YXR1
cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVm
ZmVyU2V0RGF0YVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERhdGFS
ZWFkeQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCAo
c2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSkKKyNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNU2Ft
cGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9D
aGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQq
IG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5
b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNjKSkK
ICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01DbG9ja1Jl
ZiwgKHZvaWQpLCAoKSkKLSNkZWZpbmUgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sgIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jaworI2RlZmluZSBDTUNsb2NrR2V0SG9z
dFRpbWVDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0VGlt
ZSwgQ01UaW1lLCAoQ01DbG9ja1JlZiBjbG9jayksIChjbG9jaykpCi0jZGVmaW5lIENNQ2xvY2tH
ZXRUaW1lICBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldFRpbWUKKyNkZWZpbmUgQ01DbG9j
a0dldFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRv
U3lzdGVtVW5pdHMsIHVpbnQ2NF90LCAoQ01UaW1lIGhvc3RUaW1lKSwgKGhvc3RUaW1lKSkKICNk
ZWZpbmUgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzCiAKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNo
U2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqIENN
U0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVmY29u
KSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNB
TExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01J
dGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxs
YmFjaywgcmVmY29uKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2Fs
bEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBP
U1N0YXR1cyAoXiBDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVC
dWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0Zv
ckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMg
KF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYs
IENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJD
YWxsQmxvY2tGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNh
bGxCbG9ja0ZvckVhY2hTYW1wbGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9D
bG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tS
ZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpKQogI2RlZmluZSBDTUF1ZGlvQ2xv
Y2tDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9DbG9ja0NyZWF0ZQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGlt
ZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiAjZGVmaW5l
IENNVGltZU1heGltdW0gc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1heGltdW0KQEAgLTM0Niwx
OCArMzU3LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogI2Rl
ZmluZSBrQ01UaW1lSW5kZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRlKCkK
IAotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KICNpZiBQTEFURk9STShNQUMpCiAK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2
aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0
cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2
aWNlVUlELCBjbG9ja091dCkpCi0jZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSAgc29m
dExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJ
RCwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0
KSkKKyNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCosIChDTUJh
c2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkKLSNkZWZpbmUgQ01CYXNlT2Jq
ZWN0R2V0RGVyaXZlZFN0b3JhZ2UgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0
R2V0RGVyaXZlZFN0b3JhZ2UKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Ug
c29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRh
YmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAo
YmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9iamVjdEdldFZUYWJsZSBQQUw6OnNvZnRMaW5r
X0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0
VlRhYmxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRPYmplY3RDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFi
bGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIGJhc2VP
YmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3QpKQotI2RlZmlu
ZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVk
T2JqZWN0Q3JlYXRlCisjZGVmaW5lIENNRGVyaXZlZE9iamVjdENyZWF0ZSBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExp
bmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5j
cHAKaW5kZXggZjUxY2JiYjE2NjYzYjgxZWNlMjAxZThhZDU3MjVjMjUxMjFmNTZmYi4uNzJmNDEx
NGVlYWFkZjYyMGNlMzcwMjMwOTk0NzY2YjQ4Yzc5NWIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTM0LDEzICszNCwx
OSBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBWaWRl
b1Rvb2xib3gsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUws
IFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0
ZSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVv
VG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVy
YXRpb24sIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBW
aWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5n
UmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsIENGU3RyaW5nUmVmKQorU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKIAogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVvRW5jb2RlclNwZWNp
ZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgQ0ZTdHJpbmdS
ZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZU
UHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKK1NPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2
ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9B
dXRvTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwg
Q01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lm
aWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZB
bGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRD
YWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29t
cHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3
aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFn
ZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFj
aywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNl
c3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBz
ZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzZXNz
aW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkVu
Y29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENW
SW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAs
IENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGllcywgdm9pZCog
c291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAoc2Vz
c2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24sIGZyYW1l
UHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24sIGluZm9GbGFnc091dCkpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Np
b25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25S
ZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUsIHZvaWQsIChW
VENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogCiBTT0ZUX0xJTktf
RlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJv
eCwgVlRSZXN0cmljdFZpZGVvRGVjb2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0
cmljdGlvbnMgcmVzdHJpY3Rpb25GbGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dl
ZENvZGVjVHlwZUxpc3QsIENNSXRlbUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0
cmljdGlvbkZsYWdzLCBhbGxvd2VkQ29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50
KSwgUEFMX0VYUE9SVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9W
aWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rv
b2xib3hTb2Z0TGluay5oCmluZGV4IGVjMGZmMDFjYzFmZTFhMjEwNmNjN2E3ZjAyZThjODRiN2Rk
MGRhODQuLjYwYThmZjM3NDJkNDk2MTA3YjE0ZmFjN2M0MTM3M2FiYzZkNjk0YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTM3
LDkgKzM3LDIwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29s
Ym94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtlCiAjZGVmaW5lIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uIGdldF9WaWRlb1Rvb2xi
b3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24o
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQogI2RlZmluZSBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0
UmF0ZSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZl
cmFnZUJpdFJhdGUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2
ZXJhZ2VCaXRSYXRlKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJpbmdS
ZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsIGdldF9W
aWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwoKQogCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9F
bmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVy
LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlk
ZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNv
ZGVyKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorI2Rl
ZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9v
bGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwoKQorU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9I
MjY0X0hpZ2hfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxldmVs
X0gyNjRfSGlnaF9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2
NF9IaWdoX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZp
ZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3RyaW5n
UmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCBnZXRfVmlk
ZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsKCkKKwogCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQz
Ml90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENG
RGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJj
ZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxv
Y2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCog
b3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lv
blNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29k
ZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWRE
YXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXBy
ZXNzaW9uU2Vzc2lvbk91dCkpCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlIHNv
ZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZQpAQCAtNDksNiAr
NjAsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwg
VlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZQogI2RlZmluZSBWVENvbXByZXNzaW9uU2Vz
c2lvbkVuY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lv
bkVuY29kZUZyYW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9v
bGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVz
LCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKICNkZWZpbmUg
VlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgc29mdExpbmtfVmlkZW9U
b29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNl
c3Npb25JbnZhbGlkYXRlLCB2b2lkLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiks
IChzZXNzaW9uKSkKKyNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlIHNvZnRM
aW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUKIAogU09GVF9M
SU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUUmVz
dHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlkZW9EZWNvZGVyUmVzdHJpY3Rpb25z
IHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2RlY1R5cGUqIGFsbG93ZWRDb2RlY1R5
cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCAocmVzdHJpY3Rpb25G
bGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRDb2RlY1R5cGVDb3VudCkpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGlu
ay5jcHAKaW5kZXggNjc0ZTY0OTRhMGE4YjU5NjkwM2UzY2E1Y2ZiNmEyM2RkYWMzNjM4Yy4uZDQ0
NDkzMWVmZDhhZTU1NjBiOGMxYjI3ZjIyYWQ5MmU3OTM0ODVlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKQEAgLTQx
LDYgKzQxLDEwIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91CiAKIFNPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBrTVRT
dXBwb3J0Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQsIENGU3RyaW5nUmVm
LCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlh
VG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Q
cm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8s
IE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1i
ZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01JdGVt
Q291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZyYW1lcywgYnVmZmVyTGlzdElu
T3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xi
b3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNr
cywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcFJlZiogdGFwT3V0KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0
KSwgUEFMX0VYUE9SVCkKKwogI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCiAKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94
LCBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYsIFBB
TF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlh
VG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9v
bGJveFNvZnRMaW5rLmgKaW5kZXggYzdkZTAyY2U2M2MyYzMwMGQ5NjU0ZjY2NzBiZmMxMjUwMjI5
MzQ0ZS4uMjU1YTc2N2I1NWVlZjRlOGVlZDE5ZGVmMjk3MTc4NDkwYmU5M2YxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaApA
QCAtNDEsNiArNDEsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIo
UEFMLCBNZWRpYVRvb2xib3gsIE1UX0dldFNob3VsZFBsYXlIRFJWaWQKIAogU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnRO
b3RpZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYpCiAKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFw
KSwgKHRhcCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSBzb2Z0TGlu
a19NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAs
IENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5P
dXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGlt
ZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJh
bWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1l
c091dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8gc29mdExp
bmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8KK1NPRlRf
TElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzKiBjYWxsYmFja3MsIE1UQXVk
aW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91dCkpCisjZGVm
aW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlIHNvZnRMaW5rX01lZGlhVG9vbGJveF9NVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZQorCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURF
UikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtN
VFBsdWdpbkZvcm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDU1MjRlZWM1NTg3ZDFlOTE3MGVmOWYxNDkyY2MwN2RlMjVj
ODBlYzcuLmM1NjJiZTc2MzVlYTZhMTU4NDA4MzNhYmMyZTE5MTAxMGNjMzE3NmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMzUwLDcgKzM1MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEb2N1bWVudCk7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdURjo6
VW5pY29kZTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRlcHRo
ID0gMjE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDlm
NTU2MDgwMmJhYzMyYmI0OTllYzk3YzliMGFlMzJlMTFjNjIxYzcuLjg1MGNkZTcyNzBmMGQ2MWRj
MjU0NDljMWRhODlhNDlhMWFmNDM2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTENhbnZhc0VsZW1lbnQpOwogCi11c2luZyBu
YW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogLy8gVGhlc2UgdmFs
dWVzIGNvbWUgZnJvbSB0aGUgV2hhdFdHL1czQyBIVE1MIHNwZWMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlMDUxNmE0YWYyNWQyYjVhNGQ0OTRjZTQzNTA5
Njg0MTQxYjY3ZDllLi42YWMyZGZiOWRkNjRmMGYzZmMwZDBlZjVmYzUxMTU5MWQyNWYwYmFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE5MCw4ICsxOTAs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChI
VE1MTWVkaWFFbGVtZW50KTsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIGNvbnN0
IFNlY29uZHMgU2Vla1JlcGVhdERlbGF5IHsgMTAwX21zIH07CiBzdGF0aWMgY29uc3QgZG91Ymxl
IFNlZWtUaW1lID0gMC4yOwogc3RhdGljIGNvbnN0IFNlY29uZHMgU2NhblJlcGVhdERlbGF5IHsg
MS41X3MgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcAppbmRleCBmZDNkM2UwM2EwM2YwODEwNTIx
Mjg2YmQwMjZhOTEwMTExZDNjYzg0Li41ZDU2YjllZTFhMGQzZDY3YTc5YzMwNzYxZDEzODE1ZDdj
MDY0NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCkBAIC0zNiwyNSArMzYsMTMgQEAKICNp
bmNsdWRlICJBdWRpb0ZpbGVSZWFkZXIuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVk
aW9GaWxlLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNp
bmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW5jbHVkZSA8
d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29sYm94KQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9G
aWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJv
eCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnRE
YXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBp
bldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmls
ZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhp
bnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5j
LCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhp
bnQsIG91dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVE
aXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4
dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9w
ZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlv
RmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwg
dm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlv
UHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xi
b3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVk
aW9GaWxlLCBVSW50MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSks
IChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCi1TT0ZUX0xJTksoQXVk
aW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0Zp
bGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlE
LCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0YSks
IChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJv
cGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRp
b0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldy
aXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZv
cldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRB
dWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVS
ZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gQXVkaW9C
dWZmZXJMaXN0KiB0cnlDcmVhdGVBdWRpb0J1ZmZlckxpc3Qoc2l6ZV90IG51bWJlck9mQnVmZmVy
cykKQEAgLTEwMywyMiArOTEsMjIgQEAgQXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIo
Y29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQogICAgIDogbV9kYXRhKGRhdGEpCiAg
ICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewotICAgIGlmIChBdWRpb0ZpbGVPcGVuV2l0aENh
bGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmls
ZUlEKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyh0
aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmlsZUlEKSAhPSBu
b0VycikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0Zp
bGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0QXVkaW9GaWxlUmVmKSAhPSBub0VycikK
KyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQobV9hdWRpb0ZpbGVJRCwg
ZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIpCiAgICAgICAgIG1fZXh0QXVkaW9G
aWxlUmVmID0gMDsKIH0KIAogQXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKCkKIHsK
ICAgICBpZiAobV9leHRBdWRpb0ZpbGVSZWYpCi0gICAgICAgIEV4dEF1ZGlvRmlsZURpc3Bvc2Uo
bV9leHRBdWRpb0ZpbGVSZWYpOworICAgICAgICBQQUw6OkV4dEF1ZGlvRmlsZURpc3Bvc2UobV9l
eHRBdWRpb0ZpbGVSZWYpOwogCiAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwogCiAgICAgaWYg
KG1fYXVkaW9GaWxlSUQpCi0gICAgICAgIEF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwor
ICAgICAgICBQQUw6OkF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwogCiAgICAgbV9hdWRp
b0ZpbGVJRCA9IDA7CiB9CkBAIC0xNTUsNyArMTQzLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRp
b0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykK
IAogICAgIC8vIEdldCBmaWxlJ3MgZGF0YSBmb3JtYXQKICAgICBVSW50MzIgc2l6ZSA9IHNpemVv
ZihtX2ZpbGVEYXRhRm9ybWF0KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9l
eHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlRGF0YUZvcm1hdCwgJnNp
emUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0Zp
bGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0Zp
bGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzID0gbV9maWxl
RGF0YUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKQEAgLTE2Myw3ICsxNTEsNyBAQCBSZWZQdHI8
QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJv
b2wgbWl4VG9Nb25vKQogICAgIC8vIE51bWJlciBvZiBmcmFtZXMKICAgICBTSW50NjQgbnVtYmVy
T2ZGcmFtZXM2NCA9IDA7CiAgICAgc2l6ZSA9IHNpemVvZihudW1iZXJPZkZyYW1lczY0KTsKLSAg
ICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRp
b0ZpbGVQcm9wZXJ0eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVzNjQp
ICE9IG5vRXJyIHx8IG51bWJlck9mRnJhbWVzNjQgPD0gMCkKKyAgICBpZiAoUEFMOjpFeHRBdWRp
b0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5
X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIgfHwg
bnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRv
dWJsZSBmaWxlU2FtcGxlUmF0ZSA9IG1fZmlsZURhdGFGb3JtYXQubVNhbXBsZVJhdGU7CkBAIC0x
ODUsNyArMTczLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1
cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKICAgICBpZiAoc2FtcGxlUmF0ZSkK
ICAgICAgICAgbV9jbGllbnREYXRhRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsKIAot
ICAgIGlmIChFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1
ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFM
OjpFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmls
ZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAvLyBDaGFuZ2UgbnVtYmVyT2ZGcmFtZXM2NCB0byBkZXN0aW5hdGlvbiBz
YW1wbGUtcmF0ZQpAQCAtMjQzLDcgKzIzMSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxl
UmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAKICAg
ICAvLyBSZWFkIGZyb20gdGhlIGZpbGUgKG9yIGluLW1lbW9yeSB2ZXJzaW9uKQogICAgIFVJbnQz
MiBmcmFtZXNUb1JlYWQgPSBudW1iZXJPZkZyYW1lczsKLSAgICBpZiAoRXh0QXVkaW9GaWxlUmVh
ZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZyYW1lc1RvUmVhZCwgYnVmZmVyTGlzdCkgIT0gbm9FcnIp
IHsKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAmZnJh
bWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgewogICAgICAgICBkZXN0cm95QXVkaW9C
dWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVS
ZWFkZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9G
aWxlUmVhZGVyQ29jb2EuaAppbmRleCBiN2I5MTYzYjU2ZTI2YzI5Y2FiODRlZTI0NzY5ZTI5NzE0
MTdhZmZjLi4wYmJiYmEyNzg1N2Q5NzllY2M2ODhmODdmMDMzOWY2NjVlZjQyNTI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJD
b2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmls
ZVJlYWRlckNvY29hLmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJ
TykKIAotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KLSNpbmNsdWRlIDxBdWRp
b1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1
ZGlvVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK3VzaW5nIEV4dEF1ZGlvRmls
ZVJlZiA9IHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqOwordXNpbmcgQXVkaW9GaWxlSUQgPSBz
dHJ1Y3QgT3BhcXVlQXVkaW9GaWxlSUQqOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEF1ZGlvQnVzOwpAQCAtNTgsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHZvaWQqIG1f
ZGF0YSA9IHsgbnVsbHB0ciB9OwogICAgIHNpemVfdCBtX2RhdGFTaXplID0geyAwIH07CiAKLSAg
ICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0geyAwIH07CisgICAgQXVkaW9GaWxlSUQgbV9h
dWRpb0ZpbGVJRCA9IHsgbnVsbHB0ciB9OwogICAgIEV4dEF1ZGlvRmlsZVJlZiBtX2V4dEF1ZGlv
RmlsZVJlZiA9IHsgbnVsbHB0ciB9OwogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
IG1fZmlsZURhdGFGb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCmluZGV4IDQ3ODc1
MDcyYTc4NmVkNjg2YzFkNDAxZTgyZTYyNTljYTIzYzU0YjYuLjE0OGIwNTVkYmVjODk0M2VhNWFh
YzY4ZTY4NThkZTdkMGI4MjMxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSA8cGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9P
dXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJl
ciYgcmVuZGVyZXIpCkBAIC0zOSwxMiArNDEsMTIgQEAgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6
QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCiBBdWRp
b091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcigpCiB7CiAgICAgaWYg
KG1fb3V0cHV0VW5pdCkKLSAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9v
dXRwdXRVbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSht
X291dHB1dFVuaXQpOwogfQogCiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFy
dCgpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1dFVu
aXQpOworICAgIGF1dG8gcmVzdWx0ID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1
dFVuaXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCiAgICAgICAgIFdURkxvZ0Fsd2F5cygi
RVJST1I6IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KCkgY2FsbCBmYWlsZWQgd2l0aCBlcnJvciBjb2Rl
OiAlbGQiLCBzdGF0aWNfY2FzdDxsb25nPihyZXN1bHQpKTsKICAgICByZXR1cm4gcmVzdWx0OwpA
QCAtNTIsNyArNTQsNyBAQCBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCgp
CiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3AoKQogewotICAgIHJldHVy
biBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgcmV0dXJuIFBBTDo6QXVk
aW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOwogfQogCiAvLyBEZWZhdWx0T3V0cHV0VW5p
dCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKaW5kZXggZmRmNjc3NTdkMWI0Nzc2
MDgwOGIxM2ZiNDM0ZTQwYjNkZmQzMGUwNC4uNGU5MDY0ZDBjNmU5MzA4OWFlMGVhYTZmOTk4ZWNk
NjUzNzM1ZDFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxlcmF0
ZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgorI2luY2x1ZGUg
PHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29w
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzIsNyArMjczLDcgQEAgT1NTdGF0dXMg
QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNv
dXJjZSwgc2l6ZV90IGYKIAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBpbnB1dEZv
cm1hdDsKICAgICBVSW50MzIgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihpbnB1dEZvcm1hdCk7
Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlucHV0
Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBr
QXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0
YVNpemUsICZpbnB1dEZvcm1hdCk7CiAgICAgQVNTRVJUKGZyYW1lQ291bnQgPD0gc291cmNlLm1C
dWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpOwog
CiAgICAgQXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ29udGV4dCBjb250ZXh0IHsgc291cmNlLCBmcmFt
ZUNvdW50LCBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgfTsKQEAgLTI4MCw3ICsyODEsNyBA
QCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVm
ZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2lmICFMT0dfRElTQUJMRUQKICAgICBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0Rm9ybWF0OwogICAgIHByb3BlcnR5RGF0YVNpemUg
PSBzaXplb2Yob3V0cHV0Rm9ybWF0KTsKLSAgICBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAm
cHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CisgICAgUEFMOjpBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVh
bURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CiAKICAgICBB
U1NFUlQoQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG91dHB1dEZvcm1hdCkubnVtYmVyT2ZDaGFu
bmVsU3RyZWFtcygpID09IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKSk7CiAgICAgZm9yICh1
aW50MzJfdCBpID0gMDsgaSA8IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKTsgKytpKSB7CkBA
IC0yOTAsNyArMjkxLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJv
bShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNlbmRpZgogCiAgICAg
VUludDMyIHNhbXBsZXNDb252ZXJ0ZWQgPSBtX3NhbXBsZUNhcGFjaXR5OwotICAgIE9TU3RhdHVz
IGVyciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRpb0Nv
bnZlcnRlckZyb21BQkxDYWxsYmFjaywgJmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBtX2J1
ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0cik7CisgICAgT1NTdGF0dXMgZXJyID0gUEFMOjpBdWRp
b0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJGcm9t
QUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0LT5s
aXN0KCksIG51bGxwdHIpOwogICAgIGlmICghZXJyIHx8IGVyciA9PSBrUmFuT3V0T2ZJbnB1dERh
dGFTdGF0dXMpIHsKICAgICAgICAgbV9zYW1wbGVDb3VudCA9IHNhbXBsZXNDb252ZXJ0ZWQ7CiAg
ICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IGU1ZWM0Nzc3ODU4
MWE3YWNmMGU3MjU1MzMzZjllMjY5NDFjNDcyZDEuLmQyYjVhYzQ1ZjMwZmQ0YTNhZjUxYjQyMGRl
Mzc2NDliMTE1MWMyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTQyLDcgKzQyLDYg
QEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogUmVm
PEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoc2l6
ZV90IG1heGltdW1TYW1wbGVDb3VudCwgTG9nZ2VySGVscGVyJiBsb2dnZXJIZWxwZXIsIHNpemVf
dCB3YWl0VG9TdGFydEZvclB1c2hDb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCmluZGV4IDg5ZWNl
ZWQ2MWNiMTliZmQ3ZDQyMGM3NzhhYWExMjBhYzM1NmRiZmQuLjMwZGViMmU0Yzc0MWRmNTQ4OGIz
OGY1ZWQ1OWVlYmU1YTAyODliZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApAQCAtMzIsNyArMzIs
NiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBXZWJBdWRpb0J1ZmZlckxpc3Q6Oldl
YkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCkK
ICAgICA6IG1fYnl0ZXNQZXJGcmFtZShmb3JtYXQuYnl0ZXNQZXJGcmFtZSgpKQpAQCAtMTE2LDcg
KzExNSw3IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBDCiAgICAgICAgIHJldHVybjsKIAogICAg
IENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9FcnIgPT0gQ01T
YW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1w
bGVCdWZmZXIsIG51bGxwdHIsIG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6
ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwg
a0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50
LCAmYnVmZmVyKSkKKyAgICBpZiAobm9FcnIgPT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEF1ZGlv
QnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwgbnVsbHB0ciwg
bV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JTeXN0
ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJGbGFn
X0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpKQogICAgICAg
ICBtX2Jsb2NrQnVmZmVyID0gYWRvcHRDRihidWZmZXIpOwogCiAgICAgcmVzZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRB
ZGFwdG9ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091
dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAppbmRleCAyZTk2MzBmYjYwZjIyYjNlZTU2ZDI0MmQ3MzA0
MzQ4NmI4N2I1NjJmLi5mODkxMDdmZmIxYzNmNTNiZTMxOWFhMzg2ODE0Nzc0YmI0ZDI3YTQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRV
bml0QWRhcHRvcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwCkBAIC0zMywxNSArMzMsNyBAQAogI2lmIEVO
QUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJBdWRp
b1Nlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQotU09GVF9MSU5LX0ZS
QU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBv
bmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50
LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uICppbkRlc2MpLCAoaW5Db21wb25lbnQs
IGluRGVzYykpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNl
TmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlICpvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQotU09G
VF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0QWRkUHJvcGVydHlMaXN0ZW5lciwgT1NTdGF0
dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5p
dFByb3BlcnR5TGlzdGVuZXJQcm9jIGluUHJvYywgdm9pZCAqaW5Qcm9jVXNlckRhdGEpLCAoaW5V
bml0LCBpbklELCBpblByb2MsIGluUHJvY1VzZXJEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xi
b3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1
ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0
RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQgKm91dERhdGEsIFVJbnQzMiAqaW9EYXRhU2l6ZSksIChp
blVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCi1T
T0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1
ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlv
VW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFBy
b3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBp
bkVsZW1lbnQsIGNvbnN0IHZvaWQgKmluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0
LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjaW5jbHVk
ZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNTgsMTUgKzUwLDE1IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmln
dXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5j
b21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAg
IGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0g
MDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAgY29t
cCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQo
Y29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3
KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9D
b21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJl
c3VsdCk7CiAKICAgICBVSW50MzIgZmxhZyA9IDE7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LAorICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJv
cGVydHkobV9vdXRwdXRVbml0LAogICAgICAgICBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5h
YmxlSU8sCiAgICAgICAgIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsCiAgICAgICAgIDAsCkBAIC03
NCwyMCArNjYsMjAgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxv
YXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICAgICAgc2l6ZW9mKGZs
YWcpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0
aWFsaXplKG1fb3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFs
aXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogICAgIC8vIFNldCByZW5k
ZXIgY2FsbGJhY2sKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlucHV0
LmlucHV0UHJvYyA9IGlucHV0UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlz
OwotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAs
ICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFj
aywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAg
IEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCBzdHJlYW0gZm9ybWF0CiAgICAgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbUZvcm1hdDsKIAogICAgIFVJbnQzMiBzaXplID0g
c2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbik7Ci0gICAgcmVzdWx0ID0gQXVkaW9V
bml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9y
bWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNp
emUpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0
LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOwogICAgIEFTU0VSVCghcmVzdWx0KTsK
IAogICAgIGNvbnN0ZXhwciBpbnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsKQEAg
LTEwMSw3ICs5Myw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZs
b2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgc3RyZWFtRm9ybWF0
Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKICAgICBzdHJlYW1G
b3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0OwogCi0g
ICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0
UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikm
c3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CisgICAg
cmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQq
KSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKICAg
ICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5z
ZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtQcmVmZXJyZWRCdWZmZXJTaXplKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9y
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVu
aXRBZGFwdG9yTWFjLmNwcAppbmRleCBjOGVkM2VmNzhjOGM2YTNiMWUwNzBjYjQ0MDU5NjlhZGE0
YWMzZGEyLi43MTRjY2U4ODYyNTc1MTg2MWQ1ZTJiODUxMzEzYTg5ZDA0MTJlYWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRh
cHRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlv
T3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJB
dWRpb0J1cy5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+CisjaW5jbHVk
ZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDgsMjEgKzQ5LDIxIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmln
dXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5j
b21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAg
IGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0g
MDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAgY29t
cCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQo
Y29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3
KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9D
b21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJl
c3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7
CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAg
ICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawogICAgIEFV
UmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0gaW5wdXRQ
cm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0ID0gQXVk
aW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVu
ZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlu
cHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3Bl
X0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7
CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdApAQCAtNzksNyArODAsNyBAQCB2b2lkIEF1ZGlv
T3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVu
c2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFtRm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9IGJp
dHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFBy
b3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBr
QXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKaW5k
ZXggYTUzMzMyY2Y3ZGJkNjQ2NmY0NGY1NzZkMWNkN2FkZTc2MTUwYWE0Zi4uNzg0NzRkOGU1YTVh
YzA3MDM1MzM1OTkwY2RkZjhhZmNkODA1NjE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMzMsMTMgKzMzLDExIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmV0YWluUHRyPENN
Rm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBtYWdpY0Nvb2tpZVNp
emUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llKQogewogICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlv
biA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CiAgICAgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlv
biwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwgJmZv
cm1hdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIG1h
Z2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZmb3JtYXQpOwogICAgIGlmIChl
cnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24g
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTUs
MTQgKzUzLDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1w
bGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAg
ICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlw
dGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxw
dHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZm
ZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRo
UGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBu
dWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRy
LCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJj
cmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVkIC0g
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBhdXRvIGJ1
ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKIAotICAgIGVycm9yID0gQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJT
ZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVy
TGlzdD4oZGF0YSkubGlzdCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9S
KCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxlZCAt
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAppbmRleCA1
N2NmMjlkMGQ3N2U2Nzg4OWJkY2VmZDQwNTg1MTI5ZWQxMmE0NTU1Li42NGUzMGJjMjkzY2E4Zjkz
ODg0ODhmMTQ4ODUwNmM1N2JlMGE1MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC00MSw3ICs0MSw2IEBA
CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIpCiB7CkBAIC05MCw3ICs4OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYgc2Ft
cGxlCiB7CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZv
cm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0g
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZTogQ01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlciByZXR1cm5lZCBudWxscHRyIik7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmlu
ZGV4IDk4MzliMzcwYTcxM2I3YzFkMjNkODQ3ZmE4NjUwNWQ1YWU5NzlhYjIuLmRmZjRmYTRlZGYy
NjRiNDUyYmY4ZGE3YWZhZWY0Y2JkN2EwMjdiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTQ2LDIyICs0NiwxMyBAQAogI2ltcG9y
dCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjZW5kaWYKIAorI2ltcG9ydCA8cGFsL2NmL0F1
ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgotCi1TT0ZUX0xJ
TktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29s
Ym94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21w
bGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIs
IFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0
RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIs
IGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi1TT0ZUX0xJ
TksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVm
KiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1h
dCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQotCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYg
dGFwKSwgKHRhcCkpCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cEdldFNvdXJjZUF1ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwg
Q01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91
dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1l
UmFuZ2VPdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFt
ZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVz
T3V0KSkKLVNPRlRfTElOS19NQVlfRkFJTChNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MgKmNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiAqdGFwT3V0KSwg
KGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNpbXBvcnQgPHBhbC9jb2Nv
YS9NZWRpYVRvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiBzdGF0aWMgY29uc3QgZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRpb24g
PSAxOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFwU3RvcmFnZSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFw
U3RvcmFnZT4gewpAQCAtNzMsNyArNjQsNyBAQCBwdWJsaWM6CiAKIFJlZlB0cjxBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShBVlBs
YXllckl0ZW0gKml0ZW0pCiB7Ci0gICAgaWYgKCFjYW5Mb2FkTVRBdWRpb1Byb2Nlc3NpbmdUYXBD
cmVhdGUoKSkKKyAgICBpZiAoIVBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nl
c3NpbmdUYXBDcmVhdGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoaXRlbSkpOwogfQpAQCAtMTUy
LDcgKzE0Myw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1
dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgbV9yZWFkQ291bnQgKz0g
ZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRpb0Nv
bnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1By
b2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgUEFMOjpBdWRpb0Nv
bnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1By
b2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKIH0KIAogdm9pZCBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIGNs
aWVudCkKQEAgLTIyNSw3ICsyMTYsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
OjpjcmVhdGVNaXhJZk5lZWRlZCgpCiAgICAgfTsKIAogICAgIE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmIHRhcCA9IG51bGxwdHI7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRBdWRpb1Byb2Nlc3Np
bmdUYXBDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwgJnRhcCk7Cisg
ICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKICAgICBpZiAoc3RhdHVzICE9
IG5vRXJyKSB7CiAgICAgICAgIGlmICh0YXApCiAgICAgICAgICAgICBDRlJlbGVhc2UodGFwKTsK
QEAgLTI1OCwxNCArMjQ5LDE0IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Omlu
aXRDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIHZvaWQqCiB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpmaW5hbGl6ZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5n
VGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9y
YWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3Rv
cmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFw
U3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogICAg
IHRhcFN0b3JhZ2UtPmRlcmVmKCk7CiB9CiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNv
dW50IG1heEZyYW1lcywgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICpwcm9jZXNz
aW5nRm9ybWF0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3Jh
Z2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9y
YWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBT
dG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAg
ICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0yNzYsNyArMjY3LDcg
QEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxiYWNrKE1UQXVk
aW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ00KIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsKICAg
ICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8
VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBU
YXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRB
dWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7
IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjg3LDcgKzI3OCw3IEBAIHZvaWQgQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmIHRhcCkKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3NDYWxsYmFj
ayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyBmbGFncywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJM
aXN0SW5PdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwRmxhZ3MgKmZsYWdzT3V0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2Uq
IHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNf
Y2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFw
KSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0zMTcs
NyArMzA4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0
ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEKIAogICAgIGlmICgqbV90YXBEZXNj
cmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZlcnRl
clJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5ldyht
X3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29u
dmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlck5ldyhtX3RhcERlc2NyaXB0aW9u
LmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsKICAgICAg
ICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0zNTcsNyArMzQ4LDcg
QEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2VzcyhNVEF1ZGlvUHJvY2Vz
c2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW4KICAgICAKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291
bnQgPSAwOwogICAgIENNVGltZVJhbmdlIHJhbmdlT3V0OwotICAgIE9TU3RhdHVzIHN0YXR1cyA9
IE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1lcywg
YnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKKyAgICBP
U1N0YXR1cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8o
dGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0
LCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8ICFpdGVtQ291bnQpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggMzA1YjNkMjdlMzQy
Zjk4NzIxMTJmMTE3NGMxNGZmNGYzYzYwODU1ZC4uZDE0YWZmNGY0NDk3ZjkyN2RmYTFjNjZjZDEw
ZjBhN2JlYjIzOTJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yMzIsNyArMjMyLDYg
QEAgc3RydWN0IExvZ0FyZ3VtZW50PEFWUGxheWVyVGltZUNvbnRyb2xTdGF0dXM+IHsKIH07IC8v
IG5hbWVzcGFjZSBXVEYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIAogc3RhdGljIE5TQXJyYXkgKmFzc2V0TWV0YWRhdGFLZXlOYW1lcygpOwogc3RhdGljIE5T
QXJyYXkgKml0ZW1LVk9Qcm9wZXJ0aWVzKCk7CkBAIC01ODIsOCArNTgxLDggQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCiAK
ICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVydHVyZU1vZGU6QVZBc3NldEltYWdl
R2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07CiAgICAgW21faW1hZ2VHZW5lcmF0
b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtOllFU107Ci0gICAgW21f
aW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUJlZm9yZTprQ01U
aW1lWmVyb107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRv
bGVyYW5jZUFmdGVyOmtDTVRpbWVaZXJvXTsKKyAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBz
ZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOlBBTDo6a0NNVGltZVplcm9dOworICAgIFtt
X2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjpQQUw6
OmtDTVRpbWVaZXJvXTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKQpAQCAtNjcxLDcgKzY3MCw3IEBAIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRTdGFydERhdGUo
KSBjb25zdAogICAgIGlmICghZGF0ZSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKTsKIAotICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IENNVGltZUdldFNlY29uZHMoW21f
YXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAwOworICAgIGRvdWJsZSBjdXJyZW50VGlt
ZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0ZW0gY3VycmVudFRpbWVdKSAq
IDEwMDA7CiAKICAgICAvLyBSb3VuZGluZyBkdWUgdG8gc2Vjb25kIG9mZnNldCBlcnJvciB3aGVu
IHN1YnRyYWN0aW5nLgogICAgIHJldHVybiBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUocm91
bmQoZGF0ZSAtIGN1cnJlbnRUaW1lKSk7CkBAIC0xMDg5LDcgKzEwODgsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKIAogICAgIEFT
U0VSVCghbV9jdXJyZW50VGltZU9ic2VydmVyKTsKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpOwotICAgIG1fY3VycmVudFRpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFk
ZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOlt3ZWFrVGhpc10gKENNVGltZSB0
aW1lKSB7CisgICAgbV9jdXJyZW50VGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkUGVyaW9k
aWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vha1RoaXNdIChDTVRpbWUgdGlt
ZSkgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+Y3VycmVu
dE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKHRpbWUpKTsKICAgICB9XTsKQEAg
LTE0MjMsNyArMTQyMiw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKICAgICAgICAgcmV0dXJuIE1lZGlhVGlt
ZTo6emVyb1RpbWUoKTsKIAogICAgIGlmICghbV93YWxsQ2xvY2tBdENhY2hlZEN1cnJlbnRUaW1l
KQotICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKHRvTWVkaWFUaW1lKFttX2F2UGxh
eWVySXRlbS5nZXQoKSBjdXJyZW50VGltZV0pKTsKKyAgICAgICAgY3VycmVudE1lZGlhVGltZURp
ZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKFttX2F2UGxheWVySXRlbS5nZXQoKSBjdXJyZW50VGlt
ZV0pKTsKICAgICBBU1NFUlQobV93YWxsQ2xvY2tBdENhY2hlZEN1cnJlbnRUaW1lKTsKIAogICAg
IGF1dG8gaXRlbVRpbWUgPSBtX2NhY2hlZEN1cnJlbnRNZWRpYVRpbWU7CkBAIC0xNDY4LDggKzE0
NjcsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNlZWtUb1Rp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAgIENNVGltZSBjbUFmdGVyID0gUEFM
Ojp0b0NNVGltZShwb3NpdGl2ZVRvbGVyYW5jZSk7CiAKICAgICAvLyBbQVZQbGF5ZXJJdGVtIHNl
ZWtUb1RpbWVdIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRvbGVyYW5jZUJlZm9yZSBpcyBu
ZWdhdGl2ZS4KLSAgICBpZiAoQ01UaW1lQ29tcGFyZShjbUJlZm9yZSwga0NNVGltZVplcm8pIDwg
MCkKLSAgICAgICAgY21CZWZvcmUgPSBrQ01UaW1lWmVybzsKKyAgICBpZiAoUEFMOjpDTVRpbWVD
b21wYXJlKGNtQmVmb3JlLCBQQUw6OmtDTVRpbWVaZXJvKSA8IDApCisgICAgICAgIGNtQmVmb3Jl
ID0gUEFMOjprQ01UaW1lWmVybzsKICAgICAKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpOwogCkBAIC0xNTg2LDYgKzE1ODUsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnNldFBpdGNoQ29ycmVjdGlvbkFsZ29yaXRobShNZWRpYVBsYXll
cgogCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcygpIGNvbnN0CiB7
CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGF1dG8gdGltZVJhbmdlcyA9IG1ha2VV
bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwogCiAgICAgaWYgKCFtX2F2UGxheWVySXRlbSkK
QEAgLTE1OTQsMTMgKzE1OTUsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdl
cz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm0KICAgICBmb3Ig
KE5TVmFsdWUgKnRoaXNSYW5nZVZhbHVlIGluIG1fY2FjaGVkTG9hZGVkUmFuZ2VzLmdldCgpKSB7
CiAgICAgICAgIENNVGltZVJhbmdlIHRpbWVSYW5nZSA9IFt0aGlzUmFuZ2VWYWx1ZSBDTVRpbWVS
YW5nZVZhbHVlXTsKICAgICAgICAgaWYgKENNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkg
JiYgIUNNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5nZSkpCi0gICAgICAgICAgICB0aW1lUmFu
Z2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRvTWVkaWFU
aW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKKyAgICAgICAgICAgIHRpbWVSYW5n
ZXMtPmFkZChQQUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CiAgICAgfQogICAgIHJldHVy
biB0aW1lUmFuZ2VzOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogeworICAgIHVzaW5nIG5h
bWVzcGFjZSBQQUw7CisKICAgICBpZiAoIW1fY2FjaGVkU2Vla2FibGVSYW5nZXMgfHwgIVttX2Nh
Y2hlZFNlZWthYmxlUmFuZ2VzIGNvdW50XSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVy
b1RpbWUoKTsKIApAQCAtMTYyMSw2ICsxNjI0LDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWluVGltZVNlZWthYmxlKCkgY29uc3QKIAog
TWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4
VGltZVNlZWthYmxlKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOworCiAgICAg
aWYgKCFtX2NhY2hlZFNlZWthYmxlUmFuZ2VzKQogICAgICAgICBtX2NhY2hlZFNlZWthYmxlUmFu
Z2VzID0gW21fYXZQbGF5ZXJJdGVtIHNlZWthYmxlVGltZVJhbmdlc107CiAKQEAgLTE2MzMsNyAr
MTYzOCw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpw
bGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0Vf
SVNfVkFMSUQodGltZVJhbmdlKSB8fCBDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZS
YW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7Cisg
ICAgICAgIE1lZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGlt
ZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpOwogICAgICAgICBpZiAobWF4VGltZVNlZWthYmxlIDwg
ZW5kT2ZSYW5nZSkKICAgICAgICAgICAgIG1heFRpbWVTZWVrYWJsZSA9IGVuZE9mUmFuZ2U7CiAg
ICAgfQpAQCAtMTY0Miw2ICsxNjQ3LDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKIAogTWVkaWFU
aW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxv
YWRlZCgpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGlmICghbV9j
YWNoZWRMb2FkZWRSYW5nZXMpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7
CiAKQEAgLTE2NTEsNyArMTY1OCw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgICAgICBpZiAo
IUNNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFko
dGltZVJhbmdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVk
aWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRp
bWVSYW5nZSkpOworICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRp
bWVMb2FkZWQgPCBlbmRPZlJhbmdlKQogICAgICAgICAgICAgbWF4VGltZUxvYWRlZCA9IGVuZE9m
UmFuZ2U7CiAgICAgfQpAQCAtMTgwMyw3ICsxODEwLDcgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUlu
UmUKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAg
ICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5zaXpl
KCkpXTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2lt
YWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25k
cyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOworICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiByYXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29w
eUNHSW1hZ2VBdFRpbWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1
YWxUaW1lOm5pbCBlcnJvcjpuaWxdKTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2Ug
PSBhZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCks
IHNSR0JDb2xvclNwYWNlUmVmKCkpKTsKIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJj
cmVhdGluZyBpbWFnZSB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNv
bmRzKCkpOwpAQCAtMTk4OSw3ICsxOTk2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpkaWRTdG9wTG9hZGluZ1JlcXVlc3QoQVZBc3NldFJlc291cmNlTG8KIAog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjppc0F2YWlsYWJsZSgpCiB7
Ci0gICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBp
c0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3Vu
ZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2
YWlsYWJsZSgpOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6bWVkaWFUaW1lRm9yVGltZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVlKSBj
b25zdApAQCAtMzIzNSw5ICszMjQyLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZlKGNvbnN0IFJldGFpblB0cjwKICAgICAg
ICAgZm9yIChBVk1ldGFkYXRhSXRlbSAqaXRlbSBpbiBncm91cC5pdGVtcykgewogICAgICAgICAg
ICAgUmV0YWluUHRyPEFWTXV0YWJsZU1ldGFkYXRhSXRlbT4gaXRlbUNvcHkgPSBhZG9wdE5TKFtp
dGVtIG11dGFibGVDb3B5XSk7CiAgICAgICAgICAgICBpZiAoIUNNVElNRV9JU19WQUxJRChpdGVt
Q29weS5nZXQoKS50aW1lKSkKLSAgICAgICAgICAgICAgICBpdGVtQ29weS5nZXQoKS50aW1lID0g
Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGdyb3VwU3RhcnRUaW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRU
aW1lU2NhbGUpOworICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLnRpbWUgPSBQQUw6OkNN
VGltZU1ha2VXaXRoU2Vjb25kcyhncm91cFN0YXJ0VGltZSwgTWVkaWFUaW1lOjpEZWZhdWx0VGlt
ZVNjYWxlKTsKICAgICAgICAgICAgIGlmICghQ01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgp
LmR1cmF0aW9uKSkKLSAgICAgICAgICAgICAgICBpdGVtQ29weS5nZXQoKS5kdXJhdGlvbiA9IHRv
Q01UaW1lKGdyb3VwRHVyYXRpb24pOworICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLmR1
cmF0aW9uID0gUEFMOjp0b0NNVGltZShncm91cER1cmF0aW9uKTsKICAgICAgICAgICAgIFtncm91
cENvcHkgYWRkT2JqZWN0Oml0ZW1Db3B5LmdldCgpXTsKICAgICAgICAgfQogCkBAIC0zMjc5LDcg
KzMyODYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFk
YXRhRGlkQXJyaXZlKGNvbnN0IFJldGFpblB0cjxOU0FycgogCiAgICAgICAgIE1lZGlhVGltZSBl
bmQgPSBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCk7CiAgICAgICAgIGF1dG8gZHVy
YXRpb24gPSBpdGVtLmR1cmF0aW9uOwotICAgICAgICBpZiAoQ01USU1FX0lTX1ZBTElEKGR1cmF0
aW9uKSAmJiBDTVRpbWVHZXRTZWNvbmRzKGR1cmF0aW9uKSA+IDAuMDAxKQorICAgICAgICBpZiAo
Q01USU1FX0lTX1ZBTElEKGR1cmF0aW9uKSAmJiBQQUw6OkNNVGltZUdldFNlY29uZHMoZHVyYXRp
b24pID4gMC4wMDEpCiAgICAgICAgICAgICBlbmQgPSBzdGFydCArIFBBTDo6dG9NZWRpYVRpbWUo
ZHVyYXRpb24pOwogCiAgICAgICAgIEF0b21TdHJpbmcgdHlwZSA9IG51bGxBdG9tKCk7CkBAIC0z
NDU4LDcgKzM0NjUsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjx2bwogICAgIGlmIChtX3RpbWVP
YnNlcnZlcikKICAgICAgICAgW21fYXZQbGF5ZXIgcmVtb3ZlVGltZU9ic2VydmVyOm1fdGltZU9i
c2VydmVyLmdldCgpXTsKIAotICAgIG1fdGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkQm91
bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTp0b0NN
VGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpe
eworICAgIG1fdGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2
ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTpQQUw6OnRvQ01UaW1lKHRpbWUp
XV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CiAgICAgICAg
IHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCmluZGV4IDVhNjlhYTY3OTUxODljYjRlMDc2ZDMxOTQ2OWY5OTY1MDRmZjk0NmMuLjcz
YWRlYjliYjczYTc4MjhkZjVhM2Y0ODRjNWY5MGUzMzNkMjQxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KQEAgLTY2LDcgKzY2LDYgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU3Rv
cmFnZURpcmVjdG9yeUF0VVJMOihOU1VSTCAqKXN0b3JhZ2VEaXJlY3Rvcnk7CiBAZW5kCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFN0cmluZyBjb252ZXJ0
RW51bWVyYXRpb25Ub1N0cmluZyhNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OlNlZWtTdGF0ZSBlbnVtZXJhdGlvblZhbHVlKQogewpAQCAtMTE2LDE1ICsxMTUsMTUgQEAgc3Rh
dGljIHZvaWQgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2soQ01Ob3RpZmlj
YXRpb25DZW50ZXJSZWYsIGNvbnMKIAogdm9pZCBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVy
OjpzdG9wKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiB7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50
ZXJSZWYgbmMgPSBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpOwot
ICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIobmMsIHRoaXMsIENNVGltZWJh
c2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9F
ZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UpOworICAgIENNTm90aWZpY2F0aW9uQ2VudGVy
UmVmIG5jID0gUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigp
OworICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihuYywgdGhpcywg
Q01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIFBBTDo6a0NNVGltZWJhc2VO
b3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlKTsKIH0KIAogRWZmZWN0
aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcihNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIGNsaWVudCwgQ01UaW1lYmFzZVJlZiB0
aW1lYmFzZSkKICAgICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCiB7Ci0gICAgQ01O
b3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRM
b2NhbENlbnRlcigpOwotICAgIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIobmMsIHRo
aXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBrQ01UaW1lYmFzZU5v
dGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOworICAgIENNTm90
aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1
bHRMb2NhbENlbnRlcigpOworICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5l
cihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIFBBTDo6
a0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAw
KTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKQEAgLTE1Nyw3
ICsxNTYsNyBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYQogICAgICAgICBpZiAoIXdlYWtUaGlz
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRp
ZmllciwgInN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgdG9NZWRpYVRpbWUodGltZSksICIsIHNl
ZWtpbmcgPSAiLCBtX3NlZWtpbmcsICIsIHBlbmRpbmcgPSAiLCAhIW1fcGVuZGluZ1NlZWspOwor
ICAgICAgICBERUJVR19MT0cobG9nU2l0ZUlkZW50aWZpZXIsICJzeW5jaHJvbml6ZXIgZmlyZWQg
Zm9yICIsIFBBTDo6dG9NZWRpYVRpbWUodGltZSksICIsIHNlZWtpbmcgPSAiLCBtX3NlZWtpbmcs
ICIsIHBlbmRpbmcgPSAiLCAhIW1fcGVuZGluZ1NlZWspOwogCiAgICAgICAgIGlmIChtX3NlZWtp
bmcgJiYgIW1fcGVuZGluZ1NlZWspIHsKICAgICAgICAgICAgIG1fc2Vla2luZyA9IGZhbHNlOwpA
QCAtMjM4LDExICsyMzcsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3QKIGJvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCiB7CiAgICAgcmV0
dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKQotICAgICAgICAmJiBp
c0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpCi0gICAgICAgICYmIGdldEFWU3RyZWFtRGF0
YVBhcnNlckNsYXNzKCkKLSAgICAgICAgJiYgZ2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
Q2xhc3MoKQotICAgICAgICAmJiBnZXRBVlNhbXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplckNs
YXNzKCkKLSAgICAgICAgJiYgY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoZ2V0QVZTYW1wbGVCdWZm
ZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11dGVkOikpOworICAgICAgICAm
JiBQQUw6OmlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkKKyAgICAgICAgJiYgUEFMOjpn
ZXRBVlN0cmVhbURhdGFQYXJzZXJDbGFzcygpCisgICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVC
dWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKQorICAgICAgICAmJiBQQUw6OmdldEFWU2FtcGxlQnVm
ZmVyUmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQorICAgICAgICAmJiBjbGFzc19nZXRJbnN0YW5j
ZU1ldGhvZChQQUw6OmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxl
Y3RvcihzZXRNdXRlZDopKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+JiB0eXBlcykKQEAgLTQxNyw3ICs0MTYsNyBAQCBNZWRpYVRpbWUgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0
CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmN1cnJl
bnRNZWRpYVRpbWUoKSBjb25zdAogewotICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0g
UEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJh
c2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1l
KFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSkpOwogICAg
IGlmIChzeW5jaHJvbml6ZXJUaW1lIDwgTWVkaWFUaW1lOjp6ZXJvVGltZSgpKQogICAgICAgICBy
ZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogICAgIGlmIChzeW5jaHJvbml6ZXJUaW1lIDwg
bV9sYXN0U2Vla1RpbWUpCkBAIC00MzAsNyArNDI5LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2soTWVk
aWEKICAgICBtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KTsKIAogICAgIGlmIChtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2spIHsKLSAgICAgICAg
bV90aW1lQ2hhbmdlZE9ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZFBlcmlvZGljVGltZU9i
c2VydmVyRm9ySW50ZXJ2YWw6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSB1c2luZ0Jsb2NrOl4oQ01UaW1lIHRpbWUpIHsKKyAgICAgICAgbV90aW1lQ2hh
bmdlZE9ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9y
SW50ZXJ2YWw6UEFMOjpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpIHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkgewogICAgICAgICAgICAgaWYgKG1fY3Vy
cmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjaykKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRUaW1l
RGlkQ2hhbmdlQ2FsbGJhY2soQ01USU1FX0lTX05VTUVSSUModGltZSkgPyBQQUw6OnRvTWVkaWFU
aW1lKHRpbWUpIDogTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICAgICAgfV07CkBAIC00ODIs
NyArNDgxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
ZWtJbnRlcm5hbCgpCiAgICAgaWYgKG1fbGFzdFNlZWtUaW1lLmhhc0RvdWJsZVZhbHVlKCkpCiAg
ICAgICAgIG1fbGFzdFNlZWtUaW1lID0gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKG1fbGFz
dFNlZWtUaW1lLnRvRG91YmxlKCksIE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7CiAKLSAg
ICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFz
ZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSkpOworICAgIE1lZGlhVGltZSBzeW5j
aHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFtt
X3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAi
c2Vla1RpbWUgPSAiLCBtX2xhc3RTZWVrVGltZSwgIiwgc3luY2hyb25pemVyVGltZSA9ICIsIHN5
bmNocm9uaXplclRpbWUpOwogCiAgICAgYm9vbCBkb2VzTm90UmVxdWlyZVNlZWsgPSBzeW5jaHJv
bml6ZXJUaW1lID09IG1fbGFzdFNlZWtUaW1lOwpAQCAtNTk5LDcgKzU5OCw3IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIo
KQogICAgIGlmIChtX3ZpZGVvT3V0cHV0KSB7CiAgICAgICAgIENNVGltZSBvdXRwdXRUaW1lOwog
ICAgICAgICBpZiAoYXV0byBwaXhlbEJ1ZmZlciA9IGFkb3B0Q0YoW21fdmlkZW9PdXRwdXQgY29w
eVBpeGVsQnVmZmVyRm9yU291cmNlVGltZTp0b0NNVGltZShjdXJyZW50TWVkaWFUaW1lKCkpIHNv
dXJjZVRpbWVGb3JEaXNwbGF5OiZvdXRwdXRUaW1lXSkpIHsKLSAgICAgICAgICAgIElORk9fTE9H
KExPR0lERU5USUZJRVIsICJuZXcgcGl4ZWxidWZmZXIgZm91bmQgZm9yIHRpbWUgIiwgdG9NZWRp
YVRpbWUob3V0cHV0VGltZSkpOworICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwg
Im5ldyBwaXhlbGJ1ZmZlciBmb3VuZCBmb3IgdGltZSAiLCBQQUw6OnRvTWVkaWFUaW1lKG91dHB1
dFRpbWUpKTsKICAgICAgICAgICAgIG1fbGFzdFBpeGVsQnVmZmVyID0gV1RGTW92ZShwaXhlbEJ1
ZmZlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtODA5LDcgKzgw
OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpkZXN0cm95
TGF5ZXIoKQogICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIENNVGltZSBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKFttX3N5
bmNocm9uaXplciB0aW1lYmFzZV0pOworICAgIENNVGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01U
aW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hy
b25pemVyIHJlbW92ZVJlbmRlcmVyOm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpIGF0
VGltZTpjdXJyZW50VGltZSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MKXsKICAgICAgICAg
Ly8gTm8tb3AuCiAgICAgfV07CkBAIC0xMDE4LDcgKzEwMTcsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Zmx1c2hQZW5kaW5nU2l6ZUNoYW5nZXMoKQogI2lm
IEhBVkUoQVZTVFJFQU1TRVNTSU9OKQogQVZTdHJlYW1TZXNzaW9uKiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24oKQogewotICAgIGlmICghZ2V0QVZT
dHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBp
bnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhTdG9yYWdlRGlyZWN0
b3J5QXRVUkw6KV0pCisgICAgaWYgKCFQQUw6OmdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgfHwg
IVtQQUw6OmdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0
b3I6QHNlbGVjdG9yKGluaXRXaXRoU3RvcmFnZURpcmVjdG9yeUF0VVJMOildKQogICAgICAgICBy
ZXR1cm4gbmlsOwogCiAgICAgaWYgKCFtX3N0cmVhbVNlc3Npb24pIHsKQEAgLTEyMTcsNyArMTIx
Niw3IEBAIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiAgICAgaWYgKGl0ZXIgPT0g
bV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6
ZXIgdGltZWJhc2VdKTsKKyAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZWJhc2VH
ZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOwogICAgIFttX3N5bmNocm9uaXplciBy
ZW1vdmVSZW5kZXJlcjphdWRpb1JlbmRlcmVyIGF0VGltZTpjdXJyZW50VGltZSB3aXRoQ29tcGxl
dGlvbkhhbmRsZXI6XihCT09MKXsKICAgICAgICAgLy8gTm8tb3AuCiAgICAgfV07CkBAIC0xMzAx
LDcgKzEzMDAsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPAogICAgIGlmIChtX3BlcmZvcm1U
YXNrT2JzZXJ2ZXIpCiAgICAgICAgIFttX3N5bmNocm9uaXplciByZW1vdmVUaW1lT2JzZXJ2ZXI6
bV9wZXJmb3JtVGFza09ic2VydmVyLmdldCgpXTsKIAotICAgIG1fcGVyZm9ybVRhc2tPYnNlcnZl
ciA9IFttX3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05T
VmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAgbV9wZXJmb3JtVGFza09ic2VydmVyID0g
W21fc3luY2hyb25pemVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1
ZSB2YWx1ZVdpdGhDTVRpbWU6UEFMOjp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeewogICAgICAgICB0YXNrSW4oKTsKICAgICB9XTsK
ICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCBlMWFkMTAy
YmI5ODFiZjM3NGU2YmQ5MzdjMGM2ZTJhODdmNDBmMTVmLi41NWI1MDBjNTdlOTNlYmJhNDk2YWU3
NDE2ZmQ1ZGY3OGQ3Yjk0NThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0zMiw2
ICszMiw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKyNpbXBvcnQg
Ik1lZGlhUGxheWVyLmgiCiAjaW1wb3J0ICJNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCIKICNp
bXBvcnQgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVi5oIgpAQCAtMTIxLDcgKzEyMiw2IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0
aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOCiBAZW5k
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNwcmFnbWEg
bWFyayAtCiAjcHJhZ21hIG1hcmsgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
CkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3QKIAogYm9vbCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICBy
ZXR1cm4gaXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBpc0NvcmVNZWRpYUZy
YW1ld29ya0F2YWlsYWJsZSgpICYmIGdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3Mo
KTsKKyAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYm
IFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBQQUw6OmdldEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcykKQEAgLTIzMCw3ICsyMzAsNyBAQCBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c3VwcG9ydHNUeXBlKGNvbgogc3RhdGljIGlubGluZSBDR0FmZmluZVRyYW5zZm9ybSB2aWRlb1Ry
YW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7CiAgICAgQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNt
U2FtcGxlQnVmZmVyOwotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNf
Y2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBs
ZUJ1ZmZlcikpOworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2Fz
dDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2Ft
cGxlQnVmZmVyKSk7CiAgICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBp
eGVsQnVmZmVyKTsKICAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChw
aXhlbEJ1ZmZlcik7CiAgICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0KQpAQCAtOTYwLDcgKzk2MCw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJy
ZW50RnJhbWVJbWFnZSgpCiAgICAgaWYgKCFtX2ltYWdlUGFpbnRlci5waXhlbEJ1ZmZlckNvbmZv
cm1lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19j
YXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9pbWFn
ZVBhaW50ZXIubWVkaWFTYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVm
ZmVyKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJS
ZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRp
YVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKICAgICBt
X2ltYWdlUGFpbnRlci5jZ0ltYWdlID0gTmF0aXZlSW1hZ2U6OmNyZWF0ZShtX2ltYWdlUGFpbnRl
ci5waXhlbEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxC
dWZmZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpD
Lm1tCmluZGV4IDJmNDk4Mzg3NjVkM2M5NDQxYjY5YmI5NTE4YjNiMWY5YTg3OTUwOWIuLjdiZjQy
ZDRlN2Q3Y2NiMjhhY2FmMzkwODA4OWUxNTFjNDI0ZDdmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KQEAgLTM2LDkgKzM2LDExIEBACiAjaW1wb3J0
ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KLVdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQo
Q01TYW1wbGVCdWZmZXIpOworLy8gV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1
ZmZlcik7Cit0ZW1wbGF0ZSA8Pgorc3RydWN0IFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZm
ZXJSZWY+IHsKKyAgICBzdGF0aWMgaW5saW5lIENGVHlwZUlEIHR5cGVJRCh2b2lkKSB7IHJldHVy
biBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VHlwZUlEKCk7IH0KK307CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjcsMzUgKzY5LDM1IEBAIFJlZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IE1l
ZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUoUGl4ZWxCdWZmZXImJiBwCiAgICAg
QVNTRVJUX1VOVVNFRChzdGF0dXMsICFzdGF0dXMpOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uUmF3ID0gbnVsbHB0cjsKLSAgICBzdGF0dXMgPSBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb25SYXcpOworICAg
IHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZm
ZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2Ny
aXB0aW9uUmF3KTsKICAgICBBU1NFUlQoIXN0YXR1cyk7CiAgICAgYXV0byBmb3JtYXREZXNjcmlw
dGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRpb25SYXcpOwogCi0gICAgQ01TYW1wbGVUaW1p
bmdJbmZvIHNhbXBsZVRpbWluZ0luZm9ybWF0aW9uID0geyBrQ01UaW1lSW52YWxpZCwga0NNVGlt
ZUludmFsaWQsIGtDTVRpbWVJbnZhbGlkIH07CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHNhbXBs
ZVRpbWluZ0luZm9ybWF0aW9uID0geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OmtDTVRpbWVJ
bnZhbGlkLCBQQUw6OmtDTVRpbWVJbnZhbGlkIH07CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyUmF3ID0gbnVsbHB0cjsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIu
Z2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24s
ICZzYW1wbGVCdWZmZXJSYXcpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVy
LmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9ybWF0aW9u
LCAmc2FtcGxlQnVmZmVyUmF3KTsKICAgICBBU1NFUlQoIXN0YXR1cyk7CiAgICAgYXV0byBzYW1w
bGVCdWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlclJhdyk7CiAKLSAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXko
c2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJy
YXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVC
dWZmZXIuZ2V0KCksIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMCwgY291bnQgPSBDRkFy
cmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAg
IENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZN
dXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0Fy
cmF5LCBpKSk7Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01T
YW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwor
ICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVB
dHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0K
ICAgICByZXR1cm4gY3JlYXRlKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CiB9CiAKIE1lZGlhVGltZSBN
ZWRpYVNhbXBsZUFWRk9iakM6OnByZXNlbnRhdGlvblRpbWUoKSBjb25zdAogewotICAgIGF1dG8g
dGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
bV9zYW1wbGUuZ2V0KCkpOworICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYg
KENNVElNRV9JU19JTlZBTElEKHRpbWVTdGFtcCkpCi0gICAgICAgIHRpbWVTdGFtcCA9IENNU2Ft
cGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKKyAgICAg
ICAgdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFt
cChtX3NhbXBsZS5nZXQoKSk7CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUodGltZVN0YW1w
KTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGVjb2RlVGltZSgpIGNvbnN0
CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFt
cChtX3NhbXBsZS5nZXQoKSk7CisgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lT
X0lOVkFMSUQodGltZVN0YW1wKSkKICAgICAgICAgcmV0dXJuIHByZXNlbnRhdGlvblRpbWUoKTsK
ICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApOwpAQCAtMTAzLDE1ICsxMDUs
MTUgQEAgTWVkaWFUaW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGVjb2RlVGltZSgpIGNvbnN0CiAK
IE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmR1cmF0aW9uKCkgY29uc3QKIHsKLSAgICBh
dXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihtX3NhbXBsZS5n
ZXQoKSk7CisgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRE
dXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKGR1cmF0
aW9uKSkKLSAgICAgICAgZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKG1fc2Ft
cGxlLmdldCgpKTsKKyAgICAgICAgZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVy
YXRpb24obV9zYW1wbGUuZ2V0KCkpOwogICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKGR1cmF0
aW9uKTsKIH0KIAogc2l6ZV90IE1lZGlhU2FtcGxlQVZGT2JqQzo6c2l6ZUluQnl0ZXMoKSBjb25z
dAogewotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBs
ZS5nZXQoKSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNp
emUobV9zYW1wbGUuZ2V0KCkpOwogfQogCiBQbGF0Zm9ybVNhbXBsZSBNZWRpYVNhbXBsZUFWRk9i
akM6OnBsYXRmb3JtU2FtcGxlKCkKQEAgLTEyMiwyMyArMTI0LDIzIEBAIFBsYXRmb3JtU2FtcGxl
IE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxhdGZvcm1TYW1wbGUoKQogCiB1aW50MzJfdCBNZWRpYVNh
bXBsZUFWRk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdAogewotICAgIGF1dG8gcGl4ZWxC
dWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldElt
YWdlQnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRp
Y19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihtX3NhbXBsZS5nZXQoKSkpOwogICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3Jt
YXRUeXBlKHBpeGVsQnVmZmVyKTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlckF0
dGFjaG1lbnRSYW5kb21BY2Nlc3MoQ0ZEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0KQogewot
ICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIGtDTVNh
bXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7CisgICAgcmV0dXJuICFDRkRpY3Rpb25hcnlDb250
YWluc0tleShhdHRhY2htZW50RGljdCwgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5
bmMpOwogfQogCiBzdGF0aWMgYm9vbCBkb2VzQ01TYW1wbGVCdWZmZXJIYXZlU3luY0luZm8oQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgcmV0dXJuIFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogfQog
CiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyUmFuZG9tQWNjZXNzKENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZSkKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShzYW1wbGUsIGZhbHNlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAKQEAgLTE1MSwxMiArMTUzLDEyIEBAIHN0YXRpYyBib29sIGlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogCiBzdGF0aWMg
Ym9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudE5vbkRpc3BsYXlpbmcoQ0ZEaWN0aW9uYXJ5
UmVmIGF0dGFjaG1lbnREaWN0KQogewotICAgIHJldHVybiBDRkRpY3Rpb25hcnlDb250YWluc0tl
eShhdHRhY2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkpOwor
ICAgIHJldHVybiBDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwgUEFMOjpr
Q01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSk7CiB9CiAKIHN0YXRpYyBib29sIGlz
Q01TYW1wbGVCdWZmZXJOb25EaXNwbGF5aW5nKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIHsK
LSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZh
bHNlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
CkBAIC0xODYsMTEgKzE4OCwxMSBAQCBNZWRpYVNhbXBsZTo6U2FtcGxlRmxhZ3MgTWVkaWFTYW1w
bGVBVkZPYmpDOjpmbGFncygpIGNvbnN0CiAKIEZsb2F0U2l6ZSBNZWRpYVNhbXBsZUFWRk9iakM6
OnByZXNlbnRhdGlvblNpemUoKSBjb25zdAogewotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1f
c2FtcGxlLmdldCgpKTsKLSAgICBpZiAoQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShm
b3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQorICAgIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9y
bWF0RGVzY3JpcHRpb24obV9zYW1wbGUuZ2V0KCkpOworICAgIGlmIChQQUw6OkNNRm9ybWF0RGVz
Y3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24pICE9IGtDTU1lZGlhVHlwZV9W
aWRlbykKICAgICAgICAgcmV0dXJuIEZsb2F0U2l6ZSgpOwogICAgIAotICAgIHJldHVybiBGbG9h
dFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhm
b3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgIHJldHVybiBGbG9hdFNpemUoUEFM
OjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1h
dERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7CiB9CiAKIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpD
OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CkBAIC0yMDEsMTIgKzIwMywxMiBAQCB2b2lk
IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogdm9pZCBN
ZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmIG9m
ZnNldCkKIHsKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAh
PSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwg
MCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIs
ICZpdGVtQ291bnQpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgVmVjdG9yPENNU2FtcGxl
VGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0
ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRh
KCksIG51bGxwdHIpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9B
cnJheS5kYXRhKCksIG51bGxwdHIpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgZm9yIChh
dXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZvQXJyYXkpIHsKQEAgLTIxNSw3ICsyMTcsNyBAQCB2b2lk
IE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYg
b2Zmc2V0KQogICAgIH0KICAgICAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0g
ICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0Fy
cmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVC
dWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBs
ZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUp
OwpAQCAtMjI0LDEyICsyMjYsMTIgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNldFRp
bWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmIG9mZnNldCkKIHZvaWQgTWVkaWFTYW1wbGVBVkZP
YmpDOjpzZXRUaW1lc3RhbXBzKGNvbnN0IFdURjo6TWVkaWFUaW1lICZwcmVzZW50YXRpb25UaW1l
c3RhbXAsIGNvbnN0IFdURjo6TWVkaWFUaW1lICZkZWNvZGVUaW1lc3RhbXApCiB7CiAgICAgQ01J
dGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVt
Q291bnQpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAg
ICAgICAgcmV0dXJuOwogICAgIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWlu
Z0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIGlm
IChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBs
ZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKKyAg
ICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxs
cHRyKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGZvciAoYXV0byYgdGltaW5nIDogdGlt
aW5nSW5mb0FycmF5KSB7CkBAIC0yMzgsNyArMjQwLDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9i
akM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVz
dGEKICAgICB9CiAgICAgCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3U2FtcGxlOwotICAgIGlm
IChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5k
YXRhKCksICZuZXdTYW1wbGUpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVy
Q3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0
KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCiAgICAg
ICAgIHJldHVybjsKICAgICAKICAgICBtX3NhbXBsZSA9IGFkb3B0Q0YobmV3U2FtcGxlKTsKQEAg
LTI0NiwxMCArMjQ4LDEwIEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRUaW1lc3RhbXBz
KGNvbnN0IFdURjo6TWVkaWFUaW1lICZwcmVzZW50YXRpb25UaW1lc3RhCiAKIGJvb2wgTWVkaWFT
YW1wbGVBVkZPYmpDOjppc0RpdmlzYWJsZSgpIGNvbnN0CiB7Ci0gICAgaWYgKENNU2FtcGxlQnVm
ZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSkgPT0gMSkKKyAgICBpZiAoUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpID09IDEpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGlmIChDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSht
X3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgbnVsbHB0cikgPT0ga0NNU2FtcGxlQnVmZmVyRXJy
b3JfQnVmZmVySGFzTm9TYW1wbGVTaXplcykKKyAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZVNpemVBcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgbnVsbHB0cikgPT0g
a0NNU2FtcGxlQnVmZmVyRXJyb3JfQnVmZmVySGFzTm9TYW1wbGVTaXplcykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjIsMTcgKzI2NCwxNyBAQCBzdGQ6
OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlhU2FtcGxlPj4gTWVkaWFTYW1w
bGVBVkZPYmpDOjpkaXZpZGUoYwogCiAgICAgQ0ZJbmRleCBzYW1wbGVzQmVmb3JlUHJlc2VudGF0
aW9uVGltZSA9IDA7CiAKLSAgICBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUo
bV9zYW1wbGUuZ2V0KCksIFsmXSAoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0
ZW1Db3VudCkgLT4gT1NTdGF0dXMgewotICAgICAgICBhdXRvIHRpbWVTdGFtcCA9IENNU2FtcGxl
QnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAg
UEFMOjpDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUobV9zYW1wbGUuZ2V0KCks
IFsmXSAoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCkgLT4gT1NT
dGF0dXMgeworICAgICAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRP
dXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKICAgICAgICAgaWYgKENN
VElNRV9JU19JTlZBTElEKHRpbWVTdGFtcCkpCi0gICAgICAgICAgICB0aW1lU3RhbXAgPSBDTVNh
bXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOworICAgICAg
ICAgICAgdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVT
dGFtcChzYW1wbGVCdWZmZXIpOwogCiAgICAgICAgIGlmICh1c2VFbmRUaW1lID09IFVzZUVuZFRp
bWU6OlVzZSkgewotICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0
T3V0cHV0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgIGF1dG8gZHVyYXRpb24g
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKICAg
ICAgICAgICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRChkdXJhdGlvbikpCi0gICAgICAgICAgICAg
ICAgZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7Cisg
ICAgICAgICAgICAgICAgZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24o
c2FtcGxlQnVmZmVyKTsKIAotICAgICAgICAgICAgaWYgKFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1l
QWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+IHByZXNlbnRhdGlvblRpbWUpCisgICAgICAgICAg
ICBpZiAoUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZUFkZCh0aW1lU3RhbXAsIGR1cmF0aW9u
KSkgPiBwcmVzZW50YXRpb25UaW1lKQogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAg
ICB9IGVsc2UgaWYgKFBBTDo6dG9NZWRpYVRpbWUodGltZVN0YW1wKSA+PSBwcmVzZW50YXRpb25U
aW1lKQogICAgICAgICAgICAgcmV0dXJuIDE7CkBAIC0yODMsMTkgKzI4NSwxOSBAQCBzdGQ6OnBh
aXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlhU2FtcGxlPj4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpkaXZpZGUoYwogICAgIGlmICghc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUp
CiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIHRoaXMgfTsKIAotICAgIENNSXRlbUNvdW50IHNh
bXBsZUNvdW50ID0gQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKTsK
KyAgICBDTUl0ZW1Db3VudCBzYW1wbGVDb3VudCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXROdW1T
YW1wbGVzKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlv
blRpbWUgPj0gc2FtcGxlQ291bnQpCiAgICAgICAgIHJldHVybiB7IHRoaXMsIG51bGxwdHIgfTsK
IAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJlZm9yZSA9IG51bGxwdHI7CiAgICAg
Q0ZSYW5nZSByYW5nZUJlZm9yZSA9IENGUmFuZ2VNYWtlKDAsIHNhbXBsZXNCZWZvcmVQcmVzZW50
YXRpb25UaW1lKTsKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFu
Z2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlQmVmb3JlLCAmcmF3
U2FtcGxlQmVmb3JlKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckNvcHlT
YW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwg
cmFuZ2VCZWZvcmUsICZyYXdTYW1wbGVCZWZvcmUpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4g
eyBudWxscHRyLCBudWxscHRyIH07CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBz
YW1wbGVCZWZvcmUgPSBhZG9wdENGKHJhd1NhbXBsZUJlZm9yZSk7CiAKICAgICBDTVNhbXBsZUJ1
ZmZlclJlZiByYXdTYW1wbGVBZnRlciA9IG51bGxwdHI7CiAgICAgQ0ZSYW5nZSByYW5nZUFmdGVy
ID0gQ0ZSYW5nZU1ha2Uoc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUsIHNhbXBsZUNvdW50
IC0gc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUpOwotICAgIGlmIChDTVNhbXBsZUJ1ZmZl
ckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5n
ZXQoKSwgcmFuZ2VBZnRlciwgJnJhd1NhbXBsZUFmdGVyKSAhPSBub0VycikKKyAgICBpZiAoUEFM
OjpDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VBZnRlciwgJnJhd1NhbXBsZUFmdGVyKSAhPSBub0Vy
cikKICAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxD
TVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQWZ0ZXIgPSBhZG9wdENGKHJhd1NhbXBsZUFmdGVyKTsK
IApAQCAtMzA1LDEzICszMDcsMTMgQEAgc3RkOjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJl
ZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlKGMKIFJlZjxNZWRp
YVNhbXBsZT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVOb25EaXNwbGF5aW5nQ29weSgpIGNv
bnN0CiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3U2FtcGxlQnVmZmVyID0gMDsKLSAgICBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0
KCksICZuZXdTYW1wbGVCdWZmZXIpOworICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCAmbmV3U2FtcGxlQnVmZmVyKTsK
ICAgICBBU1NFUlQobmV3U2FtcGxlQnVmZmVyKTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVu
dHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShuZXdTYW1w
bGVCdWZmZXIsIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG5ld1NhbXBsZUJ1ZmZlciwg
dHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFj
aG1lbnRzQXJyYXkpOyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRh
Y2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5
R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9u
YXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNw
bGF5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFj
aG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBrQ0ZCb29s
ZWFuVHJ1ZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRl
KGFkb3B0Q0YobmV3U2FtcGxlQnVmZmVyKS5nZXQoKSwgbV9pZCk7CkBAIC0zMjYsNyArMzI4LDcg
QEAgUmVmUHRyPEpTQzo6VWludDhDbGFtcGVkQXJyYXk+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Z2V0
UkdCQUltYWdlRGF0YSgpIGNvbnN0CiAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoY29uZm9ybWVy
T3B0aW9ucy5nZXQoKSwga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXksIGltYWdlRm9y
bWF0TnVtYmVyLmdldCgpKTsKICAgICBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWIHBpeGVsQnVmZmVy
Q29uZm9ybWVyKGNvbmZvcm1lck9wdGlvbnMuZ2V0KCkpOwogCi0gICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VC
dWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1f
c2FtcGxlLmdldCgpKSk7CiAgICAgYXV0byByZ2JhUGl4ZWxCdWZmZXIgPSBwaXhlbEJ1ZmZlckNv
bmZvcm1lci5jb252ZXJ0KHBpeGVsQnVmZmVyKTsKICAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxC
dWZmZXJMb2NrQmFzZUFkZHJlc3MocmdiYVBpeGVsQnVmZmVyLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZl
ckxvY2tfUmVhZE9ubHkpOwogICAgIEFTU0VSVChzdGF0dXMgPT0gbm9FcnIpOwpAQCAtMzQzLDEw
ICszNDUsMTAgQEAgUmVmUHRyPEpTQzo6VWludDhDbGFtcGVkQXJyYXk+IE1lZGlhU2FtcGxlQVZG
T2JqQzo6Z2V0UkdCQUltYWdlRGF0YSgpIGNvbnN0CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRT
YW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVC
dWZmZXIpCiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7CisgICAgQ0ZB
cnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0
dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9
IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7ICsraSkgewogICAgICAg
ICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENG
TXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNB
cnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NN
U2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsK
KyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxl
QXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9
CiB9CiAKQEAgLTM1Nyw3ICszNTksNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0QXNE
aXNwbGF5SW1tZWRpYXRlbHkoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIAogYm9vbCBNZWRpYVNhbXBs
ZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMoKSBjb25zdAogewotICAgIENGQXJyYXlSZWYgYXR0YWNo
bWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3Nh
bXBsZS5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCks
IHRydWUpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKQEAgLTM4NSw3ICszODcsNyBAQCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1l
ZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcwogewogICAgIHVz
aW5nIFNhbXBsZVZlY3RvciA9IFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj47CiAKLSAg
ICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0
dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0
YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpCiAg
ICAgICAgIHJldHVybiBTYW1wbGVWZWN0b3I6OmZyb20obWFrZVJlZigqdGhpcykpOwogCkBAIC00
MTgsNyArNDIwLDcgQEAgVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PiBNZWRpYVNhbXBs
ZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMKICAgICBzYW1wbGVzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkocmFuZ2VzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiByYW5nZSA6
IHJhbmdlcykgewogICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGUgPSBudWxscHRy
OwotICAgICAgICBpZiAoQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlLCAmcmF3U2FtcGxlKSAhPSBu
b0VyciB8fCAhcmF3U2FtcGxlKQorICAgICAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckNvcHlT
YW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwg
cmFuZ2UsICZyYXdTYW1wbGUpICE9IG5vRXJyIHx8ICFyYXdTYW1wbGUpCiAgICAgICAgICAgICBy
ZXR1cm4geyB9OwogICAgICAgICBzYW1wbGVzLnVuY2hlY2tlZEFwcGVuZChNZWRpYVNhbXBsZUFW
Rk9iakM6OmNyZWF0ZShhZG9wdENGKHJhd1NhbXBsZSkuZ2V0KCksIG1faWQpKTsKICAgICB9CkBA
IC00MzIsMjQgKzQzNCwyNCBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IE1lZGlhU2Ft
cGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZmZXJBbmRTZXRBc0Rpc3BsYQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZl
ciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
cGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cykKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byByZXRhaW5lZEZvcm1hdERlc2NyaXB0aW9uID0g
YWRvcHRDRihmb3JtYXREZXNjcmlwdGlvbik7CiAKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQg
PSAwOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5
KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CisgICAgc3RhdHVzID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGUsIDAsIG51bGxwdHIsICZp
dGVtQ291bnQpOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5OwogICAgIHRpbWlu
Z0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJh
eS5kYXRhKCksIG51bGxwdHIpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5k
YXRhKCksIG51bGxwdHIpOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3U2FtcGxlQnVmZmVyOwotICAgIHN0YXR1cyA9
IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgcGl4ZWxCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCB0aW1pbmdJbmZvQXJyYXkuZGF0
YSgpLCAmbmV3U2FtcGxlQnVmZmVyKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZm
ZXIsIGZvcm1hdERlc2NyaXB0aW9uLCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxl
QnVmZmVyKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5t
bQppbmRleCAwYjliYjY0ODVmM2U5ZTI1MzQ1YWFkNGY0ZTQ3MDkyYzQyOWE1Y2M4Li4wMjE5MjE2
ZDdjMmQ4OGVmNTc3NTI2ZDg4MjMwYzNlNTAzZmQ4Y2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtMjU4LDcgKzI1
OCw2IEBAIC0gKHZvaWQpYXVkaW9SZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkOihOU05v
dGlmaWNhdGlvbiopbm90ZQogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1l
c3BhY2UgUEFMOwogCiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDCkBAIC0yNzcsNyArMjc2LDcgQEAgc3RhdGljIHVpbnQ2NF90IG5leHRNYXBJ
RCgpCiAKIHN0YXRpYyB2b2lkIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2soQ01Ob3RpZmljYXRp
b25DZW50ZXJSZWYsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDRlN0cmluZ1JlZiBub3RpZmljYXRp
b25OYW1lLCBjb25zdCB2b2lkKiwgQ0ZUeXBlUmVmKQogewotICAgIGlmICghQ0ZFcXVhbChrQ01T
YW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbm90aWZpY2F0
aW9uTmFtZSkpCisgICAgaWYgKCFDRkVxdWFsKFBBTDo6a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJO
b3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG5vdGlmaWNhdGlvbk5hbWUpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7CkBAIC0zMTYsNyArMzE1LDcgQEAg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1l
ZGlhU291cmNlUHJpdmF0ZUFWRk9iakMKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwog
CiAgICAgaWYgKCFbUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5z
dGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKHByZXJvbGxEZWNvZGVXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KV0pCi0gICAgICAgIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIo
Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4obV9tYXBJRCksIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIGtDTVNhbXBs
ZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyLCAwKTsK
KyAgICAgICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKFBBTDo6Q01Ob3Rp
ZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4obV9tYXBJRCksIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIFBBTDo6a0NNU2FtcGxl
QnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIsIDApOwog
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgbV9wYXJzZXItPnNldExvZ2dlcihtX2xv
Z2dlci5nZXQoKSwgbV9sb2dJZGVudGlmaWVyKTsKQEAgLTM1NCw3ICszNTMsNyBAQCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKCkKICAgICBj
bGVhclRyYWNrcygpOwogCiAgICAgaWYgKCFbUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKHByZXJvbGxE
ZWNvZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KV0pCi0gICAgICAgIENNTm90aWZpY2F0aW9uQ2Vu
dGVyUmVtb3ZlTGlzdGVuZXIoQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50
ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywga0NNU2FtcGxlQnVmZmVyQ29u
c3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIpOworICAgICAgICBQQUw6
OkNNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNl
bnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENhbGxi
YWNrLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1
bWVkLCBudWxscHRyKTsKIAogICAgIGlmIChtX2hhc1Nlc3Npb25TZW1hcGhvcmUpCiAgICAgICAg
IG1faGFzU2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CkBAIC05OTMsNyArOTkyLDcgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIKIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
cmVuZGVyZXJXYXNBdXRvbWF0aWNhbGx5Rmx1c2hlZChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVy
ZXIgKnJlbmRlcmVyLCBjb25zdCBDTVRpbWUmIHRpbWUpCiB7Ci0gICAgYXV0byBtZWRpYVRpbWUg
PSB0b01lZGlhVGltZSh0aW1lKTsKKyAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRpYVRp
bWUodGltZSk7CiAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsIG1lZGlhVGltZSk7CiAgICAg
QXRvbVN0cmluZyB0cmFja0lkOwogICAgIGZvciAoYXV0byYgcGFpciA6IG1fYXVkaW9SZW5kZXJl
cnMpIHsKQEAgLTExMDEsMTMgKzExMDAsMTMgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAogICAg
IGF1dG8gbG9nU2l0ZUlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOwogICAgIERFQlVHX0xPRyhs
b2dTaXRlSWRlbnRpZmllciwgInRyYWNrIElEID0gIiwgdHJhY2tJRCwgIiwgc2FtcGxlID0gIiwg
c2FtcGxlLmdldCgpKTsKIAotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxl
LnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihw
bGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwogICAgIEFTU0VSVChmb3JtYXRE
ZXNjcmlwdGlvbik7CiAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlvbikgewogICAgICAgICBFUlJP
Ul9MT0cobG9nU2l0ZUlkZW50aWZpZXIsICJSZWNlaXZlZCBzYW1wbGUgd2l0aCBhIG51bGwgZm9y
bWF0RGVzY3JpcHRpb24uIEJhaWxpbmcuIik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
YXV0byBtZWRpYVR5cGUgPSBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERl
c2NyaXB0aW9uKTsKKyAgICBhdXRvIG1lZGlhVHlwZSA9IFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlv
bkdldE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbik7CiAKICAgICBpZiAodHJhY2tJRCA9PSBt
X2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsKICAgICAgICAgLy8gQVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIgd2lsbCB0aHJvdyBhbiB1bi1kb2N1bWVudGVkIGV4Y2VwdGlvbiBpZiBwYXNzZWQgYSBz
YW1wbGUKQEAgLTExMjAsNyArMTExOSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKICAgICAg
ICAgfQogCiAgICAgICAgIGF1dG8gcGxheWVyID0gdGhpcy0+cGxheWVyKCk7Ci0gICAgICAgIEZs
b2F0U2l6ZSBmb3JtYXRTaXplID0gRmxvYXRTaXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsK
KyAgICAgICAgRmxvYXRTaXplIGZvcm1hdFNpemUgPSBGbG9hdFNpemUoUEFMOjpDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9u
LCB0cnVlLCB0cnVlKSk7CiAgICAgICAgIGlmICghbV9jYWNoZWRTaXplIHx8IGZvcm1hdFNpemUg
IT0gbV9jYWNoZWRTaXplLnZhbHVlKCkpIHsKICAgICAgICAgICAgIERFQlVHX0xPRyhsb2dTaXRl
SWRlbnRpZmllciwgInNpemUgY2hhbmdlZCB0byAiLCBmb3JtYXRTaXplKTsKICAgICAgICAgICAg
IGJvb2wgc2l6ZVdhc051bGwgPSAhbV9jYWNoZWRTaXplOwpAQCAtMTE0Niw5ICsxMTQ1LDkgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFT
YW1wbGU+JiYgc2FtcGxlLCBjb25zdAogCiAgICAgICAgICAgICBpZiAoIWhhdmVQcmVyb2xsRGVj
b2RlV2l0aENvbXBsZXRpb25IYW5kbGVyKSB7CiAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZm
ZXJSZWYgcmF3U2FtcGxlQ29weTsKLSAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxl
QnVmZmVyLCAmcmF3U2FtcGxlQ29weSk7CisgICAgICAgICAgICAgICAgUEFMOjpDTVNhbXBsZUJ1
ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGxhdGZvcm1TYW1wbGUuc2FtcGxl
LmNtU2FtcGxlQnVmZmVyLCAmcmF3U2FtcGxlQ29weSk7CiAgICAgICAgICAgICAgICAgYXV0byBz
YW1wbGVDb3B5ID0gYWRvcHRDRihyYXdTYW1wbGVDb3B5KTsKLSAgICAgICAgICAgICAgICBDTVNl
dEF0dGFjaG1lbnQoc2FtcGxlQ29weS5nZXQoKSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtl
eV9Qb3N0Tm90aWZpY2F0aW9uV2hlbkNvbnN1bWVkLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVm
KUB7IChfX2JyaWRnZSBOU1N0cmluZyAqKWtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9z
dE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCA6IEBZRVMgfSwga0NNQXR0YWNobWVudE1vZGVfU2hv
dWxkTm90UHJvcGFnYXRlKTsKKyAgICAgICAgICAgICAgICBQQUw6OkNNU2V0QXR0YWNobWVudChz
YW1wbGVDb3B5LmdldCgpLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5v
dGlmaWNhdGlvbldoZW5Db25zdW1lZCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilAeyAoX19i
cmlkZ2UgTlNTdHJpbmcgKilQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5v
dGlmaWNhdGlvbldoZW5Db25zdW1lZCA6IEBZRVMgfSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxk
Tm90UHJvcGFnYXRlKTsKICAgICAgICAgICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNh
bXBsZUJ1ZmZlcjpzYW1wbGVDb3B5LmdldCgpXTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgICAgICAgICAgICAgIHBsYXllci0+c2V0SGFzQXZhaWxhYmxlVmlkZW9GcmFtZSh0cnVlKTsK
QEAgLTEyOTgsMTQgKzEyOTcsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbVMKIGJvb2wgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlv
blRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRFN0cmluZykgY29uc3QKIHsKICAgICByZXR1
cm4gcGFyc2VJbnRlZ2VyQWxsb3dpbmdUcmFpbGluZ0p1bms8dWludDY0X3Q+KHRyYWNrSURTdHJp
bmcpLnZhbHVlX29yKDApID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJRAotICAgICAgICAmJiBbZ2V0
QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVj
dG9yOkBzZWxlY3RvcihleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRp
b25UaW1lOildOworICAgICAgICAmJiBbUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGV4cGVjdE1pbmlt
dW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6KV07CiB9CiAKIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRp
bWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRFN0cmluZywgY29uc3QgTWVkaWFUaW1lJiBwcmVz
ZW50YXRpb25UaW1lKQogewogICAgIEFTU0VSVChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50
YXRpb25UaW1lKHRyYWNrSURTdHJpbmcpKTsKICAgICBpZiAoY2FuU2V0TWluaW11bVVwY29taW5n
UHJlc2VudGF0aW9uVGltZSh0cmFja0lEU3RyaW5nKSkKLSAgICAgICAgW21fZGlzcGxheUxheWVy
IGV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6dG9DTVRp
bWUocHJlc2VudGF0aW9uVGltZSldOworICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZXhwZWN0TWlu
aW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTpQQUw6OnRvQ01UaW1lKHBy
ZXNlbnRhdGlvblRpbWUpXTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
Y2xlYXJNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmIHRy
YWNrSURTdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCmluZGV4IGU2ZGZj
YjM0OTZmOTJkMmFhMjFmODc2ODQ2NDgwOGIxNjFkNTc3NmIuLmI1ZDhmNTM2YTIwNzhmOTRlNDRk
YWM3MTgzNTcxMzU4OGRmNDMxODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3Bw
CkBAIC0yNTgsOCArMjU4LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6U3RhdGU+IHsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBzdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hh
bm5lbCgpIHsgcmV0dXJuIExvZ01lZGlhOyB9CiBzdGF0aWMgY29uc3QgY2hhciogbG9nQ2xhc3NO
YW1lKCkgeyByZXR1cm4gIlNvdXJjZUJ1ZmZlclBhcnNlcldlYk0iOyB9CiAKQEAgLTEwNTcsNyAr
MTA1NSw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpPbkZyYW1lKGNv
bnN0IEZyYW1lTWV0YWRhdGEmIG1ldGFkYXRhLCBSZWFkCiAgICAgICAgIHJldHVybiBTa2lwKHJl
YWRlciwgYnl0ZXNSZW1haW5pbmcpOwogICAgIH0KIAotICAgIHJldHVybiB0cmFja0RhdGEtPmNv
bnN1bWVGcmFtZURhdGEoKnJlYWRlciwgbWV0YWRhdGEsIGJ5dGVzUmVtYWluaW5nLCBDTVRpbWVN
YWtlKGJsb2NrLT50aW1lY29kZSArIG1fY3VycmVudFRpbWVjb2RlLCBtX3RpbWVzY2FsZSksIGJs
b2NrLT5udW1fZnJhbWVzKTsKKyAgICByZXR1cm4gdHJhY2tEYXRhLT5jb25zdW1lRnJhbWVEYXRh
KCpyZWFkZXIsIG1ldGFkYXRhLCBieXRlc1JlbWFpbmluZywgUEFMOjpDTVRpbWVNYWtlKGJsb2Nr
LT50aW1lY29kZSArIG1fY3VycmVudFRpbWVjb2RlLCBtX3RpbWVzY2FsZSksIGJsb2NrLT5udW1f
ZnJhbWVzKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpwcm92aWRlTWVkaWFE
YXRhKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQnVmZmVyLCB1aW50NjRfdCB0
cmFja0lELCBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gYnl0ZVJhbmdlT2Zmc2V0KQpAQCAtMTA4MSw3
ICsxMDc5LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJh
Y2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICBDTUJsb2NrQnVmZmVyUmVm
IHJhd0Jsb2NrQnVmZmVyID0gbnVsbHB0cjsKIAogICAgIGlmICghbV9jdXJyZW50QmxvY2tCdWZm
ZXIpIHsKLSAgICAgICAgYXV0byBlcnIgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJs
b2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIG1ldGFkYXRhLnNpemUsIGtDRkFsbG9j
YXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIG1ldGFkYXRhLnNpemUsIDAsICZyYXdCbG9ja0J1ZmZl
cik7CisgICAgICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIG1ldGFkYXRhLnNpemUsIGtDRkFs
bG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIG1ldGFkYXRhLnNpemUsIDAsICZyYXdCbG9ja0J1
ZmZlcik7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1Jf
SUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVkIHdp
dGggZXJyb3IiLCBlcnIpOwogICAgICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNS
ZW1haW5pbmcpOwpAQCAtMTA5MCw3ICsxMDg4LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQK
ICAgICAgICAgbV9jdXJyZW50QmxvY2tCdWZmZXIgPSBhZG9wdENGKHJhd0Jsb2NrQnVmZmVyKTsK
ICAgICAgICAgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3NpdGlvbiA9IDA7CiAKLSAgICAgICAgZXJy
ID0gQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5KG1fY3VycmVudEJsb2NrQnVmZmVyLmdl
dCgpKTsKKyAgICAgICAgZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnko
bV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAg
ICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAg
ICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CkBAIC0xMTAxLDcg
KzEwOTksNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgIHdoaWxlIChieXRlc1RvUmVh
ZCkgewogICAgICAgICBzaXplX3Qgc2VnbWVudFNpemVBdFBvc2l0aW9uID0gMDsKICAgICAgICAg
dWludDhfdCogYmxvY2tCdWZmZXJEYXRhID0gbnVsbHB0cjsKLSAgICAgICAgYXV0byBlcnIgPSBD
TUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIG1f
Y3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24sICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxw
dHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0YSk7CisgICAgICAgIGF1dG8gZXJyID0gUEFMOjpD
TUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIG1f
Y3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24sICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxw
dHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0YSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAg
ICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJHZXREYXRh
UG9pbnRlciBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgICAgICByZXR1cm4gU2tp
cCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CkBAIC0xMTM1LDcgKzExMzMsNyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIo
Y29uc3QgQ01UaW1lJiBwcgogI2lmIEVOQUJMRShWUDkpCiAgICAgdWludDhfdCogYmxvY2tCdWZm
ZXJEYXRhID0gbnVsbHB0cjsKICAgICBzaXplX3Qgc2VnbWVudFNpemVBdFBvc2l0aW9uID0gMDsK
LSAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9j
a0J1ZmZlci5nZXQoKSwgMCwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIq
KikmYmxvY2tCdWZmZXJEYXRhKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckdl
dERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCAwLCAmc2VnbWVudFNpemVB
dFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOwogICAgIGlmIChl
cnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZl
ckdldERhdGFQb2ludGVyIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtMTE3OSw5ICsxMTc3LDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRl
b1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICAgICAg
ZHVyYXRpb24gPSB0cmFjay5kZWZhdWx0X2R1cmF0aW9uLnZhbHVlKCkgKiBwcmVzZW50YXRpb25U
aW1lLnRpbWVzY2FsZSAvIDEwMDAwMDAwMDA7CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdT
YW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIHNpemVfdCBmcmFtZVNpemUgPSBDTUJsb2NrQnVm
ZmVyR2V0RGF0YUxlbmd0aChtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSk7Ci0gICAgQ01TYW1w
bGVUaW1pbmdJbmZvIHRpbWluZyA9IHsgQ01UaW1lTWFrZShkdXJhdGlvbiwgcHJlc2VudGF0aW9u
VGltZS50aW1lc2NhbGUpLCBwcmVzZW50YXRpb25UaW1lLCBwcmVzZW50YXRpb25UaW1lIH07Ci0g
ICAgZXJyID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBt
X2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgdGhpcy0+Zm9ybWF0RGVzY3JpcHRpb24oKS5nZXQo
KSwgc2FtcGxlQ291bnQsIDEsICZ0aW1pbmcsIDEsICZmcmFtZVNpemUsICZyYXdTYW1wbGVCdWZm
ZXIpOworICAgIHNpemVfdCBmcmFtZVNpemUgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhTGVu
Z3RoKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8g
dGltaW5nID0geyBQQUw6OkNNVGltZU1ha2UoZHVyYXRpb24sIHByZXNlbnRhdGlvblRpbWUudGlt
ZXNjYWxlKSwgcHJlc2VudGF0aW9uVGltZSwgcHJlc2VudGF0aW9uVGltZSB9OworICAgIGVyciA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2N1
cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgdGhpcy0+Zm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwg
c2FtcGxlQ291bnQsIDEsICZ0aW1pbmcsIDEsICZmcmFtZVNpemUsICZyYXdTYW1wbGVCdWZmZXIp
OwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgi
Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeSBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAg
ICAgIHJldHVybjsKQEAgLTExOTEsNyArMTE4OSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2Vy
V2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHBy
CiAgICAgbV9jdXJyZW50QmxvY2tCdWZmZXIgPSBudWxscHRyOwogICAgIG1fY3VycmVudEJsb2Nr
QnVmZmVyUG9zaXRpb24gPSAwOwogCi0gICAgYXV0byBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1
ZSk7CisgICAgYXV0byBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKICAgICBBU1NF
UlQoYXR0YWNobWVudHNBcnJheSk7CiAgICAgaWYgKCFhdHRhY2htZW50c0FycmF5KSB7CiAgICAg
ICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
QXR0YWNobWVudHNBcnJheSByZXR1cm5lZCBOVUxMIik7CkBAIC0xMjAxLDcgKzExOTksNyBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVC
dWZmZXIoY29uc3QgQ01UaW1lJiBwcgogICAgIGlmICghaXNLZXkpIHsKICAgICAgICAgZm9yIChD
RkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsg
aSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0
YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJh
eUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgICAgICBDRkRp
Y3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RT
eW5jLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShh
dHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMsIGtDRkJvb2xl
YW5UcnVlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTI4MiwxMiArMTI4MCwxMiBAQCB3ZWJt
OjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNvbnN1bWVG
cmFtZURhdGEod2VibTo6UmVhZAogICAgICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0
ZXNSZW1haW5pbmcpOwogICAgICAgICB9CiAKLSAgICAgICAgYXV0byBzdHJlYW1EZXNjcmlwdGlv
biA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24oZm9y
bWF0RGVzY3JpcHRpb24uZ2V0KCkpOworICAgICAgICBhdXRvIHN0cmVhbURlc2NyaXB0aW9uID0g
UEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZv
cm1hdERlc2NyaXB0aW9uLmdldCgpKTsKICAgICAgICAgaWYgKCFzdHJlYW1EZXNjcmlwdGlvbikg
ewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBmYWlsZWQiKTsKICAgICAgICAg
ICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKICAgICAgICAgfQotICAg
ICAgICBtX3BhY2tldER1cmF0aW9uID0gQ01UaW1lTWFrZShzdHJlYW1EZXNjcmlwdGlvbi0+bUZy
YW1lc1BlclBhY2tldCwgc3RyZWFtRGVzY3JpcHRpb24tPm1TYW1wbGVSYXRlKTsKKyAgICAgICAg
bV9wYWNrZXREdXJhdGlvbiA9IFBBTDo6Q01UaW1lTWFrZShzdHJlYW1EZXNjcmlwdGlvbi0+bUZy
YW1lc1BlclBhY2tldCwgc3RyZWFtRGVzY3JpcHRpb24tPm1TYW1wbGVSYXRlKTsKIAogICAgICAg
ICBzZXRGb3JtYXREZXNjcmlwdGlvbihXVEZNb3ZlKGZvcm1hdERlc2NyaXB0aW9uKSk7CiAgICAg
fSBlbHNlIGlmIChjb2RlYygpID09IENvZGVjVHlwZTo6T3B1cykgewpAQCAtMTMwOSw3ICsxMzA3
LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRh
Ojpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICBtX2N1cnJlbnRQYWNrZXRCeXRlT2Zm
c2V0ID0gc3RkOjpudWxsb3B0OwogICAgIG1fY3VycmVudFBhY2tldFNpemUgPSBzdGQ6Om51bGxv
cHQ7CiAKLSAgICBhdXRvIHNhbXBsZUR1cmF0aW9uID0gQ01UaW1lR2V0U2Vjb25kcyhDTVRpbWVT
dWJ0cmFjdChwcmVzZW50YXRpb25UaW1lLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUpKSArIENN
VGltZUdldFNlY29uZHMobV9wYWNrZXREdXJhdGlvbikgKiBzYW1wbGVDb3VudDsKKyAgICBhdXRv
IHNhbXBsZUR1cmF0aW9uID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lU3VidHJh
Y3QocHJlc2VudGF0aW9uVGltZSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lKSkgKyBQQUw6OkNN
VGltZUdldFNlY29uZHMobV9wYWNrZXREdXJhdGlvbikgKiBzYW1wbGVDb3VudDsKICAgICBpZiAo
c2FtcGxlRHVyYXRpb24gPj0gbV9taW5pbXVtU2FtcGxlRHVyYXRpb24pCiAgICAgICAgIGNyZWF0
ZVNhbXBsZUJ1ZmZlcihtZXRhZGF0YS5wb3NpdGlvbik7CiAKQEAgLTEzMjQsMjEgKzEzMjIsMjEg
QEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2Ft
cGxlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8c2kKICAgICBBU1NFUlQoIW1fcGFja2V0RGF0YS5pc0Vt
cHR5KCkpOwogCiAgICAgQ01CbG9ja0J1ZmZlclJlZiBibG9ja0J1ZmZlciA9IG51bGxwdHI7Ci0g
ICAgYXV0byBlcnIgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG51bGxwdHIsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSwga0NN
QmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIpOworICAgIGF1dG8g
ZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIG51bGxwdHIsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBudWxscHRyLCAwLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSwga0NNQmxv
Y2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIpOwogICAgIGlmIChlcnIp
IHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckNy
ZWF0ZVdpdGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCAlZCIsIGVycik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKGJsb2NrQnVmZmVyKTsKIAotICAg
IGVyciA9IENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzKG1fcGFja2V0RGF0YS5kYXRhKCks
IGJ1ZmZlci5nZXQoKSwgMCwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCkpOworICAgIGVyciA9
IFBBTDo6Q01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMobV9wYWNrZXREYXRhLmRhdGEoKSwg
YnVmZmVyLmdldCgpLCAwLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSk7CiAgICAgaWYgKGVy
cikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVy
UmVwbGFjZURhdGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIsIGVycik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVCdWZmZXIgPSBudWxscHRy
OwotICAgIGVyciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlw
dGlvbigpLmdldCgpLCBtX3BhY2tldERlc2NyaXB0aW9ucy5zaXplKCksIG1fc2FtcGxlUHJlc2Vu
dGF0aW9uVGltZSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmcmF3U2FtcGxlQnVmZmVy
KTsKKyAgICBlcnIgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCBmb3JtYXRE
ZXNjcmlwdGlvbigpLmdldCgpLCBtX3BhY2tldERlc2NyaXB0aW9ucy5zaXplKCksIG1fc2FtcGxl
UHJlc2VudGF0aW9uVGltZSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmcmF3U2FtcGxl
QnVmZmVyKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9T
U0lCTEUoIkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZh
aWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5t
bQppbmRleCBlOWY4NmRlYTQzOGU4OTVlNjNkYmRlMDdjNGQ5NWY5YjVhZWYxOGNjLi5hYTczNmNm
MTQ5YTQ3NGJhMjYzY2FhY2Q2NjQyZGU3OGY3Nzg4NzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5t
bQpAQCAtNDcsNyArNDcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2Ugd2VibTsKIAogVlA5VGVzdGluZ092ZXJyaWRlcyYg
VlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkKQEAgLTM2MiwxMSArMzYxLDExIEBAIHN0
YXRpYyBDRlN0cmluZ1JlZiBjb252ZXJ0VG9DTUNvbG9yUHJpbWFyaWVzKHVpbnQ4X3QgcHJpbWFy
aWVzKQogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX1NUXzI0
MDoKICAgICAgICAgcmV0dXJuIGtDVkltYWdlQnVmZmVyQ29sb3JQcmltYXJpZXNfU01QVEVfQzsK
ICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVzOjpTTVBURV9SUF80MzFfMjoK
LSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1Az
OworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVz
X0RDSV9QMzsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVzOjpTTVBURV9F
R180MzJfMToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJp
ZXNfUDNfRDY1OworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX1AzX0Q2NTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVz
OjpCVF8yMDIwX05vbmNvbnN0YW50X0x1bWluYW5jZToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1h
dERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBB
TDo6a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwOwogICAgIH0K
IAogICAgIHJldHVybiBudWxscHRyOwpAQCAtNDIwLDE4ICs0MTksMTggQEAgc3RhdGljIENGU3Ry
aW5nUmVmIGNvbnZlcnRUb0NNVHJhbnNmZXJGdW5jdGlvbih1aW50OF90IGNoYXJhY3RlcmlzdGlj
cykKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpTTVBU
RV9TVF8yNDA6CiAgICAgICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZlclRyYW5zZmVyRnVuY3Rpb25f
U01QVEVfMjQwTV8xOTk1OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0
ZXJpc3RpY3M6OlNNUFRFX1NUXzIwODQ6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUTsKKyAgICAgICAgcmV0dXJuIFBB
TDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFE7
CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6QlRfMjAy
MF8xMGJpdDoKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNz
OjpCVF8yMDIwXzEyYml0OgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFu
c2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwOwogICAgIGNhc2UgVlBDb25maWd1
cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OlNNUFRFX1NUXzQyOF8xOgotICAgICAgICBy
ZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8x
OworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fU01QVEVfU1RfNDI4XzE7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJh
Y3RlcmlzdGljczo6QlRfMjEwMF9ITEc6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEc7CisgICAgICAgIHJldHVybiBQQUw6
OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRzsKICAg
ICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpJRUNfNjE5NjZf
Ml8xOgotICAgICAgICByZXR1cm4gY2FuTG9hZF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA/IFBBTDo6Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpIDogbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIFBBTDo6Y2FuTG9hZF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX3NSR0IoKSA/IFBBTDo6Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRy
YW5zZmVyRnVuY3Rpb25fc1JHQigpIDogbnVsbHB0cjsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlv
blRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpMaW5lYXI6Ci0gICAgICAgIHJldHVybiBrQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyOworICAgICAgICByZXR1cm4gUEFM
OjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyOwogICAgIH0KIAog
ICAgIHJldHVybiBudWxscHRyOwpAQCAtNDY3LDcgKzQ2Niw3IEBAIHN0YXRpYyBDRlN0cmluZ1Jl
ZiBjb252ZXJ0VG9DTVlDYkNSTWF0cml4KHVpbnQ4X3QgY29lZmZpY2llbnRzKQogewogICAgIHN3
aXRjaCAoY29lZmZpY2llbnRzKSB7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25NYXRyaXhDb2Vm
ZmljaWVudHM6OkJUXzIwMjBfTm9uY29uc3RhbnRfTHVtaW5hbmNlOgotICAgICAgICByZXR1cm4g
a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwOworICAgICAgICByZXR1
cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjA7CiAgICAg
Y2FzZSBWUENvbmZpZ3VyYXRpb25NYXRyaXhDb2VmZmljaWVudHM6OkJUXzQ3MF83X0JHOgogICAg
IGNhc2UgVlBDb25maWd1cmF0aW9uTWF0cml4Q29lZmZpY2llbnRzOjpCVF82MDFfNzoKICAgICAg
ICAgcmV0dXJuIGtDVkltYWdlQnVmZmVyWUNiQ3JNYXRyaXhfSVRVX1JfNjAxXzQ7CkBAIC01NDMs
MTEgKzU0MiwxMSBAQCBzdGF0aWMgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNy
ZWF0ZUZvcm1hdERlc2NyaXB0aW9uRnJvbVZQQ29kZWNDb25maQogICAgIENGVHlwZVJlZiBjb25m
aWd1cmF0aW9uVmFsdWVzW10gPSB7IGRhdGEuZ2V0KCkgfTsKICAgICBhdXRvIGNvbmZpZ3VyYXRp
b25EaWN0ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
Y29uZmlndXJhdGlvbktleXMsIGNvbmZpZ3VyYXRpb25WYWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgo
Y29uZmlndXJhdGlvbktleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZU
eXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAKLSAgICBWZWN0b3I8Q0ZUeXBlUmVmPiBl
eHRlbnNpb25zS2V5cyB7IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2Ny
aXB0aW9uRXh0ZW5zaW9uQXRvbXMgfTsKKyAgICBWZWN0b3I8Q0ZUeXBlUmVmPiBleHRlbnNpb25z
S2V5cyB7IFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRp
b25FeHRlbnNpb25BdG9tcyB9OwogICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNWYWx1
ZXMgPSB7IGNvbmZpZ3VyYXRpb25EaWN0LmdldCgpIH07CiAKICAgICBpZiAocmVjb3JkLnZpZGVv
RnVsbFJhbmdlRmxhZyA9PSBWUENvbmZpZ3VyYXRpb25SYW5nZTo6RnVsbFJhbmdlKSB7Ci0gICAg
ICAgIGV4dGVuc2lvbnNLZXlzLmFwcGVuZChrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9G
dWxsUmFuZ2VWaWRlbyk7CisgICAgICAgIGV4dGVuc2lvbnNLZXlzLmFwcGVuZChQQUw6OmtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvKTsKICAgICAgICAgZXh0ZW5z
aW9uc1ZhbHVlcy5hcHBlbmQoa0NGQm9vbGVhblRydWUpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCmluZGV4IGNlYTE1NmFlMmZiZTI1YWRhMDA3NjY4
ZTkxZDUwZTU2MWM2NDJlNGUuLjdiNTM4YjFlOThlZjg5OTU1ZWVlOGY3OTg0YTUzNzAwZTE5Mzdi
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KQEAgLTQzLDkg
KzQzLDExIEBACiAjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9ydCAiVmlkZW9U
b29sYm94U29mdExpbmsuaCIKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQotV1RGX0RFQ0xBUkVf
Q0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBXVEZfREVDTEFSRV9DRl9UWVBFX1RS
QUlUKENNU2FtcGxlQnVmZmVyKTsKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgV1RGOjpDRlR5cGVUcmFp
dDxDTVNhbXBsZUJ1ZmZlclJlZj4geworICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQgdHlwZUlE
KHZvaWQpIHsgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsgfQorfTsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Miw3ICs3NCw3IEBAIHZvaWQgV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZShDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFzZVJl
bW92ZVRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5n
ZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVJlbW92ZVRpbWVyRGlzcGF0Y2hTb3VyY2Uo
bV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICBtX3RpbWViYXNl
ID0gdGltZWJhc2U7CiAKQEAgLTg0LDcgKzg2LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OnNldFRpbWViYXNlKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgIGRpc3BhdGNoX2FjdGl2YXRlKG1fdGltZXJTb3VyY2UuZ2V0KCkp
OwogICAgICAgICB9Ci0gICAgICAgIENNVGltZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNlKG1f
dGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGlt
ZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3Vy
Y2UuZ2V0KCkpOwogICAgIH0KIH0KIApAQCAtMTA0LDEyICsxMDYsMTIgQEAgdm9pZCBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246Om1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkK
IHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgYm9vbCBkaXNwbGF5aW5nKQogewogICAgIENNSXRlbUNv
dW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkp
CisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
QXJyYXkoc2FtcGxlQnVmZmVyLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5Owog
ICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9IENN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgaXRlbUNv
dW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIs
IGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIENNQnVmZmVyQ2FsbGJhY2tzIGNvbnRhaW5zIDY0LWJpdCBwb2ludGVy
cyB0aGF0IGFyZW4ndCA4LWJ5dGUgYWxpZ25lZC4gVG8gc3VwcHJlc3MgdGhlIGxpbmtlcgpAQCAt
MTM0LDcgKzEzNiw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVl
U2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwKICAgICAgICAgc3RhdGljX2Fz
c2VydChzaXplb2YoY2FsbGJhY2tzLmNhbGxiYWNrcy52ZXJzaW9uKSA9PSBzaXplb2YodWludDMy
X3QpLCAiVmVyc2lvbiBmaWVsZCBtdXN0IGJlIDQgYnl0ZXMiKTsKICAgICAgICAgc3RhdGljX2Fz
c2VydChhbGlnbm9mKEJ1ZmZlckNhbGxiYWNrcykgPT0gNCwgIkNNQnVmZmVyQ2FsbGJhY2tzIHN0
cnVjdCBtdXN0IGhhdmUgNCBieXRlIGFsaWdubWVudCIpOwogCi0gICAgICAgIENNQnVmZmVyUXVl
dWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNr
cy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxi
YWNrcywgJm91dFF1ZXVlKTsKICAgICAgICAgbV9wcm9kdWNlclF1ZXVlID0gYWRvcHRDRihvdXRR
dWV1ZSk7CiAgICAgfQogCkBAIC0xNTYsNyArMTU4LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVy
LAogICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihjYWxsYmFja3MuY2FsbGJhY2tzLnZlcnNp
b24pID09IHNpemVvZih1aW50MzJfdCksICJWZXJzaW9uIGZpZWxkIG11c3QgYmUgNCBieXRlcyIp
OwogICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoQnVmZmVyQ2FsbGJhY2tzKSA9PSA0LCAi
Q01CdWZmZXJDYWxsYmFja3Mgc3RydWN0IGFsaWdubWVudCBtdXN0IGJlIDQiKTsKIAotICAgICAg
ICBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNp
dHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOworICAgICAgICBQQUw6OkNNQnVm
ZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNh
bGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fY29uc3VtZXJRdWV1ZSA9
IGFkb3B0Q0Yob3V0UXVldWUpOwogICAgIH0KIApAQCAtMTc3LDIwICsxNzksMjAgQEAgYm9vbCBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZShDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGUsIGIKICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgYXV0byBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJh
c2UuZ2V0KCkpOwotICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gQ01TYW1wbGVCdWZm
ZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKLSAgICBhdXRvIGR1cmF0aW9uID0g
Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOwotICAgIGF1dG8gcHJlc2VudGF0aW9u
RW5kVGltZSA9IENNVGltZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9uKTsKLSAg
ICBpZiAoQ01UaW1lQ29tcGFyZShwcmVzZW50YXRpb25FbmRUaW1lLCBjdXJyZW50VGltZSkgPj0g
MCkKKyAgICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShtX3RpbWVi
YXNlLmdldCgpKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKKyAgICBhdXRvIGR1cmF0
aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CisgICAgYXV0byBw
cmVzZW50YXRpb25FbmRUaW1lID0gUEFMOjpDTVRpbWVBZGQocHJlc2VudGF0aW9uU3RhcnRUaW1l
LCBkdXJhdGlvbik7CisgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShwcmVzZW50YXRpb25FbmRU
aW1lLCBjdXJyZW50VGltZSkgPj0gMCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBDRkFy
cmF5UmVmIGF0dGFjaG1lbnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5KHNhbXBsZSwgZmFsc2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKICAg
ICBpZiAoIWF0dGFjaG1lbnRzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGZvciAoQ0ZJ
bmRleCBpbmRleCA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzKTsgaW5k
ZXggPCBjb3VudDsgKytpbmRleCkgewogICAgICAgICBDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVu
dERpY3QgPSAoQ0ZEaWN0aW9uYXJ5UmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVu
dHMsIGluZGV4KTsKLSAgICAgICAgQ0ZCb29sZWFuUmVmIGRlcGVuZGVkT24gPSAoQ0ZCb29sZWFu
UmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGF0dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRhY2ht
ZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzKTsKKyAgICAgICAgQ0ZCb29sZWFuUmVmIGRlcGVu
ZGVkT24gPSAoQ0ZCb29sZWFuUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGF0dGFjaG1lbnREaWN0
LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMpOwogICAg
ICAgICBpZiAoZGVwZW5kZWRPbiAmJiAhQ0ZCb29sZWFuR2V0VmFsdWUoZGVwZW5kZWRPbikpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjAzLDE0ICsyMDUsMTQgQEAgdm9p
ZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29tcHJlc3Npb25TZXNzaW9u
Rm9yU2FtcGxlKENNU2FtcGxlQnUKICAgICBpZiAoaXNJbnZhbGlkYXRlZCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNj
cmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKKyAg
ICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOwogICAgIGlmICht
X2RlY29tcHJlc3Npb25TZXNzaW9uICYmICFWVERlY29tcHJlc3Npb25TZXNzaW9uQ2FuQWNjZXB0
Rm9ybWF0RGVzY3JpcHRpb24obV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSwgdmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbikpIHsKICAgICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JB
c3luY2hyb25vdXNGcmFtZXMobV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSk7CiAgICAgICAg
IG1fZGVjb21wcmVzc2lvblNlc3Npb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIGlmICghbV9k
ZWNvbXByZXNzaW9uU2Vzc2lvbikgewotICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3Jp
cHRpb24oc2FtcGxlKTsKKyAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVv
Rm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRp
b24oc2FtcGxlKTsKICAgICAgICAgYXV0byB2aWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uID0gQHsg
KF9fYnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVI
YXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyOiBAKCBtX2hhcmR3YXJlRGVjb2RlckVuYWJs
ZWQgKSB9OwogCiAgICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlczsKQEAgLTI1Niw3ICsy
NTgsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYm9vbCBkaQogCiAgICAgTW9ub3RvbmljVGltZSBzdGFy
dFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9u
RGVjb2RlRnJhbWVXaXRoT3V0cHV0SGFuZGxlcihtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdldCgp
LCBzYW1wbGUsIGZsYWdzLCBudWxscHRyLCBbdGhpcywgZGlzcGxheWluZywgc3RhcnRUaW1lXShP
U1N0YXR1cyBzdGF0dXMsIFZURGVjb2RlSW5mb0ZsYWdzIGluZm9GbGFncywgQ1ZJbWFnZUJ1ZmZl
clJlZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIHBy
ZXNlbnRhdGlvbkR1cmF0aW9uKSB7Ci0gICAgICAgIGRvdWJsZSBkZWx0YVJhdGlvID0gKE1vbm90
b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5zZWNvbmRzKCkgLyBDTVRpbWVHZXRTZWNvbmRz
KHByZXNlbnRhdGlvbkR1cmF0aW9uKTsKKyAgICAgICAgZG91YmxlIGRlbHRhUmF0aW8gPSAoTW9u
b3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLnNlY29uZHMoKSAvIFBBTDo6Q01UaW1lR2V0
U2Vjb25kcyhwcmVzZW50YXRpb25EdXJhdGlvbik7CiAKICAgICAgICAgdXBkYXRlUW9zV2l0aERl
Y29kZVRpbWVTdGF0aXN0aWNzKGRlbHRhUmF0aW8pOwogICAgICAgICBoYW5kbGVEZWNvbXByZXNz
aW9uT3V0cHV0KGRpc3BsYXlpbmcsIHN0YXR1cywgaW5mb0ZsYWdzLCBpbWFnZUJ1ZmZlciwgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBwcmVzZW50YXRpb25EdXJhdGlvbik7CkBAIC0yODksNyArMjkx
LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Np
b25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKICAgICAgICAgKyttX2Ryb3BwZWRWaWRlb0Zy
YW1lczsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiByYXdJbWFnZUJ1ZmZlckRl
c2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8IG5vRXJyICE9
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbikpIHsK
KyAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8IG5vRXJyICE9IFBBTDo6Q01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1h
Z2VCdWZmZXIsICZyYXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uKSkgewogICAgICAgICArK21fY29y
cnVwdGVkVmlkZW9GcmFtZXM7CiAgICAgICAgIC0tbV9mcmFtZXNCZWluZ0RlY29kZWQ7CiAgICAg
ICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMDQsNyArMzA2LDcg
QEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25P
dXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKICAgICB9OwogCiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgcmF3SW1hZ2VTYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChub0VyciAhPSBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHJhd0ltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdldCgpLCAmaW1hZ2VCdWZm
ZXJUaW1pbmcsICZyYXdJbWFnZVNhbXBsZUJ1ZmZlcikpIHsKKyAgICBpZiAobm9FcnIgIT0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdldCgpLCAmaW1h
Z2VCdWZmZXJUaW1pbmcsICZyYXdJbWFnZVNhbXBsZUJ1ZmZlcikpIHsKICAgICAgICAgKyttX2Nv
cnJ1cHRlZFZpZGVvRnJhbWVzOwogICAgICAgICAtLW1fZnJhbWVzQmVpbmdEZWNvZGVkOwogICAg
ICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzE4LDExICszMjAs
MTEgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Np
b25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0Rmlyc3RWaWRlb0ZyYW1lKCkKIHsK
LSAgICBpZiAoIW1fcHJvZHVjZXJRdWV1ZSB8fCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKQorICAgIGlmICghbV9wcm9kdWNlclF1ZXVlIHx8IFBBTDo6Q01CdWZm
ZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUg
PSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1
ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOwotICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKUNNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CisgICAgUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2Nm
X2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRh
aW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKICAgICBBU1NFUlQoQ0ZHZXRUeXBl
SUQoaW1hZ2VCdWZmZXIuZ2V0KCkpID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQoKSk7CiAKICAg
ICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzM1LDI1ICszMzcsMjUg
QEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoKQog
ICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB0aW1lID0g
UEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7Cisg
ICAgYXV0byB0aW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKG1f
dGltZWJhc2UuZ2V0KCkpKTsKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OmF1dG9tYXRpY0RlcXVldWUoJXApIC0gcHVyZ2luZyBhbGwgc2FtcGxlcyBiZWZvcmUg
dGltZSglcykiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIE1l
ZGlhVGltZSBuZXh0RmlyZVRpbWUgPSBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCk7
CiAgICAgYm9vbCByZWxlYXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAgd2hpbGUgKENN
U2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVm
ZmVyUmVmPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewot
ICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGlt
ZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOwot
ICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVm
ZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJS
ZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6
Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsKKyAgICAgICAg
TWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOworICAg
ICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRpbWUgcHJlc2Vu
dGF0aW9uRW5kVGltZXN0YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVyYXRpb247CiAg
ICAgICAgIGlmICh0aW1lID4gcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wKSB7Ci0gICAgICAgICAg
ICBDRlJlbGVhc2UoQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVl
LmdldCgpKSk7CisgICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1
ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIHJlbGVhc2Vk
SW1hZ2VCdWZmZXJzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
ICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1l
KENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVl
dWUuZ2V0KCkpKTsKLSAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVy
UXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7
CisgICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1
ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwor
ICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0
RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAg
ICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVl
dWUoJXApIC0gcXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5k
YXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKIApAQCAtMzY1LDcg
KzM2Nyw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1
ZXVlKCkKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKIAogICAg
IExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1
ZSglcCkgLSBxdWV1ZSBlbXB0eSIsIHRoaXMpOwotICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3Bh
dGNoU291cmNlTmV4dEZpcmVUaW1lKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0
KCksIFBBTDo6dG9DTVRpbWUobmV4dEZpcmVUaW1lKSwgMCk7CisgICAgUEFMOjpDTVRpbWViYXNl
U2V0VGltZXJEaXNwYXRjaFNvdXJjZU5leHRGaXJlVGltZShtX3RpbWViYXNlLmdldCgpLCBtX3Rp
bWVyU291cmNlLmdldCgpLCBQQUw6OnRvQ01UaW1lKG5leHRGaXJlVGltZSksIDApOwogfQogCiB2
b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBib29sIGRpc3BsYXlpbmcpCkBAIC0zODMsMTcgKzM4NSwx
NyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1w
bGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLAogICAgIGJvb2wgc2hvdWxkTm90aWZ5ID0gdHJ1
ZTsKIAogICAgIGlmIChkaXNwbGF5aW5nICYmIG1fdGltZWJhc2UpIHsKLSAgICAgICAgYXV0byBj
dXJyZW50UmF0ZSA9IENNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOwotICAgICAg
ICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZSht
X3RpbWViYXNlLmdldCgpKSk7Ci0gICAgICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0g
UEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChz
YW1wbGUpKTsKLSAgICAgICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJlc2VudGF0aW9u
U3RhcnRUaW1lICsgUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNh
bXBsZSkpOworICAgICAgICBhdXRvIGN1cnJlbnRSYXRlID0gUEFMOjpDTVRpbWViYXNlR2V0UmF0
ZShtX3RpbWViYXNlLmdldCgpKTsKKyAgICAgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6dG9N
ZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7CisgICAg
ICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOworICAgICAgICBh
dXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBwcmVzZW50YXRpb25TdGFydFRpbWUgKyBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpKTsKICAgICAg
ICAgaWYgKGN1cnJlbnRUaW1lIDwgcHJlc2VudGF0aW9uU3RhcnRUaW1lIHx8IGN1cnJlbnRUaW1l
ID49IHByZXNlbnRhdGlvbkVuZFRpbWUpCiAgICAgICAgICAgICBzaG91bGROb3RpZnkgPSBmYWxz
ZTsKIAogICAgICAgICBpZiAoY3VycmVudFJhdGUgPiAwICYmIHByZXNlbnRhdGlvbkVuZFRpbWUg
PCBjdXJyZW50VGltZSkgewogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgICAgIGF1dG8gYmVn
aW4gPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRp
bWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICAgICAgICAgIGF1dG8gZW5kID0g
UEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1w
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6
dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3Rh
bXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBhdXRvIGVuZCA9IFBBTDo6
dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1w
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSglcCkgLSBkcm9wcGlu
ZyBmcmFtZSBsYXRlIGJ5ICVzLCBmcmFtZXNCZWluZ0RlY29kZWQoJWQpLCBwcm9kdWNlclF1ZXVl
KCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHByZXNlbnRhdGlvbkVuZFRpbWUgLSBjdXJyZW50
VGltZSkudXRmOCgpLmRhdGEoKSwgbV9mcmFtZXNCZWluZ0RlY29kZWQsIHRvU3RyaW5nKGJlZ2lu
KS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAg
ICAgICAgICAgICArK21fZHJvcHBlZFZpZGVvRnJhbWVzOwpAQCAtNDAxLDE3ICs0MDMsMTcgQEAg
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKICAgICAgICAgfQogICAgIH0KIAotICAgIENNQnVmZmVy
UXVldWVFbnF1ZXVlKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxlKTsKKyAgICBQQUw6OkNN
QnVmZmVyUXVldWVFbnF1ZXVlKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxlKTsKIAogI2lm
ICFMT0dfRElTQUJMRUQKLSAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZl
clF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSk7Ci0gICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgYXV0byBw
cmVzZW50YXRpb25UaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNl
bnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKKyAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlh
VGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFM
OjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOworICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKICAg
ICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVk
U2FtcGxlKCVwKSAtIHByZXNlbnRhdGlvblRpbWUoJXMpLCBmcmFtZXNCZWluZ0RlY29kZWQoJWQp
LCBwcm9kdWNlclF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHByZXNlbnRhdGlvblRp
bWUpLnV0ZjgoKS5kYXRhKCksIG1fZnJhbWVzQmVpbmdEZWNvZGVkLCB0b1N0cmluZyhiZWdpbiku
dXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCiAg
ICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291
cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQo
KSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJ
bW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAg
IGlmICghbV9oYXNBdmFpbGFibGVGcmFtZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CkBAIC00
MjYsNyArNDI4LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVE
ZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKIAogYm9vbCBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkgY29uc3QKIHsKLSAg
ICBDTUl0ZW1Db3VudCBwcm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVlID8gQ01CdWZmZXJR
dWV1ZUdldEJ1ZmZlckNvdW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOworICAgIENNSXRl
bUNvdW50IHByb2R1Y2VyQ291bnQgPSBtX3Byb2R1Y2VyUXVldWUgPyBQQUw6OkNNQnVmZmVyUXVl
dWVHZXRCdWZmZXJDb3VudChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpIDogMDsKICAgICByZXR1cm4g
bV9mcmFtZXNCZWluZ0RlY29kZWQgKyBwcm9kdWNlckNvdW50IDw9IGtIaWdoV2F0ZXJNYXJrOwog
fQogCkBAIC00NTIsNyArNDU0LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OnN0b3BSZXF1ZXN0aW5nTWVkaWFEYXRhKCkKIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246Om5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBjYWxsYmFjaykKIHsKLSAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNlclF1ZXVlICYm
ICFDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CisgICAgaWYg
KGNhbGxiYWNrICYmIG1fcHJvZHVjZXJRdWV1ZSAmJiAhUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0
eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChbY2FsbGJhY2tdIHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0pOwpA
QCAtNDYzLDcgKzQ2NSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpub3Rp
ZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFtZShzdGQ6OmZ1bmN0aW9uCiAKIFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGlt
ZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIEltYWdlRm9yVGltZUZsYWdzIGZsYWdzKQogewotICAg
IGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CisgICAg
aWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgewog
ICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9y
VGltZSglcCkgLSB0aW1lKCVzKSwgcXVldWUgZW1wdHkiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51
dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtNDcxLDkg
KzQ3Myw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiAgICAgYm9vbCBhbGxvd0VhcmxpZXIg
PSBmbGFncyA9PSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OkFsbG93RWFybGllcjsKICAg
ICBib29sIGFsbG93TGF0ZXIgPSBmbGFncyA9PSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OkFsbG93TGF0ZXI7CiAKLSAgICBNZWRpYVRpbWUgc3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGlt
ZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1
ZXVlLmdldCgpKSk7CisgICAgTWVkaWFUaW1lIHN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIE1lZGlhVGltZSBlbmRUaW1l
ID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0
YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIE1lZGlhVGltZSBlbmRUaW1lID0gUEFM
Ojp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3Rh
bXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAjZW5kaWYKICAgICBpZiAoIWFsbG93TGF0ZXIg
JiYgdGltZSA8IHN0YXJ0VGltZSkgewogICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZSglcCkgLSB0aW1lKCVzKSB0b28gZWFybHkgZm9y
IHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCksIHRv
U3RyaW5nKHN0YXJ0VGltZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kVGltZSkudXRmOCgp
LmRhdGEoKSk7CkBAIC00ODIsMjQgKzQ4NCwyNCBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQog
CiAgICAgYm9vbCByZWxlYXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAgd2hpbGUgKENN
U2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVm
ZmVyUmVmPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewot
ICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGlt
ZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOwot
ICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVm
ZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJS
ZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6
Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsKKyAgICAgICAg
TWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOworICAg
ICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRpbWUgcHJlc2Vu
dGF0aW9uRW5kVGltZXN0YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVyYXRpb247CiAg
ICAgICAgIGlmICghYWxsb3dMYXRlciAmJiBwcmVzZW50YXRpb25UaW1lc3RhbXAgPiB0aW1lKQog
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGlmICghYWxsb3dFYXJsaWVyICYm
IHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA8IHRpbWUpIHsKLSAgICAgICAgICAgIENGUmVsZWFz
ZShDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsK
KyAgICAgICAgICAgIENGUmVsZWFzZShQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWlu
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVsZWFzZWRJbWFnZUJ1ZmZl
cnMgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNr
ZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRh
aW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOwotICAgICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilDTVNhbXBsZUJ1ZmZlckdl
dEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOworICAgICAgICBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxD
TVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKSk7CisgICAgICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJ
bWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKICAgICAgICAgQVNTRVJUKENGR2V0VHlw
ZUlEKGltYWdlQnVmZmVyLmdldCgpKSA9PSBDVlBpeGVsQnVmZmVyR2V0VHlwZUlEKCkpOwogCiAg
ICAgICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlz
cGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291
cmNlLmdldCgpKTsKKyAgICAgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hT
b3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdl
dCgpKTsKIAogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwogCkBA
IC01MDgsNyArNTEwLDcgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKICAgICB9CiAKICAgICBp
ZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VU
b0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsK
KyAgICAgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVk
aWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgaWYg
KHJlbGVhc2VkSW1hZ2VCdWZmZXJzKQogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1l
ZGlhRGF0YSgpOwpAQCAtNTIwLDkgKzUyMiw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiB2
b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQogewogICAgIG1fZGVjb21w
cmVzc2lvblF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3Rl
ZFRoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1
ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIG1f
ZW5xdWVpbmdRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKV0gewotICAgICAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRo
aXMtPm1fY29uc3VtZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgICAgICBQQUw6OkNNQnVmZmVyUXVl
dWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX2NvbnN1bWVyUXVldWUuZ2V0KCkpOwogICAgICAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+bV9mcmFtZXNTaW5jZUxhc3RRb3NDaGVjayA9IDA7CiAgICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5tX2N1cnJlbnRRb3NUaWVyID0gMDsKICAgICAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPnJlc2V0UW9zVGllcigpOwpAQCAtNTMzLDI0ICs1MzUsMjQgQEAgdm9pZCBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmZsdXNoKCkKIENNVGltZSBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUoQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikKIHsK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVC
dWZmZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0
YW1wKHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1l
U3RhbXAoc2FtcGxlKTsKIH0KIAogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
Z2V0UHJlc2VudGF0aW9uVGltZShDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4o
YnVmKTsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
c2FtcGxlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRp
bWVTdGFtcChzYW1wbGUpOwogfQogCiBDTVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjpnZXREdXJhdGlvbihDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsK
LSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOworICAgIHJldHVy
biBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKIH0KIAogQ0ZDb21wYXJp
c29uUmVzdWx0IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZlcnMoQ01C
dWZmZXJSZWYgYnVmMSwgQ01CdWZmZXJSZWYgYnVmMiwgdm9pZCogcmVmY29uKQogewotICAgIHJl
dHVybiAoQ0ZDb21wYXJpc29uUmVzdWx0KUNNVGltZUNvbXBhcmUoZ2V0UHJlc2VudGF0aW9uVGlt
ZShidWYxLCByZWZjb24pLCBnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjIsIHJlZmNvbikpOworICAg
IHJldHVybiAoQ0ZDb21wYXJpc29uUmVzdWx0KVBBTDo6Q01UaW1lQ29tcGFyZShnZXRQcmVzZW50
YXRpb25UaW1lKGJ1ZjEsIHJlZmNvbiksIGdldFByZXNlbnRhdGlvblRpbWUoYnVmMiwgcmVmY29u
KSk7CiB9CiAKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpyZXNldFFvc1RpZXIo
KQpAQCAtNjAyLDcgKzYwNCw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1
cGRhdGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MoZG91YmxlIHJhdGlvCiAgICAgaWYgKCFt
X3RpbWViYXNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBkb3VibGUgcmF0ZSA9IENNVGltZWJh
c2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOworICAgIGRvdWJsZSByYXRlID0gUEFMOjpDTVRp
bWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKICAgICBpZiAoIXJhdGUpCiAgICAgICAg
IHJhdGUgPSAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQppbmRleCBlM2YwOTI3MDM0OGU3
YTVhZWY3MjY2ZWI0NzJkZGJhZTczYmMzNDA3Li5mMzE2OWFiYzAyNzcwODJmMGNmY2U0NzI2Nzll
MTEwNzk3YzhjOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KQEAgLTQyLDcgKzQyLDYg
QEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIENGU3RyaW5nUmVm
IGN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKQogewpAQCAtMTM4LDcgKzEzNyw3IEBAIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxC
dWZmZXIoQ1ZQaXhlbEJ1CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzb3VyY2VC
dWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGNvbnZlcnRQaXhlbEJ1
ZmZlcihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUpOwor
ICAgIHJldHVybiBjb252ZXJ0UGl4ZWxCdWZmZXIoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUpOwogfQogCiBSZXRhaW5QdHI8Q01TYW1wbGVCdWZm
ZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0xNDYs
OSArMTQ1LDkgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBpZiAoIXNvdXJjZUJ1ZmZl
cikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGRlc2NyaXB0aW9uID0gQ01T
YW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIpOwotICAgIGF1dG8g
c291cmNlU2l6ZSA9IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50
YXRpb25EaW1lbnNpb25zKGRlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7Ci0gICAgYXV0byBwaXhl
bEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSk7CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIpOworICAgIGF1
dG8gc291cmNlU2l6ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICBh
dXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOwogICAgIGlmIChzaXplID09
IGV4cGFuZGVkSW50U2l6ZShzb3VyY2VTaXplKSAmJiBtX3BpeGVsRm9ybWF0ID09IENWUGl4ZWxC
dWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQogICAgICAgICByZXR1cm4gcmV0
YWluUHRyKHNvdXJjZUJ1ZmZlcik7CiAKQEAgLTE2MCw3ICsxNTksNyBAQCBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1
ZmZlcihDTVNhbQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENNSXRlbUNvdW50IGl0
ZW1Db3VudCA9IDA7Ci0gICAgYXV0byBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIDEsIG51bGxwdHIsICZpdGVtQ291bnQpOworICAg
IGF1dG8gc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShzb3VyY2VCdWZmZXIsIDEsIG51bGxwdHIsICZpdGVtQ291bnQpOwogICAgIGlmIChzdGF0dXMg
IT0gbm9FcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5IGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50
PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNjksNyArMTY4LDcgQEAg
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252
ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWVpbmdJ
bmZvUHRyID0gbnVsbHB0cjsKICAgICBpZiAoaXRlbUNvdW50KSB7CiAgICAgICAgIHRpbWluZ0lu
Zm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJ
bmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsKKyAgICAgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIGl0ZW1Db3VudCwg
dGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CiAgICAgICAgIGlmIChzdGF0dXMgIT0g
bm9FcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGlu
dD4oc3RhdHVzKSk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE3OCwxNCArMTc3
LDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgfQogCiAgICAgQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBzdGF0dXMg
PSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9u
KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvcklt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgp
LCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01T
YW1wbGVCdWZmZXI6IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVy
IHJldHVybmVkOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJlc2l6ZWRTYW1wbGVC
dWZmZXI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgZm9y
bWF0RGVzY3JpcHRpb24sIHRpbWVpbmdJbmZvUHRyLCAmcmVzaXplZFNhbXBsZUJ1ZmZlcik7Cisg
ICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVy
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgdGltZWluZ0luZm9QdHIsICZyZXNpemVkU2FtcGxlQnVmZmVyKTsKICAgICBD
RlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252
ZXJ0Q01TYW1wbGVCdWZmZXI6IGZhaWxlZCB0byBjcmVhdGUgQ01TYW1wbGVCdWZmZXIgd2l0aCBl
cnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CkBAIC0yMzcsMTYgKzIz
NiwxNiBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKENWUGl4ZQogICAgIH0KIAogICAgIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgYXV0byBz
dGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgJmZv
cm1hdERlc2NyaXB0aW9uKTsKKyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1h
Z2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAg
aWYgKHN0YXR1cykgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRpYWxpemUgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+
KHN0YXR1cykpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgYXV0byBjbVRpbWUgPSB0b0NNVGltZShzYW1w
bGVUaW1lKTsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsga0NNVGltZUlu
dmFsaWQsIGNtVGltZSwgY21UaW1lIH07Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZl
clJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAm
c2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGNtVGltZSA9IFBBTDo6dG9DTVRpbWUoc2FtcGxlVGlt
ZSk7CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IFBBTDo6a0NNVGltZUlu
dmFsaWQsIGNtVGltZSwgY21UaW1lIH07CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdl
QnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0lu
Zm8sICZzYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAg
ICAgaWYgKHN0YXR1cykgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRpYWxpemUgQ01T
YW1wbGVCdWZmZXIgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVz
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZTBkYWFjODViODczYWQ2YWE5YjRhYjJk
YjdhMDA5Y2MzN2Q0Nzg5NS4uMzJhMDQ0OTZjZmY3ZDg0MTExMjBmY2QxMzNlNmQ2NzQyNTRhODZi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lv
bkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQpAQCAtNDcsNyArNDcsNiBAQCBTT0ZUTElOS19B
VktJVF9GUkFNRVdPUksoKQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlZhbHVl
VGltaW5nKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZL
aXQoUGxheWJhY2tTZXNzaW9uTW9kZWwmIG1vZGVsKQogICAgIDogbV9wbGF5ZXJDb250cm9sbGVy
KGFkb3B0TlMoW1tXZWJBVlBsYXllckNvbnRyb2xsZXIgYWxsb2NdIGluaXRdKSkKQEAgLTE0NSw3
ICsxNDQsNyBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVrYWJsZVJh
bmdlc0NoYW5nZWQoY29uc3QgVGltZVJhbmdlcyYgdGltZQogICAgICAgICBkb3VibGUgc3RhcnQg
PSB0aW1lUmFuZ2VzLnN0YXJ0KGkpLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgICAgICBkb3Vi
bGUgZW5kID0gdGltZVJhbmdlcy5lbmQoaSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICAg
ICAgQ01UaW1lUmFuZ2UgcmFuZ2UgPSBDTVRpbWVSYW5nZU1ha2UoQ01UaW1lTWFrZVdpdGhTZWNv
bmRzKHN0YXJ0LCAxMDAwKSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkp
OworICAgICAgICBDTVRpbWVSYW5nZSByYW5nZSA9IFBBTDo6Q01UaW1lUmFuZ2VNYWtlKFBBTDo6
Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHN0YXJ0LCAxMDAwKSwgUEFMOjpDTVRpbWVNYWtlV2l0aFNl
Y29uZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CiAgICAgICAgIFtzZWVrYWJsZVJhbmdlcyBhZGRPYmpl
Y3Q6W05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lUmFuZ2U6cmFuZ2VdXTsKICAgICB9CiAjZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW0KaW5kZXggZWE0MjNjNzE3YzdhZTkxYmQ0ZWU5OTA4N2UwN2M0ZTVj
MzdlNGMzZi4uNWRmMzQ5ZmM2ZmNkZmNmYWVhNzU1NjMyMGYzYWU2ZTY2NzYzNGU5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlTWFjLm1tCkBAIC0zNzMsNyArMzczLDYgQEAgLSAodm9pZClwaXBBY3Rpb25TdG9w
OihQSVBWaWV3Q29udHJvbGxlciAqKXBpcAogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11
c2luZyBuYW1lc3BhY2UgUEFMOwogCiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYyhQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMmIHBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZSkKICAgICA6IG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKHBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsLmNwcAppbmRleCA4ODQwOTQyOTc5MjZjOGFlYmRlZjZmM2U5NTc4NDJmODM0MjhiODkyLi5k
NDE5ZTBlMTkyNTU1ZDczNjA4NTg1MWY1NGNhMDA0MGQ0NmI2NjNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw+IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKE1lZGlhU3RyZWFtUHJp
dmF0ZSYgc3RyZWFtLCBjb25zdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlvbnMp
CiB7CkBAIC04OCwxMiArODcsMTIgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6
OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKIHsKICAgICBp
ZiAoc2hvdWxkTXV0ZVZpZGVvKCkpIHsKICAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWUpIHsKLSAg
ICAgICAgICAgIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3Jt
YXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1w
bGVCdWZmZXIpOwotICAgICAgICAgICAgYXV0byBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uR2V0RGltZW5zaW9ucyhtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSk7Cisg
ICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUu
Y21TYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgYXV0byBkaW1lbnNpb25zID0gUEFMOjpDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0aW9u
LmdldCgpKTsKICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNrUGl4ZWxCdWZm
ZXIoZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQpOwogCiAgICAgICAgICAgICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwot
ICAgICAgICAgICAgYXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVG
b3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCksICZm
b3JtYXREZXNjcmlwdGlvbik7CisgICAgICAgICAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbV9ibGFja0ZyYW1lLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgICAgICAgICAg
aWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhLCAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJs
ZSA6OnVuYWJsZSB0byBjcmVhdGUgYSBibGFjayBmcmFtZSBkZXNjcmlwdGlvbjogJWQiLCBzdGF0
aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IG51
bGxwdHI7CkBAIC0xMDMsOCArMTAyLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKICAgICAg
ICAgfQogCiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IG51bGxwdHI7Ci0gICAg
ICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvIHsga0NNVGltZUludmFsaWQsIHRvQ01U
aW1lKHNhbXBsZUJ1ZmZlci5wcmVzZW50YXRpb25UaW1lKCkpLCB0b0NNVGltZShzYW1wbGVCdWZm
ZXIuZGVjb2RlVGltZSgpKSB9OwotICAgICAgICBhdXRvIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VC
dWZmZXJSZWYpbV9ibGFja0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQo
KSwgJnRpbWluZ0luZm8sICZzYW1wbGUpOworICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGlt
aW5nSW5mbyB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVy
LnByZXNlbnRhdGlvblRpbWUoKSksIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVyLmRlY29kZVRp
bWUoKSkgfTsKKyAgICAgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJS
ZWYpbV9ibGFja0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSwgJnRp
bWluZ0luZm8sICZzYW1wbGUpOwogCiAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSAtIHVuYWJsZSB0byBjcmVhdGUgYSBi
bGFjayBmcmFtZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA1MWEzZTE4YTJjZWRk
M2NkNWRhOTNmMzRlYmYzNzExZTAyMGY4YjYyLi41ZTExMGVjZDdkZTM4NDYxYjQyOTA0YTBlYjQ4
ODM0MTg0M2U3NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvci5tbQpAQCAtMzYsMTMgKzM2LDEyIEBACiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAK
ICNpbXBvcnQgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNkZWZpbmUgTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05E
UyAwLjEKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBhdXRvIGNvbXByZXNzb3IgPSBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPihuZXcgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yKCkpOwpAQCAtNTIsMTUgKzUxLDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
Y3JlYXRlCiB9CiAKIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yKCkKLSAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZSB7IFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikgfQotICAgICwg
bV9sb3dXYXRlclRpbWUgeyBDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dBVEVSX1RJTUVfSU5f
U0VDT05EUywgMTAwMCkgfQorICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlKFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikpCisgICAgLCBt
X2xvd1dhdGVyVGltZShQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FURVJfVElNRV9J
Tl9TRUNPTkRTLCAxMDAwKSkKIHsKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV9jb252ZXJ0ZXIpIHsK
LSAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgUEFM
OjpBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRl
ciA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNjgsMTkgKzY3LDE5IEBAIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBib29sIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNh
bGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZlclF1
ZXVlUmVmIGlucHV0QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1
ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFj
a3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUpKSB7CisgICAg
aWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgMCwgUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVC
dWZmZXJzKCksICZpbnB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVl
Q3JlYXRlIGZvciBtX2lucHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9pbnB1dEJ1ZmZlclF1ZXVlID0gYWRv
cHRDRihpbnB1dEJ1ZmZlclF1ZXVlKTsKIAogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0QnVm
ZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNh
bXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVycm9y
ID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6
Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0
cHV0QnVmZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVhdGUgZm9yIG1f
b3V0cHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0cHV0
QnVmZmVyUXVldWUpOwotICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1
ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVl
VHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwpOworICAgIFBB
TDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCks
IGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRh
QmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1faXNFbmNvZGlu
ZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBAIC04OSw4ICs4OCw4IEBAIGJvb2wgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2Fs
bGJhY2sgY2FsbGJhCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKCkK
IHsKICAgICBtX3NlcmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10gewotICAg
ICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKGtDTVRpbWVJbnZhbGlk
KTsKLSAgICAgICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0
cHV0QnVmZmVyUXVldWUuZ2V0KCkpOworICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGls
TG93V2F0ZXJUaW1lKFBBTDo6a0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9yID0g
UEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
KTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxl
ZCAlZCIsIGVycm9yKTsKICAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CiAgICAgfSk7CkBA
IC0xMTIsNyArMTExLDcgQEAgVUludDMyIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZGVm
YXVsdE91dHB1dEJpdFJhdGUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0QKIAogYm9vbCBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERl
c2NyaXB0aW9uKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIEF1ZGlv
Rm9ybWF0SUQgb3V0cHV0Rm9ybWF0SUQpCiB7Ci0gICAgY29uc3QgYXV0byAqYXVkaW9Gb3JtYXRM
aXN0SXRlbSA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3Jt
YXQoZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGNvbnN0IGF1dG8gKmF1ZGlvRm9ybWF0TGlzdEl0
ZW0gPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3Jt
YXQoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIG1fc291cmNlRm9ybWF0ID0gYXVkaW9Gb3JtYXRM
aXN0SXRlbS0+bUFTQkQ7CiAKICAgICBtZW1zZXQoJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIHNp
emVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKQEAgLTEyMSwzNCArMTIwLDM0IEBA
IGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JT
b3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgbV9kZXN0aW5hdGlvbkZvcm1hdC5tQ2hhbm5l
bHNQZXJGcmFtZSA9IG1fc291cmNlRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lOwogCiAgICAgVUlu
dDMyIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJy
b3IgPSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5X0Zvcm1hdElu
Zm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0
byBlcnJvciA9IFBBTDo6QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9wZXJ0
eV9Gb3JtYXRJbmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHkgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBBdWRpb0NvbnZlcnRlclJlZiBj
b252ZXJ0ZXI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlck5ldygmbV9zb3Vy
Y2VGb3JtYXQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZtX2Rl
c3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZlcnRl
ck5ldyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KICAgICBtX2NvbnZlcnRlciA9IGNvbnZlcnRlcjsKIAogICAgIGF1dG8gY2xlYW51cEluQ2Fz
ZU9mRXJyb3IgPSBtYWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyRGlz
cG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1f
Y29udmVydGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0pOwogCiAg
ICAgc2l6ZV90IGNvb2tpZVNpemUgPSAwOwotICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAmY29v
a2llU2l6ZSk7CisgICAgY29uc3Qgdm9pZCAqY29va2llID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNvb2tpZVNpemUpOwog
ICAgIGlmIChjb29raWVTaXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252
ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lv
bk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKKyAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIs
IGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVT
aXplLCBjb29raWUpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckRl
Y29tcHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2Yo
bV9zb3VyY2VGb3JtYXQpOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVz
Y3JpcHRpb24sICZzaXplLCAmbV9zb3VyY2VGb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0
KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVh
bURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpAQCAtMTU5LDcgKzE1OCw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAg
ICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRp
b0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rlc3Rp
bmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3Ry
ZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24g
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBA
IC0xNjcsMTQgKzE2NiwxNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5p
dEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIGlmIChtX2Rl
c3RpbmF0aW9uRm9ybWF0Lm1Gb3JtYXRJRCA9PSBrQXVkaW9Gb3JtYXRNUEVHNEFBQykgewogICAg
ICAgICBib29sIHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gdHJ1ZTsKICAgICAgICAg
aWYgKG1fb3V0cHV0Qml0UmF0ZSkgewotICAgICAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29u
dmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJh
dGUsIHNpemVvZigqbV9vdXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsK
KyAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigqbV9vdXRw
dXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgICAgICBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSA9
ICEhZXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZFNldERlZmF1bHRPdXRwdXRC
aXRSYXRlKSB7CiAgICAgICAgICAgICBhdXRvIG91dHB1dEJpdFJhdGUgPSBkZWZhdWx0T3V0cHV0
Qml0UmF0ZShtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKICAgICAgICAgICAgIHNpemUgPSBzaXplb2Yo
b3V0cHV0Qml0UmF0ZSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUs
IHNpemUsICZvdXRwdXRCaXRSYXRlKSkKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFM
OjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJF
bmNvZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCiAgICAgICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
c2V0dGluZyBkZWZhdWx0IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0xODMsNyArMTgyLDcgQEAgYm9vbCBB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZv
cm1hdERlc2NyaXB0aW9uKEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9uIGZvcm1hdCBp
cyBWQlIsIHdlIG5lZWQgdG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0aGUgY29udmVy
dGVyLgogICAgICAgICBzaXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CiAKLSAg
ICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVy
dGVyLCBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6
ZSwgJm1fbWF4T3V0cHV0UGFja2V0U2l6ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQ
QUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
clByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNr
ZXRTaXplKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0
eU1heGltdW1PdXRwdXRQYWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0yMTEsNiArMjEwLDggQEAgc2l6ZV90
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y29tcHV0ZUJ1ZmZlclNpemVGb3JBdWRpb0Zv
cm1hdChBdWRpb1N0cmVhbUIKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0
dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKKyAg
ICB1c2luZyBuYW1lc3BhY2UgUEFMOworCiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1fcmVt
YWluaW5nUHJpbWVEdXJhdGlvbikpIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8g
cHJpbWVJbmZvIHsgMCwgMCB9OwogICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmltZUlu
Zm8pOwpAQCAtMjM2LDI1ICsyMzcsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkKIHsKICAgICBV
SW50MzIgZGVsYXlTaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJfdCBvcmlnaW5h
bERlbGF5TW9kZSA9IDA7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFBy
b3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlT
aXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlE
ZWxheU1vZGUsICZkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
Z2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIHVpbnQzMl90IG9wdGltYWxE
ZWxheU1vZGUgPSBrQXVkaW9Db2RlY0RlbGF5TW9kZV9PcHRpbWFsOwotICAgIGlmIChhdXRvIGVy
cm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQ
cm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKKyAgICBp
ZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5
TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2Rl
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAog
ICAgIFVJbnQzMiBwcmltZVNpemUgPSBzaXplb2YoQXVkaW9Db2RlY1ByaW1lSW5mbyk7CiAgICAg
QXVkaW9Db2RlY1ByaW1lSW5mbyBwcmltZUluZm8geyAwLCAwIH07Ci0gICAgaWYgKGF1dG8gZXJy
b3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1By
b3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgeworICAgIGlmIChhdXRv
IGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2Rl
Y1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxE
ZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5
TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9
CkBAIC0yNjcsMTggKzI2OCwxOCBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIGlmICgh
bV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIFVJbnQzMiBjb29raWVT
aXplID0gMDsKIAotICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0
eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUs
ICZjb29raWVTaXplLCBOVUxMKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNz
aW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBOVUxMKTsKICAgICAgICAgaWYgKChlcnJvciA9
PSBub0VycikgJiYgISFjb29raWVTaXplKSB7CiAgICAgICAgICAgICBjb29raWUucmVzaXplKGNv
b2tpZVNpemUpOwogCi0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWND
b29raWUsICZjb29raWVTaXplLCBjb29raWUuZGF0YSgpKSkgeworICAgICAgICAgICAgaWYgKGF1
dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtB
dWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUu
ZGF0YSgpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ29t
cHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gbmlsOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uOwotICAgICAg
ICBpZiAoYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29va2llU2l6ZSwg
Y29va2llLmRhdGEoKSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pKSB7Cisg
ICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEwsIGNv
b2tpZVNpemUsIGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0
aW9uKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAg
fQpAQCAtMjkwLDI2ICsyOTEsMjYgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBzaXpl
X3QgZGF0YVNpemUgPSBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplOwog
CiAgICAgQ01CbG9ja0J1ZmZlclJlZiBibG9ja0J1ZmZlcjsKLSAgICBpZiAoYXV0byBlcnJvciA9
IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwg
TlVMTCwgZGF0YVNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXplLCBr
Q01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKKyAgICBp
ZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwg
TlVMTCwgMCwgZGF0YVNpemUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJs
b2NrQnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJs
b2NrIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0K
ICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCks
IDAsIGRhdGFTaXplKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVy
UmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVh
dGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQo
KSwgdHJ1ZSwgTlVMTCwgTlVMTCwgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdldCgp
LCBudW1QYWNrZXRzLCBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1fZGVz
dGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBh
dXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2Ny
aXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIHRydWUsIE5VTEwsIE5V
TEwsIG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgbnVtUGFja2V0cywgbV9j
dXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wLCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVz
Y3JpcHRpb25zLmRhdGEoKSwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAg
IGlmIChbbV9nZHJDb3VudE51bSBpbnRWYWx1ZV0pCi0gICAgICAgIENNU2V0QXR0YWNobWVudChz
YW1wbGVCdWZmZXIsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29kZXJS
ZWZyZXNoLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCksIGtDTUF0dGFj
aG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CisgICAgICAgIFBBTDo6Q01TZXRBdHRhY2htZW50
KHNhbXBsZUJ1ZmZlciwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1YWxE
ZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgpLCBr
Q01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogCiAgICAgcmV0dXJuIHNhbXBsZUJ1
ZmZlcjsKIH0KQEAgLTM0MSwyNCArMzQyLDI0IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKICAg
ICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lu
cHV0QnVmZmVyUXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGlmIChQQUw6OkNNQnVmZmVy
UXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENG
KChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVl
dWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgICAg
ICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNhbXBs
ZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9w
dENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1
ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgICAg
ICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmICghbV9zYW1w
bGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTVNhbXBsZUJ1ZmZlckdl
dERhdGFCdWZmZXIgZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tC
dWZmZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1w
bGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENN
QmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOworICAg
ICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgICAg
ICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAg
ICBzaXplX3QgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVz
VG9Db3B5LCAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBs
ZUJsb2NrQnVmZmVyKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2Nr
QnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRP
ZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAo
bV9zb3VyY2VCdWZmZXIuZGF0YSgpICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsK
KyAgICAgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNvcHlE
YXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1w
bGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNlQnVm
ZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICAg
ICAgfQpAQCAtMzkzLDI4ICszOTQsMjggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAgICAg
ICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5n
ZXQoKSkpCisgICAgICAgICAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0
QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAg
ICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9j
YXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVl
dWUuZ2V0KCkpKSkpOwotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0Q0Yo
KENNQmxvY2tCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENNU2FtcGxlQnVm
ZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAgICAgICAgIGF1
dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8
dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1
ZXVlLmdldCgpKSkpKTsKKyAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBhZG9wdENG
KChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKICAgICAgICAg
ICAgIGlmICghbV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2Ft
cGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICBtX3NhbXBs
ZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5T
YW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZm
ZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKKyAgICAgICAg
ICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxl
bmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7CiAgICAgICAgICAgICBtX2N1cnJl
bnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgfQogCiAgICAgICAgIGlm
IChtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICBzaXplX3QgbnVtQnl0ZXNUb0Nv
cHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9zYW1wbGVCbG9j
a0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyKSk7Ci0gICAg
ICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2Ft
cGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIs
IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zm
c2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6
OkNNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1f
Y3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBs
ZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgewog
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZpcnN0IGNoYW5u
ZWwgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9y
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVm
ZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZz
ZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5dGVz
VG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldEluU291
cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2Nr
QnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRP
ZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5
dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldElu
U291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcyBzZWNvbmQgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICB9CkBAIC00MzgsNiArNDM5LDggQEAg
T1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51
bU91dHB1dFBhY2tldHMoVUludDMyKgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbG93V2F0ZXJU
aW1lKQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFSRV9J
TkxJTkUKKwogICAgIGlmICghbV9jb252ZXJ0ZXIpIHsKICAgICAgICAgaWYgKENNQnVmZmVyUXVl
dWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm47
CkBAIC01MDEsNyArNTA0LDcgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnBy
b2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGwKIAogdm9pZCBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZm
ZXJSZWYgYnVmZmVyKQogewotICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSht
X2lucHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6
Q01CdWZmZXJRdWV1ZUVucXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwog
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKIAogICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUobV9sb3dX
YXRlclRpbWUpOwpAQCAtNTIwLDEyICs1MjMsMTIgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENN
U2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2Ft
cGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0
PHZvaWQqPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkp
OworICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6
Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAog
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBs
ZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRh
aW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENN
U2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1
ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25l
ZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmNWY4
NTU4NzFmYzcwODU2NmY3ZWY4YjlhMTYxZTI3YjhlNWQ4OWVkLi5iNzU1OGQyODBjMmVmNzk2MDY4
Y2FjMGNjOTZiNTAzM2RjMzcwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtMTI3LDggKzEyNyw4IEBAIHByaXZhdGU6CiAg
ICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3JtYXREZXNjcmlw
dGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBt
X3ZpZGVvQ29tcHJlc3NvcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBtX3Zp
ZGVvQXNzZXRXcml0ZXJJbnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25U
aW1lIHsga0NNVGltZUludmFsaWQgfTsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1Rp
bWUgeyBrQ01UaW1lSW52YWxpZCB9OworICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRhdGlv
blRpbWU7CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lOwogICAgIGJvb2wgbV9o
YXNFbmNvZGVkVmlkZW9TYW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0cjxXZWJBVkFz
c2V0V3JpdGVyRGVsZWdhdGU+IG1fd3JpdGVyRGVsZWdhdGU7CkBAIC0xMzksOSArMTM5LDkgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RvcEFmdGVyRmx1c2hpbmdTYW1wbGVzIHsgZmFs
c2UgfTsKICAgICBib29sIG1fZmlyc3RWaWRlb0ZyYW1lIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9w
dGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBtX3ZpZGVvVHJhbnNmb3JtOwotICAgIENNVGltZSBt
X3Jlc3VtZWRWaWRlb1RpbWUgeyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBtX2N1cnJlbnRW
aWRlb0R1cmF0aW9uIHsga0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUgbV9jdXJyZW50QXVkaW9T
YW1wbGVUaW1lIHsga0NNVGltZVplcm8gfTsKKyAgICBDTVRpbWUgbV9yZXN1bWVkVmlkZW9UaW1l
OworICAgIENNVGltZSBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uOworICAgIENNVGltZSBtX2N1cnJl
bnRBdWRpb1NhbXBsZVRpbWU7CiAgICAgZG91YmxlIG1fdGltZUNvZGUgeyAwIH07CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
aW5kZXggNjNiZDY1OThkMDJhNWM3MDA2ZGE5MjlmYzk0ZjFmNWY2NmE3MTZkYS4uNmFkMjBiZThj
YjU3OTIzYTBlNzg0MmUzNzAxZDMzYTZhYTAzYWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtOTMsOCArOTMsNiBAQCBA
ZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmVm
UHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGNvbnN0IE1lZGlhUmVjb3Jk
ZXJQcml2YXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvIHdyaXRlciA9IGFkb3B0UmVm
KCpuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIGhhc1ZpZGVvKSk7CkBA
IC0xMjIsNiArMTIwLDExIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXBy
ZXNzZWRBdWRpb091dHB1dEJ1ZmZlckNhbGxiYWNrKHZvaWQgKm1lZGlhCiBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoYm9vbCBoYXNBdWRpbywg
Ym9vbCBoYXNWaWRlbykKICAgICA6IG1faGFzQXVkaW8oaGFzQXVkaW8pCiAgICAgLCBtX2hhc1Zp
ZGVvKGhhc1ZpZGVvKQorICAgICwgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lKFBBTDo6a0NN
VGltZUludmFsaWQpCisgICAgLCBtX2xhc3RWaWRlb0RlY29kaW5nVGltZShQQUw6OmtDTVRpbWVJ
bnZhbGlkKQorICAgICwgbV9yZXN1bWVkVmlkZW9UaW1lKFBBTDo6a0NNVGltZVplcm8pCisgICAg
LCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKFBBTDo6a0NNVGltZVplcm8pCisgICAgLCBtX2N1cnJl
bnRBdWRpb1NhbXBsZVRpbWUoUEFMOjprQ01UaW1lWmVybykKIHsKIH0KIApAQCAtMTc5LDcgKzE4
Miw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVz
c2VkVmlkZW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNWaWRlbyk7CiAgICAg
aWYgKCFtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV92aWRlb0Zvcm1hdERl
c2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVvQ29t
cHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX3ZpZGVvRm9ybWF0
RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV92
aWRlb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKIAogICAgICAgICBpZiAo
bV9oYXNBdWRpbyAmJiAhbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMTk2LDcgKzE5OSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQo
bV9oYXNBdWRpbyk7CiAgICAgaWYgKCFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAg
ICAgbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNj
cmlwdGlvbihtX2F1ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAg
ICAgICBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9y
bWF0RGVzY3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigp
KTsKICAgICAgICAgaWYgKG1faGFzVmlkZW8gJiYgIW1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbikK
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIoKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTprQ01U
aW1lWmVyb107CisgICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTpQ
QUw6OmtDTVRpbWVaZXJvXTsKIAogICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7
CiAKQEAgLTMwMCw4ICszMDMsOCBAQCBib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjph
cHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJJZlBvc3NpYmxlKCkKIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcihD
TVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKFttX3ZpZGVvQXNzZXRXcml0
ZXJJbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pOwotICAgIG1fbGFzdFZpZGVvUHJlc2Vu
dGF0aW9uVGltZSA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZl
cik7Ci0gICAgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldERlY29k
ZVRpbWVTdGFtcChidWZmZXIpOworICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBt
X2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1l
U3RhbXAoYnVmZmVyKTsKICAgICBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgPSB0cnVlOwogCiAg
ICAgW21fdmlkZW9Bc3NldFdyaXRlcklucHV0LmdldCgpIGFwcGVuZFNhbXBsZUJ1ZmZlcjpidWZm
ZXJdOwpAQCAtMzE0LDE3ICszMTcsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6YXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKQogCiBzdGF0aWMgaW5saW5lIHZvaWQg
YXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIoQVZBc3NldFdyaXRlcklucHV0
ICphc3NldFdyaXRlcklucHV0LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUg
ZGVjb2RpbmdUaW1lU3RhbXApCiB7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8g
PSB7IGtDTVRpbWVJbnZhbGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0
YW1wfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01UaW1l
SW52YWxpZCwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkZWNvZGluZ1RpbWVTdGFtcH07CiAKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIgPSBOVUxMOwotICAgIGF1dG8gZXJyb3IgPSBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVlLCBOVUxMLCBO
VUxMLCBOVUxMLCAwLCAxLCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7CisgICAgYXV0
byBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
TlVMTCwgdHJ1ZSwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5VTEws
ICZidWZmZXIpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZEVuZHNQcmV2aW91
c1NhbXBsZUR1cmF0aW9uTWFya2VyIGZhaWxlZCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gc2FtcGxlQnVmZmVy
ID0gYWRvcHRDRihidWZmZXIpOwogCi0gICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlci5n
ZXQoKSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVEdXJh
dGlvbiwga0NGQm9vbGVhblRydWUsIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7
CisgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBQQUw6OmtDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtDRkJv
b2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogICAgIGlmICgh
W2Fzc2V0V3JpdGVySW5wdXQgYXBwZW5kU2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZlci5nZXQoKV0p
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXIgYXBwZW5kU2FtcGxlQnVmZmVyIHRvIHdyaXRlciBpbnB1dCBmYWlsZWQiKTsK
IH0KQEAgLTM4MiwxOCArMzg1LDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYmCiBzdGF0aWMg
aW5saW5lIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY29weVNhbXBsZUJ1ZmZlcldpdGhD
dXJyZW50VGltZVN0YW1wKENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsQnVmZmVyLCBDTVRpbWUg
c3RhcnRUaW1lKQogewogICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKLSAgICBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAmY291
bnQpOworICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3Jp
Z2luYWxCdWZmZXIsIDAsIG5pbCwgJmNvdW50KTsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWlu
Z0luZm8+IHRpbWVJbmZvKGNvdW50KTsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50
KTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdp
bmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOwogCiAgICAgZm9yIChh
dXRvIGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICB0aW1lSW5mb1tpXS5kZWNvZGVU
aW1lU3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKKyAgICAgICAgdGltZUluZm9baV0uZGVjb2RlVGlt
ZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKICAgICAgICAgdGltZUluZm9baV0ucHJlc2Vu
dGF0aW9uVGltZVN0YW1wID0gc3RhcnRUaW1lOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVy
UmVmIG5ld0J1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFs
QnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgp
LCAmbmV3QnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
Ik1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhO
ZXdUaW1pbmcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KQEAgLTQwNCw3ICs0MDcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAg
IGlmICghbV9maXJzdFZpZGVvRnJhbWUpIHsKICAgICAgICAgbV9maXJzdFZpZGVvRnJhbWUgPSB0
cnVlOwotICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2Nr
R2V0SG9zdFRpbWVDbG9jaygpKTsKKyAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpD
TUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogICAgICAgICBp
ZiAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6
Tm9uZSB8fCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpKSB7CiAgICAgICAgICAgICBtX3ZpZGVvVHJh
bnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlUm90YXRpb24oc3RhdGljX2Nhc3Q8aW50Pihz
YW1wbGUudmlkZW9Sb3RhdGlvbigpKSAqIE1fUEkgLyAxODApOwogICAgICAgICAgICAgaWYgKHNh
bXBsZS52aWRlb01pcnJvcmVkKCkpCkBAIC00MTIsOCArNDE1LDggQEAgdm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gc2FtcGxlVGltZSA9IENNVGltZVN1
YnRyYWN0KENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3Vt
ZWRWaWRlb1RpbWUpOwotICAgIHNhbXBsZVRpbWUgPSBDTVRpbWVBZGQoc2FtcGxlVGltZSwgbV9j
dXJyZW50VmlkZW9EdXJhdGlvbik7CisgICAgYXV0byBzYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVT
dWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2so
KSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1lQWRk
KHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOwogICAgIGlmIChhdXRvIGJ1ZmZl
cldpdGhDdXJyZW50VGltZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcChz
YW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHNhbXBsZVRpbWUp
KQogICAgICAgICBtX3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldpdGhD
dXJyZW50VGltZS5nZXQoKSk7CiB9CkBAIC00MjIsNyArNDI1LDcgQEAgdm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEKIHsKICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBs
ZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1w
bGVDb3VudCkpCiAgICAgICAgIG1fYXVkaW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoc2Ft
cGxlQnVmZmVyLmdldCgpKTsKLSAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBDTVRpbWVB
ZGQobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCB0b0NNVGltZShNZWRpYVRpbWUoc2FtcGxlQ291
bnQsIGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSkpKTsKKyAgICBtX2N1cnJlbnRBdWRpb1NhbXBs
ZVRpbWUgPSBQQUw6OkNNVGltZUFkZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIFBBTDo6dG9D
TVRpbWUoTWVkaWFUaW1lKHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7
CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZpbmlzaGVkRmx1c2hpbmdT
YW1wbGVzKCkKQEAgLTUyMywxMCArNTI2LDEwIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKCkKIHsKICAgICBhdXRvIGN1cnJlbnRUaW1lQ29kZSA9
IG1fdGltZUNvZGU7CiAgICAgaWYgKG1faGFzQXVkaW8pCi0gICAgICAgIG1fdGltZUNvZGUgPSBD
TVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CisgICAgICAgIG1fdGlt
ZUNvZGUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKTsK
ICAgICBlbHNlIHsKLSAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3QoQ01D
bG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGlt
ZSk7Ci0gICAgICAgIG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZUFkZChzYW1w
bGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKSk7CisgICAgICAgIGF1dG8gc2FtcGxlVGlt
ZSA9IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tH
ZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgICAgICBtX3RpbWVD
b2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUsIG1f
Y3VycmVudFZpZGVvRHVyYXRpb24pKTsKICAgICB9CiAgICAgbV9mZXRjaERhdGFDb21wbGV0aW9u
SGFuZGxlcih0YWtlRGF0YSgpLCBjdXJyZW50VGltZUNvZGUpOwogfQpAQCAtNTUwLDEzICs1NTMs
MTMgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnRh
a2VEYXRhKCkKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cGF1c2UoKQogewot
ICAgIGF1dG8gcmVjb3JkaW5nRHVyYXRpb24gPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGlt
ZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICBt
X2N1cnJlbnRWaWRlb0R1cmF0aW9uID0gQ01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1
cnJlbnRWaWRlb0R1cmF0aW9uKTsKKyAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gUEFMOjpD
TVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1l
Q2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgbV9jdXJyZW50VmlkZW9EdXJhdGlv
biA9IFBBTDo6Q01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1cmF0
aW9uKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cmVzdW1lKCkKIHsK
LSAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRp
bWVDbG9jaygpKTsKKyAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRUaW1l
KFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Om1pbWVUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNzZkNTZkN2I4ZDEzYzcy
ZWEzOWZjMzQ5OWQxNzk4OTk3MTdmMGU3OC4uZDA3NjBmMDdlMzcwODEyN2Y5ZGUyZWZhZjkyZjBl
MDc3MmZkMzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IubW0KQEAgLTM0LDEyICszNCwxMSBAQAogI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZUQ29t
cHJlc3Npb25TZXNzaW9uLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAorI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvVmlkZW9Ub29s
Ym94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2Ug
UEFMOwotCiBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShTdHJpbmcgbWltZVR5cGUsIENNQnVmZmVy
UXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewog
ICAgIGF1dG8gcHJvZmlsZSA9IFByb2ZpbGU6OkJhc2VsaW5lOwpAQCAtNjksNyArNjgsNyBAQCBW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcihD
TVZpZGVvQ29kZWNUeXBlIG91dHB1dAogVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+Vmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV92dFNlc3Npb24pIHsKLSAg
ICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgpKTsK
KyAgICAgICAgUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24u
Z2V0KCkpOwogICAgICAgICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNzcs
MTIgKzc2LDEyIEBAIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvcigpCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlh
bGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFj
a09iamVjdCkKIHsKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOwotICAg
IGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCks
ICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CdWZm
ZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVH
ZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVl
KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciB1bmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBxdWV1ZSAlZCIsIGVycm9y
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1ZXVl
ID0gb3V0cHV0QnVmZmVyUXVldWU7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1f
b3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVm
ZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVMTCk7
CisgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1
ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJf
V2hlbkRhdGFCZWNvbWVzUmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAgbV9p
c0VuY29kaW5nID0gdHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk2LDEwICs5NSwxMCBAQCB2
b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2V0Qml0c1BlclNlY29uZCh1bnNpZ25l
ZCBiaXRSYXRlKQogdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCgpCiB7
CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAgICAg
ICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92dFNl
c3Npb24uZ2V0KCksIGtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6
VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFM
OjprQ01UaW1lSW52YWxpZCk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBN
ZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vz
c2lvbkNvbXBsZXRlRnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgICAgIGVy
cm9yID0gQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQo
KSk7CisgICAgICAgIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291
dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJy
b3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVl
dWVNYXJrRW5kT2ZEYXRhIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAgICAgIG1faXNF
bmNvZGluZyA9IGZhbHNlOwpAQCAtMTE0LDcgKzExMyw3IEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjp2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2sodm9pZCAqcmVmQ29uLCB2b2lk
KiwKIAogICAgIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciAqY29tcHJlc3NvciA9IHN0YXRp
Y19jYXN0PFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcio+KHJlZkNvbik7CiAKLSAgICBhdXRv
IGVycm9yID0gQ01CdWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJR
dWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVl
RW5xdWV1ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwog
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKIH0KIApAQCAtMTMwLDUzICsxMjksNTMgQEAgQ0ZTdHJpbmdSZWYgVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCgpIGNvbnN0CiB7CiAgICAgc3dpdGNoICht
X3Byb2ZpbGUpIHsKICAgICBjYXNlIFByb2ZpbGU6OkJhc2VsaW5lOgotICAgICAgICByZXR1cm4g
a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOworICAgICAgICByZXR1cm4g
UEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CiAgICAgY2FzZSBQ
cm9maWxlOjpIaWdoOgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9B
dXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hf
QXV0b0xldmVsOwogICAgIGNhc2UgUHJvZmlsZTo6TWFpbjoKLSAgICAgICAgcmV0dXJuIGtWVFBy
b2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQ
cm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbDsKICAgICB9CiB9CiAKIGJvb2wgVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbikKIHsKLSAgICBDTVZpZGVvRGltZW5z
aW9ucyBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhm
b3JtYXREZXNjcmlwdGlvbik7CisgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IFBB
TDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlv
bik7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmlj
YXRpb25zID0gbmlsOwogI2Vsc2UKLSAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0
aW9ucyA9IEB7KF9fYnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlv
bl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyOkBZRVN9OworICAgIE5TRGlj
dGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcgKilQ
QUw6OmtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRl
ZFZpZGVvRW5jb2RlcjpAWUVTfTsKICNlbmRpZgogCiAgICAgVlRDb21wcmVzc2lvblNlc3Npb25S
ZWYgdnRTZXNzaW9uOwotICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdo
dCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2RlclNw
ZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRoaXMs
ICZ2dFNlc3Npb24pOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9u
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMu
aGVpZ2h0LCBtX291dHB1dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZillbmNv
ZGVyU3BlY2lmaWNhdGlvbnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFjaywg
dGhpcywgJnZ0U2Vzc2lvbik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJl
c3Npb25TZXNzaW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1
cm4gTk87CiAgICAgfQogICAgIG1fdnRTZXNzaW9uID0gYWRvcHRDRih2dFNlc3Npb24pOwogCi0g
ICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworICAgIGVycm9y
ID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOwogICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxU
aW1lIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25T
ZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJh
dGlvbik7CisgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vz
c2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50
ZXJ2YWxEdXJhdGlvbiwgbV9tYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24pOwogICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01h
eEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBl
cnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJh
bWVSYXRlKTsKKyAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRT
ZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFt
ZVJhdGUsIG1fZXhwZWN0ZWRGcmFtZVJhdGUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVy
cm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25T
ZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0
eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2
ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHko
bV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxl
TGV2ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBW
VFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZl
bCBmYWlsZWQgd2l0aCAlZCBmb3IgcHJvZmlsZSAlZCIsIGVycm9yLCBtX3Byb2ZpbGUpOwogICAg
ICAgICBpZiAobV9wcm9maWxlICE9IFByb2ZpbGU6OkJhc2VsaW5lKSB7Ci0gICAgICAgICAgICBl
cnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxp
bmVfQXV0b0xldmVsKTsKKyAgICAgICAgICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHko
bV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxl
TGV2ZWwsIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKTsKICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lv
blByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgZGVmYXVsdCBwcm9m
aWxlIiwgZXJyb3IpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fb3V0cHV0Qml0UmF0
ZSkgewotICAgICAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRT
ZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCAq
bV9vdXRwdXRCaXRSYXRlKTsKKyAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Q
cm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X0F2ZXJhZ2VCaXRSYXRlLCAqbV9vdXRwdXRCaXRSYXRlKTsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJp
dFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgfQogCi0gICAgZXJyb3IgPSBWVENv
bXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7
CisgICAgZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJh
bWVzKG1fdnRTZXNzaW9uLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwg
TWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNl
c3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAg
ICByZXR1cm4gWUVTOwpAQCAtMTg1LDE0ICsxODQsMTQgQEAgYm9vbCBWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW8KIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVy
KENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBpZiAoIW1fdnRTZXNzaW9uKSB7Ci0g
ICAgICAgIGlmICghaW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKGJ1ZmZlcikpKQorICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Np
b24oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7Ci0gICAgYXV0byBwcmVzZW50YXRpb25UaW1l
U3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIpOwot
ICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7Ci0g
ICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNlc3Np
b24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBO
VUxMLCB0aGlzLCBOVUxMKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1lU3Rh
bXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7
CisgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZm
ZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJh
bWUobV92dFNlc3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAs
IGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBOVUxMKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihl
cnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVz
c2lvblNlc3Npb25FbmNvZGVGcmFtZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApAQCAt
MjA4LDEyICsyMDcsMTIgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVyUmVm
IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsK
LSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZl
clF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVybiAo
Q01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZUdl
dEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENNU2Ft
cGxlQnVmZmVyUmVmPiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1w
bGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29u
c3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVm
KShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1f
b3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwCmluZGV4
IGMzZmU4MjFiOWM1MjBjOTIyNGU1ZGU4ODhlNTE4YzMxOTZmMzFjYjUuLmEwMjQwODRjMjRlNmQz
NjM5NjA4YTY0NjUyZWNjNWQ2ZDllZmFjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
b2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKQEAgLTQy
LDYgKzQyLDcgQEAKICNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIgog
I2VuZGlmCiAKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNs
dWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTIzLDkgKzEyNCw5IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdDo6c3RhcnQoKQogICAgIGlmICghbV9yZW1vdGVJT1VuaXQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9y
ZW1vdGVJT1VuaXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvT3V0cHV0VW5p
dFN0YXJ0KG1fcmVtb3RlSU9Vbml0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJS
VEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQgQXVk
aW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwotICAgICAgICBB
dWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIFBB
TDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAgICAg
ICBtX3JlbW90ZUlPVW5pdCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0x
MzksMTEgKzE0MCwxMSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXQ6OnN0b3AoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1N0YXJ0
ZWQpIHsKLSAgICAgICAgQXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CisgICAg
ICAgIFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CiAgICAgICAgIG1f
aXNTdGFydGVkID0gZmFsc2U7CiAgICAgfQogCi0gICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURp
c3Bvc2UobV9yZW1vdGVJT1VuaXQpOworICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURp
c3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAgIG1fcmVtb3RlSU9Vbml0ID0gbnVsbHB0cjsKIH0K
IApAQCAtMTYzLDE0ICsxNjQsMTQgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgaW9Vbml0
RGVzY3JpcHRpb24uY29tcG9uZW50U3ViVHlwZSA9IGtBdWRpb1VuaXRTdWJUeXBlX0RlZmF1bHRP
dXRwdXQ7CiAjZW5kaWYKIAotICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVkaW9D
b21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlv
Q29tcG9uZW50IGlvQ29tcG9uZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxw
dHIsICZpb1VuaXREZXNjcmlwdGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAgICBp
ZiAoIWlvQ29tcG9uZW50KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQg
dW5hYmxlIHRvIGZpbmQgcmVtb3RlIElPIHVuaXQgY29tcG9uZW50Iik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBhdXRvIGVycm9yID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhp
b0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9D
b21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CiAgICAgaWYg
KGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRv
IG9wZW4gdnBpbyB1bml0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBA
IC0xNzgsNyArMTc5LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFVJbnQzMiBwYXJhbSA9IDE7Ci0gICAgZXJyb3IgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJ
Tywga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAg
ICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9P
dXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICZw
YXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgb3V0cHV0LCBl
cnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xODcsNyArMTg4LDcgQEAg
dm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVh
dGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1fZGV2
aWNlSUQpIHsKLSAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1Vu
aXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2Nv
cGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAgICAg
ZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0
cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAs
ICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOwogICAgICAgICBpZiAoZXJyb3IpIHsK
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCB1
bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludCltX2RldmljZUlELCAoaW50
KWVycm9yLCAoY2hhciopJmVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5NiwxNCAr
MTk3LDE0IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogI2VuZGlmCiAKICAgICBBVVJlbmRlckNh
bGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0OjpyZW5kZXJpbmdDYWxsYmFjaywgdGhpcyB9OwotICAgIGVycm9yID0g
QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0
UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywgc2l6
ZW9mKGNhbGxiYWNrKSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJl
bW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9V
bml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlm
IChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0
byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG91dHB1dERlc2Ny
aXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkpOwotICAgIGVycm9yICA9IEF1ZGlvVW5pdEdldFBy
b3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRp
b24oKSwgJnNpemUpOworICAgIGVycm9yICA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkocmVt
b3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCAmc2l6
ZSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1Vu
aXQgdW5hYmxlIHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJyb3Ip
OwogICAgICAgICByZXR1cm47CkBAIC0yMTEsMTMgKzIxMiwxMyBAQCB2b2lkIExvY2FsQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVl
ZGVkKCkKIAogICAgIG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkubVNhbXBs
ZVJhdGUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCk7CiAKLSAg
ICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFBy
b3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVz
Y3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0
cmVhbURlc2NyaXB0aW9uKCkpKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVy
dHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9V
bml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigp
LCBzaXplb2Yob3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSkpOwogICAgIGlm
IChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0
byBzZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGVycm9yID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1vdGVJ
T1VuaXQpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlPVW5p
dCk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1Vu
aXQgQXVkaW9Vbml0SW5pdGlhbGl6ZSgpIGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDRiNzg4YWU1
YWE4N2I3MjllNWJkY2Y5Y2Y3MTM4MTJjNjc3MGEzMjUuLmUyZTAwYjM5N2IxMzljNDgyZmYwM2Mw
MTI2NjJhMDBjNzRjYWMxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTUx
LDcgKzUxLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIEBpbnRlcmZhY2Ug
V2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgOiBOU09iamVjdDxBVkNhcHR1cmVW
aWRlb0RhdGFPdXRwdXRTYW1wbGVCdWZmZXJEZWxlZ2F0ZT4gewogICAgIEFWVmlkZW9DYXB0dXJl
U291cmNlKiBtX2NhbGxiYWNrOwpAQCAtMzUxLDEwICszNTAsMTAgQEAgdm9pZCBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUoKQogICAgICAgICAgICAgaWYg
KGZyYW1lUmF0ZVJhbmdlKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50RnJhbWVSYXRlID0g
Y2xhbXBUbyhtX2N1cnJlbnRGcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lUmF0ZSwg
ZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVSYXRlKTsKIAotICAgICAgICAgICAgICAgIGF1dG8gZnJh
bWVEdXJhdGlvbiA9IENNVGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKLSAgICAgICAg
ICAgICAgICBpZiAoQ01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5t
aW5GcmFtZUR1cmF0aW9uKSA8IDApCisgICAgICAgICAgICAgICAgYXV0byBmcmFtZUR1cmF0aW9u
ID0gUEFMOjpDTVRpbWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7CisgICAgICAgICAgICAg
ICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5t
aW5GcmFtZUR1cmF0aW9uKSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24g
PSBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0aW9uOwotICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVE
dXJhdGlvbikgPiAwKQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBBTDo6Q01UaW1lQ29tcGFy
ZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uKSA+IDApCiAg
ICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVSYW5nZS5tYXhGcmFt
ZUR1cmF0aW9uOwogCiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwg
TE9HSURFTlRJRklFUiwgInNldHRpbmcgZnJhbWUgcmF0ZSB0byAiLCBtX2N1cnJlbnRGcmFtZVJh
dGUsICIsIGR1cmF0aW9uICIsIFBBTDo6dG9NZWRpYVRpbWUoZnJhbWVEdXJhdGlvbikpOwpAQCAt
NDM0LDYgKzQzMyw4IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigp
CiAKIEFWRnJhbWVSYXRlUmFuZ2UqIEFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9u
Rm9yRnJhbWVSYXRlKGRvdWJsZSByYXRlKQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8v
IEZvciBDTVRJTUVfQ09NUEFSRV9JTkxJTkUKKwogICAgIEFWRnJhbWVSYXRlUmFuZ2UgKmJlc3RG
cmFtZVJhdGVSYW5nZSA9IG5pbDsKICAgICBmb3IgKEFWRnJhbWVSYXRlUmFuZ2UgKmZyYW1lUmF0
ZVJhbmdlIGluIFtbZGV2aWNlKCkgYWN0aXZlRm9ybWF0XSB2aWRlb1N1cHBvcnRlZEZyYW1lUmF0
ZVJhbmdlc10pIHsKICAgICAgICAgaWYgKGZyYW1lUmF0ZVJhbmdlSW5jbHVkZXNSYXRlKHsgW2Zy
YW1lUmF0ZVJhbmdlIG1pbkZyYW1lUmF0ZV0sIFtmcmFtZVJhdGVSYW5nZSBtYXhGcmFtZVJhdGVd
IH0sIHJhdGUpKSB7CkBAIC01OTgsNyArNTk5LDcgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Z2VuZXJhdGVQcmVzZXRzKCkKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gcHJlc2V0
czsKICAgICBmb3IgKEFWQ2FwdHVyZURldmljZUZvcm1hdCogZm9ybWF0IGluIFtkZXZpY2UoKSBm
b3JtYXRzXSkgewogCi0gICAgICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlv
bik7CisgICAgICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9uKTsK
ICAgICAgICAgSW50U2l6ZSBzaXplID0geyBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhl
aWdodCB9OwogICAgICAgICBhdXRvIGluZGV4ID0gcHJlc2V0cy5maW5kTWF0Y2hpbmcoWyZzaXpl
XShhdXRvJiBwcmVzZXQpIHsKICAgICAgICAgICAgIHJldHVybiBzaXplID09IHByZXNldC0+c2l6
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcAppbmRleCA2ZTI2YzhmYTRlY2Qz
MGFjMWU1MmZlYzM4YWY1N2QwZTMzZDliYzI0Li5lMTU1NDYyZjUxODE1ODhiYTNiYzk0NTZjNmI2
YWU5YWZlMjFiNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCkBAIC0x
OSw3ICsxOSw3IEBACiAgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiAoSU5DTFVESU5HIE5FR0xJR0VQQUw6Ok5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCkBA
IC0zNiw3ICszNiw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGJvb2wg
Z2V0RGV2aWNlSW5mbyh1aW50MzJfdCBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZSB0eXBlLCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwgU3RyaW5nJiBsYWJlbCkKIHsKQEAgLTIwNSw3
ICsyMDQsNyBAQCBSZXRhaW5QdHI8Q01DbG9ja1JlZj4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6
ZGV2aWNlQ2xvY2soKQogICAgICAgICByZXR1cm4gbV9kZXZpY2VDbG9jazsKIAogICAgIENNQ2xv
Y2tSZWYgY2xvY2s7Ci0gICAgYXV0byBlcnIgPSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgcGVyc2lzdGVudElkKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwg
JmNsb2NrKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHBlcnNpc3RlbnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCks
ICZjbG9jayk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJS
VEMsICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoJXAp
IENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0
aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCAwM2YzZTYyYTI2MzdjM2U5MDFi
YWY2OTRkM2M1MjY1ZWZhNzRhZWIyLi5mNGIzNjU4OTRkMzdjZDk0ZmYyMWI3ZmI1NGZkYjI2NDFm
MzZmZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00OCw2ICs0
OCw4IEBACiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaW5jbHVkZSA8cGFs
L2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNv
ZnRMaW5rLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTcsNyArNTksNiBAQAog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNp
ZiBQTEFURk9STShNQUMpCiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpCkBAIC0yMDMsNyArMjA0LDcgQEAgT1NT
dGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIG1fRFRTQ29u
dmVyc2lvblJhdGlvID0gMWUtOSAqIHN0YXRpY19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZvLm51
bWVyKSAvIHN0YXRpY19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZvLmRlbm9tKTsKIAogICAgIEF1
ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gaW9Vbml0RGVzY3JpcHRpb24gPSB7IGtBdWRpb1VuaXRU
eXBlX091dHB1dCwga0F1ZGlvVW5pdFN1YlR5cGVfVm9pY2VQcm9jZXNzaW5nSU8sIGtBdWRpb1Vu
aXRNYW51ZmFjdHVyZXJfQXBwbGUsIDAsIDAgfTsKLSAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBv
bmVudCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9u
KTsKKyAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25lbnRG
aW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChpb0NvbXBv
bmVudCk7CiAgICAgaWYgKCFpb0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxl
IHRvIGZpbmQgdnBpbyB1bml0IGNvbXBvbmVudCIsIHRoaXMpOwpAQCAtMjEyLDcgKzIxMyw3IEBA
IE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmICFM
T0dfRElTQUJMRUQKICAgICBDRlN0cmluZ1JlZiBuYW1lID0gbnVsbHB0cjsKLSAgICBBdWRpb0Nv
bXBvbmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7CisgICAgUEFMOjpBdWRpb0NvbXBv
bmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7CiAgICAgaWYgKG5hbWUpIHsKICAgICAg
ICAgbV9pb1VuaXROYW1lID0gbmFtZTsKICAgICAgICAgQ0ZSZWxlYXNlKG5hbWUpOwpAQCAtMjIw
LDcgKzIyMSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0
KCkKICAgICB9CiAjZW5kaWYKIAotICAgIGF1dG8gZXJyID0gQXVkaW9Db21wb25lbnRJbnN0YW5j
ZU5ldyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9D
b21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKICAgICBpZiAoZXJy
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVu
aXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gb3BlbiB2cGlvIHVuaXQsIGVycm9yICVk
ICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBl
cnI7CkBAIC0yMjgsMTMgKzIyOSwxMyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCgpCiAKICAgICBpZiAoIWVuYWJsZUVjaG9DYW5jZWxsYXRpb24oKSkgewog
ICAgICAgICB1aW50MzJfdCBwYXJhbSA9IDA7Ci0gICAgICAgIGVyciA9IEF1ZGlvVW5pdFNldFBy
b3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNzaW5nRW5hYmxl
QUdDLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFy
YW0pKTsKKyAgICAgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwg
a0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJvY2Vzc2luZ0VuYWJsZUFHQywga0F1ZGlvVW5pdFNj
b3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgICAgIGlm
IChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gYXV0b21h
dGljIGdhaW4gY29udHJvbCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgICAgIH0KICAgICAgICAgcGFy
YW0gPSAxOwotICAgICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FV
Vm9pY2VJT1Byb3BlcnR5X0J5cGFzc1ZvaWNlUHJvY2Vzc2luZywga0F1ZGlvVW5pdFNjb3BlX0ds
b2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgICAgIGVyciA9IFBB
TDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9CeXBh
c3NWb2ljZVByb2Nlc3NpbmcsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFy
YW0sIHNpemVvZihwYXJhbSkpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgZWNobyBjYW5jZWxsYXRpb24sIGVycm9yICVk
ICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1
cm4gZXJyOwpAQCAtMjQzLDcgKzI0NCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6
OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWludDMy
X3QgcGFyYW0gPSAxOwotICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBr
QXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwg
aW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlP
LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkp
OwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBlbmFibGUgdnBp
byB1bml0IGlucHV0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZl
cnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjU1LDcgKzI1Niw3IEBAIE9TU3RhdHVzIENv
cmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICAgICAgICAgIHJldHVybiBl
cnI7CiAgICAgfQogCi0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtB
dWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xv
YmFsLCBpbnB1dEJ1cywgJm1fY2FwdHVyZURldmljZUlELCBzaXplb2YobV9jYXB0dXJlRGV2aWNl
SUQpKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVk
aW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2Jh
bCwgaW5wdXRCdXMsICZtX2NhcHR1cmVEZXZpY2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmljZUlE
KSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJD
b3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlv
IHVuaXQgY2FwdHVyZSBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQp
bV9jYXB0dXJlRGV2aWNlSUQsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVy
biBlcnI7CkBAIC0yNzAsNyArMjcxLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c2V0dXBBdWRpb1VuaXQoKQogICAgIGlmIChlcnIpCiAgICAgICAgIHJldHVybiBlcnI7CiAKLSAg
ICBlcnIgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1faW9Vbml0KTsKKyAgICBlcnIgPSBQQUw6OkF1
ZGlvVW5pdEluaXRpYWxpemUobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1Vu
aXQoJXApIEF1ZGlvVW5pdEluaXRpYWxpemUoKSBmYWlsZWQsIGVycm9yICVkICglLjRzKSIsIHRo
aXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yOTIs
NyArMjkzLDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0Ojp1bmR1Y2soKQogT1NTdGF0dXMg
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQogewogICAgIEFV
UmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IG1pY3JvcGhvbmVDYWxsYmFjaywgdGhp
cyB9OwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRp
b091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xv
YmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVy
ciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQ
cm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1
cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3Vy
ZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBtaWMgcHJvYywgZXJy
b3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0
dXJuIGVycjsKQEAgLTMwMSwxNCArMzAyLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24gbWljcm9waG9uZVByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNp
emVvZihtaWNyb3Bob25lUHJvY0Zvcm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVy
dHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRT
Y29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZzaXplKTsKKyAg
ICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJv
cGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1p
Y3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNy
b3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIGdldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3Ig
JWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJu
IGVycjsKICAgICB9CiAKICAgICBtaWNyb3Bob25lUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHNh
bXBsZVJhdGUoKTsKLSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1
ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5w
dXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJyID0gUEFMOjpBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1h
dCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1h
dCwgc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJS
VEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5h
YmxlIHRvIHNldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywg
KGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMyMyw3ICsz
MjQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25l
UHJvYygpCiBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJv
YygpCiB7CiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgc3BlYWtlckNh
bGxiYWNrLCB0aGlzIH07Ci0gICAgYXV0byBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lv
VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2Nv
cGVfSW5wdXQsIG91dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBh
dXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQ
cm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRC
dXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1
cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgc3BlYWtlciBwcm9jLCBl
cnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICBy
ZXR1cm4gZXJyOwpAQCAtMzMyLDE0ICszMzMsMTQgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoKQogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiBzcGVha2VyUHJvY0Zvcm1hdCA9IHsgfTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9m
KHNwZWFrZXJQcm9jRm9ybWF0KTsKLSAgICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lv
VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lu
cHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9IFBB
TDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJl
YW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NG
b3JtYXQsICZzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1
bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMs
IChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCiAg
ICAgc3BlYWtlclByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7Ci0gICAgZXJy
ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJl
YW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NG
b3JtYXQsIHNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1Vu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1
dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUpOwogICAgIGlmIChlcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1h
dCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAg
ICAgcmV0dXJuIGVycjsKQEAgLTQ1OSw3ICs0NjAsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OmNsZWFudXBBdWRpb1VuaXQoKQogICAgIH0KIAogICAgIGlmIChtX2lvVW5pdCkgewotICAg
ICAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX2lvVW5pdCk7CisgICAgICAgIFBB
TDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9pb1VuaXQpOwogICAgICAgICBtX2lv
VW5pdCA9IG51bGxwdHI7CiAgICAgfQogCkBAIC00NzcsNyArNDc4LDcgQEAgT1NTdGF0dXMgQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gQXVkaW9PdXRw
dXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0
U3RvcChtX2lvVW5pdCk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9V
bml0KCVwKSBBdWRpb091dHB1dFVuaXRTdG9wIGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIs
IHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpA
QCAtNDkwLDcgKzQ5MSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmln
dXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0dXJuIGVycjsKIAogICAgIGlmIChtX2lvVW5pdFN0
YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOwor
ICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKICAgICAg
ICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoJXApIEF1ZGlvT3V0cHV0VW5p
dFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hh
ciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtNTE0LDcgKzUxNSw3IEBAIE9T
U3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwoKQogCiAgICAgdW5kdWNr
KCk7CiAKLSAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAgZXJy
ID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
dGFydCglcCkgQXVkaW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMp
IiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgY2xlYW51cEF1ZGlvVW5p
dCgpOwpAQCAtNTUxLDcgKzU1Miw3IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcElu
dGVybmFsKCkKICAgICBpZiAoIW1faW9Vbml0IHx8ICFtX2lvVW5pdFN0YXJ0ZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGF1dG8gZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7
CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOwogICAg
IGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlv
U2hhcmVkVW5pdDo6c3RvcCglcCkgQXVkaW9PdXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJv
ciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1
cm47CkBAIC01NjUsNyArNTY2LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVm
YXVsdElucHV0RGV2aWNlKHVpbnQzMl90KiBkZXZpY2VJRCkKICAgICBBU1NFUlQobV9pb1VuaXQp
OwogCiAgICAgVUludDMyIHByb3BlcnR5U2l6ZSA9IHNpemVvZigqZGV2aWNlSUQpOwotICAgIGF1
dG8gZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQ
cm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywg
ZGV2aWNlSUQsICZwcm9wZXJ0eVNpemUpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRH
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZp
Y2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCBkZXZpY2VJRCwgJnByb3BlcnR5
U2l6ZSk7CiAgICAgaWYgKGVycikKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKCVwKSB1bmFibGUgdG8gZ2V0
IGRlZmF1bHQgaW5wdXQgZGV2aWNlIElELCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVy
ciwgKGNoYXIqKSZlcnIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5j
cHAKaW5kZXggM2Y0ZTRkY2Y0MmMwZmE5M2VmOWFiNjJkZDIyYTk3YzUxMzg3MDY2My4uNTgyZjRi
MjZjZjExOGM0OTcxYWNkN2QxODMwOTIxOTdlMWU3NjgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2Eu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtNTYsNyArNTYsNiBAQAogI2luY2x1ZGUgIkNvcmVW
aWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNy
ZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQppbmRleCBhYTdmZjA4
NzUwNTQyNTgyZjFlZjkxNjdhODFlNmZiNWE1NDhmMTUyLi5iODZiMDVlOGM2NjViYzJlODA1ZjI3
YjM4YjFhNGZkMzMxM2Y5MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAtNDQs
MTQgKzQ0LDEwIEBACiAjaW1wb3J0IDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KICNp
bXBvcnQgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogCisjaW1wb3J0IDxwYWwvY2YvQXVk
aW9Ub29sYm94U29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5o
PgogCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkKLQotU09GVF9MSU5LKEF1ZGlv
VG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVk
aW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1
ZGlvQ29udmVydGVyKSkKLQogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIAogc3RhdGljIGlubGluZSBzaXplX3QgYWxpZ25UbzE2Qnl0ZXMoc2l6ZV90IHNpemUpCiB7
CkBAIC0yMjEsNyArMjE3LDcgQEAgdm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3Vy
ZSgpCiAgICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlz
dD4obV9zdHJlYW1Gb3JtYXQsIG1fbWF4aW1pdW1GcmFtZUNvdW50KTsKIAogICAgIENNRm9ybWF0
RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb247Ci0gICAgQ01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlKE5VTEwsICZtX3N0cmVhbUZvcm1hdCwgMCwgTlVMTCwgMCwgTlVMTCwgTlVM
TCwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZShOVUxMLCAmbV9zdHJlYW1Gb3JtYXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZm
b3JtYXREZXNjcmlwdGlvbik7CiAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9y
bWF0RGVzY3JpcHRpb24pOwogCiAgICAgc2l6ZV90IHNhbXBsZUNvdW50ID0gMiAqIHJhdGU7CkBA
IC0yNDMsNyArMjM5LDcgQEAgdm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVm
ZmVycyh1aW50MzJfdCBmcmFtZUNvdW50KQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwog
ICAgIEFTU0VSVChtX2Zvcm1hdERlc2NyaXB0aW9uKTsKIAotICAgIENNVGltZSBzdGFydFRpbWUg
PSBDTVRpbWVNYWtlKG1fc2FtcGxlc0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7CisgICAgQ01UaW1l
IHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRl
KCkpOwogICAgIG1fc2FtcGxlc0VtaXR0ZWQgKz0gZnJhbWVDb3VudDsKIAogICAgIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSksICptX2F1ZGlvQnVmZmVy
TGlzdCwgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG1fc3RyZWFtRm9ybWF0KSwgZnJhbWVDb3Vu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggYjA1OWEz
MjUxZDhiOTY1N2JhOTAxNGM0NGY4MDYzYWY4MjdiMWQ0My4uYjYwYjg4NjZmYmI4MDQ4OGMyM2Zl
MmI1NzY5MmIzMGY4N2UzODY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYy5tbQpAQCAtNTEsNyArNTEsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRM
aW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENh
cHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJ
bmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDU4MDk0YjM0MjBmMzljOGYyNmMxNzc3
YTJhZWQwMTIzZGJlYTI2MjguLmFhNjk2YWRkZjdmNzc5MjU5MTUyOTU4M2MyMTYwYzEyNDkxMWQ1
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29h
LmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlPiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6
OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYm
IGF1ZGlvVHJhY2ssIFN0cmluZyYmIGF1ZGlvVHJhY2tJZCkKIHsKQEAgLTEzMSw3ICsxMzAsNyBA
QCB2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hOjpPbkRhdGEoY29uc3Qgdm9p
ZCogYXVkaW9EYXRhLCBpbnQgYml0c1BlcgogICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9
IDA7CiAgICAgfQogCi0gICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1iZXJP
ZkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1l
TWFrZShtX251bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICBhdXRvIG1lZGlhVGltZSA9
IFBBTDo6dG9NZWRpYVRpbWUoc3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51
bWJlck9mRnJhbWVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW0KaW5kZXggOGRmOGY2OGY2ZjcyNDA0NzVkYmQ0MzIzMDZhYTNhNTY5ZjZlNDhj
Zi4uMGM3MWUxZGIxMGZhNDM3YTdjMDA0M2QzNjRmNDRiZjcyMzcxMWM5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtNDIsNyArNDIs
NiBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVk
aWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFM
OwogCiBSZWY8UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlPiBSZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50
ZXJmYWNlPiYmIHZpZGVvVHJhY2ssIFN0cmluZyYmIHRyYWNrSWQpCiB7CkBAIC0xNzMsMTkgKzE3
MiwxOSBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpPbkZyYW1lKGNv
bnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUpCiAgICAgfQogCiAgICAgQ01TYW1wbGVUaW1p
bmdJbmZvIHRpbWluZ0luZm87Ci0gICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3RhbXAg
PSBDTVRpbWVNYWtlKGZyYW1lLnRpbWVzdGFtcF91cygpLCAxMDAwMDAwKTsKLSAgICB0aW1pbmdJ
bmZvLmRlY29kZVRpbWVTdGFtcCA9IGtDTVRpbWVJbnZhbGlkOwotICAgIHRpbWluZ0luZm8uZHVy
YXRpb24gPSBrQ01UaW1lSW52YWxpZDsKKyAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRpbWVT
dGFtcCA9IFBBTDo6Q01UaW1lTWFrZShmcmFtZS50aW1lc3RhbXBfdXMoKSwgMTAwMDAwMCk7Cisg
ICAgdGltaW5nSW5mby5kZWNvZGVUaW1lU3RhbXAgPSBQQUw6OmtDTVRpbWVJbnZhbGlkOworICAg
IHRpbWluZ0luZm8uZHVyYXRpb24gPSBQQUw6OmtDTVRpbWVJbnZhbGlkOwogCiAgICAgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIE9TU3RhdHVzIG9z
dGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERl
c2NyaXB0aW9uKTsKKyAgICBPU1N0YXR1cyBvc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFn
ZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAob3N0
YXR1cyAhPSBub0VycikgewogICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lE
RU5USUZJRVIsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24g
d2l0aCBlcnJvciAiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBvc3Rh
dHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRp
b24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBvc3RhdHVzID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWlu
Z0luZm8sICZzYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7
CiAgICAgaWYgKG9zdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dl
clB0cigpLCBMT0dJREVOVElGSUVSLCAiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgc2FtcGxlIGJ1ZmZl
ciB3aXRoIGVycm9yICIsIHN0YXRpY19jYXN0PGludD4ob3N0YXR1cykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNmJmMGNhNDg3
ZGQ2NGRiZWY1MzlkOTQ4ODBmNjI4YzdmYTE2MWJmMS4uZTMzYmI2ZGE5ZGRkZDAxYTAwZDk5NmZk
OWVmMDJhYzk4MTRhMWViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlQ29jb2EuY3BwCkBAIC00NSw3ICs0NSw2IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVU
RVJTX0VORAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2U+IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlZjxNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZT4mJiB2aWRlb1NvdXJjZSkKIHsKQEAgLTg1LDcgKzg0LDcgQEAgdm9pZCBS
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVk
aWFTYW1wbGUmIHNhbXBsZSkKICAgICB9CiAKICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2Ft
cGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKLSAgICBh
dXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVC
dWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1w
bGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1
ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9y
bVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIGF1dG8gcGl4ZWxGb3JtYXRU
eXBlID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiAKICAg
ICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY29udmVydGVkQnVmZmVyID0gcGl4ZWxCdWZm
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQppbmRleCA3OGJiY2FkMTM5
OTg2MmY1NWI5NzBiZTQ3N2YyNTE0YzRmMzQ4NDU0Li4xMjkzZGE1NTlmOTI5YTdhZWVjNTRkMDdh
YTlhZTRmOTk0Zjk1YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0K
QEAgLTQ2LDcgKzQ2LDYgQEAKIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0dJbWFnZSk7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29s
IGFueU9mQ0dXaW5kb3coY29uc3QgRnVuY3Rpb248Ym9vbChDRkRpY3Rpb25hcnlSZWYgaW5mbywg
dW5zaWduZWQgaWQsIGNvbnN0IFN0cmluZyYgdGl0bGUpPiYgcHJlZGljYXRlKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRp
YVdyYXBwZWQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L0NvcmVNZWRpYVdyYXBwZWQuY3BwCmluZGV4IGExNmQyNDI1NjQxZjM3YTE5ZDBjMDllNTRiYzNl
ZWY0YWEyODE4ZWEuLjBiYWMxZTI4OWU3NzcyZWFlN2U2YjM2OTgxMDg1OTRiN2E2ODY4NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3Jl
TWVkaWFXcmFwcGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3Jt
YXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKQEAgLTM0LDE3ICszNCwxNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogYm9vbCBjcmVhdGVXcmFwcGVyKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgY29uc3QgQ01CYXNlVlRhYmxlKiBiYXNlVlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQs
IENNQmFzZU9iamVjdFJlZiogd3JhcHBlcikKIHsKLSAgICByZXR1cm4gQ01EZXJpdmVkT2JqZWN0
Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZUYWJsZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0gbm9FcnI7
CisgICAgcmV0dXJuIFBBTDo6Q01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZU
YWJsZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0gbm9FcnI7CiB9CiAKIHZvaWQqIHdyYXBwZXJTdG9y
YWdlKENNQmFzZU9iamVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVybiBDTUJhc2VPYmplY3RH
ZXREZXJpdmVkU3RvcmFnZSh3cmFwcGVyKTsKKyAgICByZXR1cm4gUEFMOjpDTUJhc2VPYmplY3RH
ZXREZXJpdmVkU3RvcmFnZSh3cmFwcGVyKTsKIH0KIAogY29uc3QgQ01CYXNlVlRhYmxlKiB3cmFw
cGVyVlRhYmxlKENNQmFzZU9iamVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVybiBDTUJhc2VP
YmplY3RHZXRWVGFibGUod3JhcHBlcik7CisgICAgcmV0dXJuIFBBTDo6Q01CYXNlT2JqZWN0R2V0
VlRhYmxlKHdyYXBwZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJl
YWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVk
aWFGb3JtYXRSZWFkZXIuY3BwCmluZGV4IGMxODRlNDQ3YjJjZDQ0MmE4NDdlYzMxNjIzMzZiNmZh
Zjc4NzNjN2MuLjVlNzc4Y2MwYjdiZGE3NGUzZjc1Yzk5YjU4YmE4YmZhMjUxNzI5MmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZv
cm1hdFJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcApAQCAtNDcsNyArNDcsNiBAQCBXVEZfREVDTEFS
RV9DRl9UWVBFX1RSQUlUKE1UUGx1Z2luRm9ybWF0UmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
c3RhdGljIGNvbnN0IHZvaWQqIG5leHRMb2dJZGVudGlmaWVyKCkKQEAgLTI0NSw3ICsyNDQsNyBA
QCBPU1N0YXR1cyBNZWRpYUZvcm1hdFJlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVmIGtl
eSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdAogICAgIGlmIChtX2R1cmF0aW9uLmlzSW5kZWZpbml0
ZSgpKQogICAgICAgICByZXR1cm4ga0NNQmFzZU9iamVjdEVycm9yX1ZhbHVlTm90QXZhaWxhYmxl
OwogCi0gICAgaWYgKGF1dG8gbGVha2VkRHVyYXRpb24gPSBhZG9wdENGKENNVGltZUNvcHlBc0Rp
Y3Rpb25hcnkoUEFMOjp0b0NNVGltZShtX2R1cmF0aW9uKSwgYWxsb2NhdG9yKSkubGVha1JlZigp
KSB7CisgICAgaWYgKGF1dG8gbGVha2VkRHVyYXRpb24gPSBhZG9wdENGKFBBTDo6Q01UaW1lQ29w
eUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1lKG1fZHVyYXRpb24pLCBhbGxvY2F0b3IpKS5sZWFr
UmVmKCkpIHsKICAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmKj4odmFs
dWVDb3B5KSA9IGxlYWtlZER1cmF0aW9uOwogICAgICAgICByZXR1cm4gbm9FcnI7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAKaW5kZXggZDgzZWZjZjQ3NzVjZTk2
YjEyYTg3NjBmOGQxNzIzNGFiMGYxZWU3ZC4uNGRlMWQwZWQyYTdiZTQ5ZTNjYmJiOTVlMzc3ZjU0
NTA5ZmFjMDdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCkBAIC0y
NSwxMiArMjUsMTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1lZGlhU2Ft
cGxlQnl0ZVJhbmdlLmgiCisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAK
ICNpZiBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBNZWRpYVNh
bXBsZUJ5dGVSYW5nZTo6TWVkaWFTYW1wbGVCeXRlUmFuZ2UoTWVkaWFTYW1wbGUmIHNhbXBsZSwg
TVRQbHVnaW5CeXRlU291cmNlUmVmIGJ5dGVTb3VyY2UsIHVpbnQ2NF90IHRyYWNrSUQpCkBAIC01
MCw3ICs1MCw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZShN
ZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAgYXV0byBwbGF0Zm9ybVNh
bXBsZSA9IHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIHN3aXRjaCAocGxhdGZvcm1TYW1w
bGUudHlwZSkgewogICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZToK
LSAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVz
Y3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAg
bV9mb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFBsYXRmb3JtU2FtcGxlOjpCeXRlUmFuZ2VTYW1wbGVUeXBlOgogICAgICAg
ICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLmJ5dGVSYW5nZVNh
bXBsZS5zZWNvbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcAppbmRleCBjZTI5MDZk
YzQ0MjliODc1MTRhN2IwMGMzMjE3MzkyZDUwN2IzZjk1Li5mYmU0MjI3MzA2ZjgwZjYxYzEyN2Mz
MzhjNzFlZmE1NGEyZDIwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
TWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKQEAg
LTQzLDcgKzQzLDYgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblNhbXBsZUN1
cnNvcik7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBNZWRpYVRpbWUgYXNzdW1lZERlY29kZVRp
bWUoY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50YXRpb25UaW1lLCBEZWNvZGVPcmRlclNhbXBsZU1h
cCYgbWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCmluZGV4IDkwODYxYzg0ZGRlNmM2
NmRkYjg3NzkzYWIyMzA2YTY2ZTRkZWI3MzEuLjFkYzFjYWUwMzAwOGUwYTIwYTQ0YWM3M2QxYWEz
NzI1MzU3ZjIwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKQEAgLTQ3LDcgKzQ3
LDYgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblRyYWNrUmVhZGVyKTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogQ01CYXNlQ2xhc3NJRCBNZWRpYVRyYWNrUmVhZGVyOjp3cmFwcGVyQ2xh
c3NJRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFj
dGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3Iu
bW0KaW5kZXggMTdkNzlmMTYxMDU2YTAxMGE0ZWFjNTgyZmQyNzg2OGYzODhhNjIxMS4uMWUzOGRl
NWRiZGE5ZTE1NzEyOGYxZjQwZGFhZDFjNDkxOTBlMzAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3Jk
aW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZp
dGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbQpAQCAtMTAyLDggKzEwMiw2IEBAIEBl
bmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIFJlZjxH
cm91cEFjdGl2aXRpZXNDb29yZGluYXRvcj4gR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6OmNy
ZWF0ZShHcm91cEFjdGl2aXRpZXNTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yKHNlc3Npb24pKTsKQEAgLTE1NCw3
ICsxNTIsNyBAQCB2b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjpsZWF2ZSgpCiAKIHZv
aWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgQ29vcmRp
bmF0b3JDb21wbGV0aW9uSGFuZGxlciYmIGNhbGxiYWNrKQogewotICAgIFttX3BsYXliYWNrQ29v
cmRpbmF0b3IgY29vcmRpbmF0ZVNlZWtUb1RpbWU6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUs
IDEwMDApIG9wdGlvbnM6MF07CisgICAgW21fcGxheWJhY2tDb29yZGluYXRvciBjb29yZGluYXRl
U2Vla1RvVGltZTpQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCAxMDAwKSBvcHRpb25z
OjBdOwogICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7CiB9CiAKQEAgLTIxMSwxMCArMjA5LDEw
IEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6Omlzc3VlUGxheUNvbW1hbmQoQVZE
ZWxlZ2F0aW5nUGxheWJhY2tDb29yZGluYXRvCiAKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4g
aXRlbVRpbWU7CiAgICAgaWYgKENNVElNRV9JU19OVU1FUklDKHBsYXlDb21tYW5kLml0ZW1UaW1l
KSkKLSAgICAgICAgaXRlbVRpbWUgPSBDTVRpbWVHZXRTZWNvbmRzKHBsYXlDb21tYW5kLml0ZW1U
aW1lKTsKKyAgICAgICAgaXRlbVRpbWUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMocGxheUNvbW1h
bmQuaXRlbVRpbWUpOwogICAgIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gaG9zdFRpbWU7
CiAgICAgaWYgKENNVElNRV9JU19OVU1FUklDKHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKQot
ICAgICAgICBob3N0VGltZSA9IE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKENN
Q2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzKHBsYXlDb21tYW5kLmhvc3RDbG9ja1Rp
bWUpKTsKKyAgICAgICAgaG9zdFRpbWUgPSBNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFic29sdXRl
VGltZShQQUw6OkNNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzKHBsYXlDb21tYW5k
Lmhvc3RDbG9ja1RpbWUpKTsKIAogICAgIGNsaWVudCgpLT5wbGF5U2Vzc2lvbihpdGVtVGltZSwg
aG9zdFRpbWUsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgewogICAgICAg
ICBjYWxsYmFjaygpOwpAQCAtMjQ2LDcgKzI0NCw3IEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29v
cmRpbmF0b3I6Omlzc3VlU2Vla0NvbW1hbmQoQVZEZWxlZ2F0aW5nUGxheWJhY2tDb29yZGluYXRv
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjbGllbnQoKS0+c2Vla1Nlc3Npb25Ub1Rp
bWUoQ01UaW1lR2V0U2Vjb25kcyhzZWVrQ29tbWFuZC5pdGVtVGltZSksIFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgbXV0YWJsZSB7CisgICAgY2xpZW50KCktPnNlZWtTZXNz
aW9uVG9UaW1lKFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhzZWVrQ29tbWFuZC5pdGVtVGltZSksIFtj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgbXV0YWJsZSB7CiAgICAgICAgIGNh
bGxiYWNrKCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IDQyNzk2OWMyODIxMThhYzNjM2Q3
NzA4M2VhYjgyZDk1ZmQwYWJlZmYuLjE3MWQ5Y2E0ODQ5MTVkN2FmNGVlYWQ2OTcwOTk5MWU1MDRk
NDI3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNjksNyArMjY5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMoKQogewogICAgIHVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKLSAgICBpZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJs
ZSgpIHx8ICFjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRGZXRjaFNlcnZl
clJlZ2lzdHJhdGlvbnMoKSkKKyAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3
b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29t
cG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVf
UFJJT1JJVFlfREVGQVVMVCwgMCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgp
IG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29j
b2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KaW5kZXggZjM3ODRmYzI3MTJiMGRm
NjM4NzEyMDQ3Y2Q3MmY4NTMwYzc3NzIzNC4uMmE4M2Q5NzEwYmY3MjU1ZTU5Mzg1YzFiMWY2NTkz
NGMyNjMwNTU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29j
b2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCkBAIC00Miw3ICs0Miw2IEBA
IEBlbmQKIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGJvb2wg
dXNhZ2VUcmFja2luZ0F2YWlsYWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggYzMy
M2E2YTc4YjQ1MDA1YjY3NzQwODYyYjYyOWIxNmZiYjgwZjQwYi4uZjg5MWE1MzMxNDUwYmYxN2Vh
Zjk1YjAwZTMxOGRhZTNjNzM4NzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDEs
NyArNDEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA5NWJiZDU0ODNj
ZmVhMTdjOTEyZWQ1YjVmMTNmNDMxZmFlMzcxMjY3Li44YTU5YWUxYTI4ZmE0M2E5YjJmMjE1NzYy
MTE4OWFlOTc2ZDEwMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAt
NDEsNyArNDEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6On5SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNjZhMTllNzNhOWViNTY0ZGNjZTA3NzdkYzMy
MDBlNGMwYmM5M2M2MC4uOGFjYzNkMGE4YWIxY2NkNGIzZmVjYWQ2MGIzYTZiYzNhZTY0MzAyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCkBAIC0xMzkyLDcgKzEzOTIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0Nv
bXBvbmVudFJlZ2lzdHJhdGlvbnMoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYQogewogICAg
IHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKLSAgICBpZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1l
d29ya0F2YWlsYWJsZSgpIHx8ICFjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25l
bnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMoKSkKKyAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xi
b3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hD
b3JlX0F1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGF1dG8gcmVnaXN0cmF0aW9ucyA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkpOwo=
</data>
<flag name="commit-queue"
          id="454063"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432116</attachid>
            <date>2021-06-23 17:11:05 -0700</date>
            <delta_ts>2021-06-23 17:28:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210624101103.patch</filename>
            <type>text/plain</type>
            <size>313402</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxYWM3ZDA0MjEwOWQ2
MDlmMGU3ZTdjN2MyNjQ1MGE1ZWJkYjY0Ni4uNWM5ODEyOTYyMDNmMDdlMGFhMTM2MmY1YjRiYjZm
OTlhNjhmOTQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlIG9m
IEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgVW5pZnkgQXVkaW9Ub29sYm94LCBDb3JlTWVkaWEsIFZpZGVvVG9vbGJveCBhbmQg
TWVkaWFUb29sYm94J3MgbWV0aG9kCisgICAgICAgIGRlZmluaXRpb25zIGFuZCB0aGVpciB1c2Us
IGVuc3VyaW5nIHRoYXQgdGhleSBhcmUgYWx3YXlzIHNvZnQtbGlua2VkLgorICAgICAgICBVbmlm
aWVkIGJ1aWxkcyBhbmQgdGhlIGluY29uc2lzdGVudCB1c2Ugb2YgZXhwbGljaXRseSB1c2luZyB0
aGUgUEFMIG5hbWVzcGFjZQorICAgICAgICBjYXVzZWQgc29tZSBjYWxscyB0byBiZSBhbWJpZ3Vv
dXMgbGVhZGluZyB0byBjb21waWxhdGlvbiBlcnJvcnM7IHNvbWUKKyAgICAgICAgY29kZSB3b3Vs
ZCBhbHNvIHVzZSB0aGUgc29mdGxpbmtlZCBtZXRob2RzIHdoaWxlIG90aGVycyBjYWxsZWQgaW50
byB0aGUgZnJhbWV3b3JrcworICAgICAgICBkaXJlY3RseS4KKyAgICAgICAgVG8gZ2V0IGFyb3Vu
ZCB0aG9zZSB3ZSBlbnN1cmUgdGhhdCBhbnkgY2FsbHMgdG8gQXVkaW9Ub29sYm94IG9yIENvcmVN
ZWRpYSBpcyBhbHdheXMgdXNpbmcKKyAgICAgICAgdGhlIGZ1bGx5IHJlc29sdmVkIFBBTCBuYW1l
LgorICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgYHVzaW5nIG5hbWVzcGFjZSBQQUw7YCBzdGF0
ZW1lbnRzIHdoZXJldmVyIGFwcGxpY2FibGUuCisgICAgICAgIE5vIGNoYW5nZSBpbiBvYnNlcnZh
YmxlIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0ZpbGVSZWFkZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3ApOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW06CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3Vy
ZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9T
YW1wbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnBy
ZXBhcmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
SW1hZ2VHZW5lcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwbGF0Zm9ybU1pblRpbWVTZWVrYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6c3RvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
aXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRD
aGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNlZWtJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRl
c3Ryb3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OnZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJl
Zj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0
ZUltYWdlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6cHJl
c2VudGF0aW9uVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmRlY29kZVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkdXJhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OnNpemVJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpkb2Vz
Q01TYW1wbGVCdWZmZXJIYXZlU3luY0luZm8pOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBs
ZUJ1ZmZlclJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudE5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpD
OjpwcmVzZW50YXRpb25TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6OmlzRGl2aXNhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6aXNIb21vZ2VuZW91cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZl
ckFuZFNldEFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhblNldE1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNr
RGF0YTo6Y29uc3VtZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1l
RnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1
ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQ01Db2xvclByaW1hcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9DTVRy
YW5zZmVyRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01ZQ2JDUk1hdHJp
eCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVj
Q29uZmlndXJhdGlvblJlY29yZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFp
dDxDTVNhbXBsZUJ1ZmZlclJlZj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29t
cHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0VmlkZW9G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1
dG9tYXRpY0RlcXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50YXRpb25UaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RHVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVmZmVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnVwZGF0
ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWth
YmxlUmFuZ2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0
dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dX
YXRlclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm9jZXNzU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29t
cHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNz
ZXRXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjph
cHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXApOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRp
b1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y29tcGxldGVGZXRjaERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpyZXN1bWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZp
bmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZp
ZGVvQ29tcHJlc3Npb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OnZ0UHJvZmlsZUxldmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1w
bGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkxvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZyYW1lRHVyYXRpb25Gb3JGcmFtZVJhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJlc2V0cyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNl
Q2xvY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNl
dHVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNv
bmZpZ3VyZU1pY3JvcGhvbmVQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpD
b3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW06CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbToKKwogMjAyMS0wNi0yMSAgSmVhbi1Z
dmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbWV0
aG9kIGluIEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZGVmZDdiNzZlNzZh
MDA4M2I2ZjhiNTYzNjgyNzBkY2YyMzc5ZGVhNi4uZGJlNjY3YWNjMTBlMmZiZDkyNjQwNzYxNmVl
N2ZmOWQyMDBmN2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEt
MDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBOb3Qg
YWxsIHVzZSBvZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAg
ICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaDogQWRkIG1ldGhvZHMgd2hvc2Ug
ZGVmaW5pdGlvbnMgd2VyZSBzY2F0dGVyZWQgYWNyb3NzCisgICAgICAgIHRoZSBjb2RlLgorICAg
ICAgICAqIHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFs
L2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmg6IFNhbWUgYXMgYWJvdmUuCisgICAgICAgICog
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9U
b29sYm94U29mdExpbmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kcworICAgICAgICAqIHBhbC9jZi9D
b3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg6IEFkZCBtaXNzaW5nIG1ldGhvZHMKKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQg
bWlzc2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAg
ICAgICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBh
bC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIw
MjEtMDYtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0Nv
Y29hXSBNYWtlIHRoZSBob3N0VGltZSBwYXJhbWV0ZXIgdG8gcGxheVNlc3Npb24gYSBNb25vdG9u
aWMgdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA1N2RjYjU2ZmJhODAzZjZmYzEyZDE5NDRhNTBjYjVjY2ZiODFm
NjI0Li41OTc3NDNiNGNjOTAwZGZlYzE0MzE5ZWVlMzhhYjdjNDdiMjg2MTUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMzIEBACisyMDIxLTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBs
ZS5jb20+CisKKyAgICAgICAgTm90IGFsbCB1c2Ugb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1
c2Ugc29mdCBsaW5raW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjcyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NjA2MDkwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpjb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKFdlYktpdDo6d3JhcHBlclN0b3JhZ2Up
OgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyVlRhYmxlKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFGb3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eSk6CisgICAgICAgICogU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZSk6CisgICAg
ICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHA6
CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVy
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVn
aXN0cmF0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VN
YW5hZ2VyQ29jb2EubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVBdWRp
b0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorCiAyMDIxLTA2LTIzICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbaU9TIDE1IFJlZ3Jlc3Npb25dOiBz
Y3JvbGwgcG9zaXRpb24gcmVzZXRzIHdoZW4gdXNpbmcgc2Nyb2xsIHNuYXAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcAppbmRleCA2YTgyM2Q2MWFkMTAxMDMyYmJlMTk0YTYyYjViNjE1NmQyM2NhYjEy
Li4wOWMyZWEzMjljMmMwY2E2ZWU2ZjdiYTNhMmM0NGFkZjgzNDhlNWY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCkBAIC01Myw4ICs1Myw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogI2lmICFVU0UoTElCV0VCUlRDKQogc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxQZWVyQ29ubmVjdGlvbkJhY2tlbmQ+IGNyZWF0ZU5vUGVlckNvbm5lY3Rpb25C
YWNrZW5kKFJUQ1BlZXJDb25uZWN0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRl
eCA0MDBmOWI4ZDE2YjU5M2I0ODVlMDBjN2Y3OGY1OWRlOThkYzM3ZDlmLi43NDk5NGUyYzUxMDBl
Y2FiYTYxNTkwZmIxMTgwYWEwYmMzN2IwZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBA
IC01OCw3ICs1OCw2IEBACiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhWYWx1ZUluQ29u
dGV4dChpZCwgSlNDb250ZXh0ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4
IDViMTM1YjM5YTVhMGExZDgwMWJlNjg3OGZiZGZmNjc2NmMyZThhY2UuLmYxYzJhZjMzYzVmYTJh
YjZmYzUxNjY5OTgzZmE3MGU3Njk2NDAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5j
cHAKQEAgLTM3LDggKzM3LDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCi11c2luZyBuYW1lc3BhY2UgUEFM
OwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIHN0cmVhbURlc2NyaXB0aW9uKHNpemVfdCBzYW1wbGVSYXRlLCBzaXplX3QgY2hh
bm5lbENvdW50KQpAQCAtNzEsNyArNjksNyBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6
OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyYgYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFrZSht
X251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCkpOworICAgIENN
VGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9jdXJy
ZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9N
ZWRpYVRpbWUoc3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJh
bWVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJv
eFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuY3BwCmluZGV4IDY3Yjc4ZjQ2YTc4MTE3ODg4ZjAwZDA4OTdkYmE1N2U3YWM1Mzg1MDIu
LjMzM2FhMjI0YzcxYTc1MGNkOWEwZjY5Zjc4M2RkMDE1OTc1MTBhYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0yNiwy
MCArMjYsNDYgQEAKIAogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxBdWRpb1Rv
b2xib3gvQXVkaW9Db21wb25lbnQuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db252
ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8
QXVkaW9Ub29sYm94L0F1ZGlvRm9ybWF0Lmg+Ci0KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVk
aW9Vbml0Lmg+CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CiAj
aW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgUEFMX0VYUE9SVCkKIAor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHlJbmZvLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVk
aW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
Miogb3V0U2l6ZSwgQm9vbGVhbiogb3V0V3JpdGFibGUpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Q
cm9wZXJ0eUlELCBvdXRTaXplLCBvdXRXcml0YWJsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0
dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZp
ZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNp
emUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6
ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZl
cnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGlu
U291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGlu
YXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNv
dXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVy
dGVyRGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVy
KSwgKGluQXVkaW9Db252ZXJ0ZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVk
aW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Q
cm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5
RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywg
KEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQ
cm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5
RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciwg
T1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIgaW5O
dW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1ZGlv
QnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJlclBD
TUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhC
dWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVk
aW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGlu
SW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1
ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlv
biogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQ
cm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0
T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRpb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RvcCwgT1NTdGF0dXMsIChBdWRpb1Vu
aXQgY2kpLCAoY2kpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2UgaW5JbnN0YW5jZSksIChpbkluc3RhbmNlKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudENvcHlOYW1l
LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBDRlN0cmluZ1JlZiogb3V0
TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9D
b21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmKiBv
dXRCdW5kbGVSZWdpc3RyYXRpb25zKSwgKG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0
aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYgaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgKGluQnVu
ZGxlUmVnaXN0cmF0aW9ucyksIFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRp
b0ZpbGVJRCBpbkF1ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Ms
IE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFk
RnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQ
cm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBB
dWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUp
LCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywg
aW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9z
ZSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRp
b0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gs
IEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4
dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiAq
aW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0Zp
bGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlv
RmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBVSW50
MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSksIChpbkV4dEF1ZGlv
RmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVz
LCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCAqaW5Q
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURh
dGFTaXplLCBpblByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywg
KEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxl
UmVmICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVk
aW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRp
b0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKKwor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29t
cG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25l
bnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChpbkNvbXBvbmVu
dCwgaW5EZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50
IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5jZSksIChpbkNv
bXBvbmVudCwgb3V0SW5zdGFuY2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29w
ZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9E
YXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9E
YXRhU2l6ZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwgKGlu
VW5pdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9V
bml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVt
ZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChp
blVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKIAog
I2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKaW5kZXggNDllMzJlMTc5NDAzNjNiODQ5Nzc0NDM1
YmQyMDk1ZTY0YWI0ODgxYi4uZGRmMTNhMDI3YTQ1YTIyYjgzOThkMTM1ZThlMGIzZGZjNjg1NTJi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0
TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExp
bmsuaApAQCAtMjYsMjcgKzI2LDExNCBAQAogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAorI2lu
Y2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgogCiB0eXBlZGVmIFVJbnQzMiBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQ7CiB0eXBl
ZGVmIFVJbnQzMiBBdWRpb0Zvcm1hdFByb3BlcnR5SUQ7CiB0eXBlZGVmIHN0cnVjdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24gQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uOwogdHlwZWRl
ZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db252ZXJ0ZXIqIEF1ZGlvQ29udmVydGVyUmVmOwordHlwZWRl
ZiBzdHJ1Y3QgQXVkaW9CdWZmZXJMaXN0IEF1ZGlvQnVmZmVyTGlzdDsKK3R5cGVkZWYgT1NTdGF0
dXMgKCpBdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKShBdWRpb0NvbnZlcnRlclJl
ZiBpbkF1ZGlvQ29udmVydGVyLAorICAgIFVJbnQzMiogaW9OdW1iZXJEYXRhUGFja2V0cywKKyAg
ICBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSwKKyAgICBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0
aW9uKiogb3V0RGF0YVBhY2tldERlc2NyaXB0aW9uLAorICAgIHZvaWQqIGluVXNlckRhdGEpOwor
Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqIEV4dEF1ZGlvRmlsZVJlZjsKK3R5
cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvRmlsZUlEKiBBdWRpb0ZpbGVJRDsKK3R5cGVkZWYgVUlu
dDMyIEF1ZGlvRmlsZVR5cGVJRDsKK3R5cGVkZWYgVUludDMyIEV4dEF1ZGlvRmlsZVByb3BlcnR5
SUQ7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1JlYWRQcm9jKSgKKyAgICB2b2lkKiBp
bkNsaWVudERhdGEsCisgICAgU0ludDY0IGluUG9zaXRpb24sCisgICAgVUludDMyIHJlcXVlc3RD
b3VudCwKKyAgICB2b2lkKiBidWZmZXIsCisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7Cit0eXBl
ZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1dyaXRlUHJvYykoCisgICAgdm9pZCogaW5DbGllbnRE
YXRhLAorICAgIFNJbnQ2NCBpblBvc2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQsCisg
ICAgY29uc3Qgdm9pZCogYnVmZmVyLAorICAgIFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlwZWRl
ZiBTSW50NjQgKCpBdWRpb0ZpbGVfR2V0U2l6ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0
YSk7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1NldFNpemVQcm9jKSgKKyAgICB2b2lk
KiBpbkNsaWVudERhdGEsCisgICAgU0ludDY0IGluU2l6ZSk7Cit0eXBlZGVmIHN0cnVjdCBPcGFx
dWVBdWRpb0NvbXBvbmVudCogQXVkaW9Db21wb25lbnQ7CisKKyNpZiBUQVJHRVRfT1NfSVBIT05F
IHx8IChkZWZpbmVkKEFVRElPQ09NUE9ORU5UX05PQ0FSQk9OSU5TVEFOQ0VTKSAmJiBBVURJT0NP
TVBPTkVOVF9OT0NBUkJPTklOU1RBTkNFUykKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29t
cG9uZW50SW5zdGFuY2UqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7CisjZWxzZQordHlwZWRlZiBz
dHJ1Y3QgQ29tcG9uZW50SW5zdGFuY2VSZWNvcmQqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7Cisj
ZW5kaWYKK3R5cGVkZWYgQXVkaW9Db21wb25lbnRJbnN0YW5jZSBBdWRpb1VuaXQ7CisKK3R5cGVk
ZWYgc3RydWN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gQXVkaW9Db21wb25lbnREZXNjcmlw
dGlvbjsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdFByb3BlcnR5SUQ7Cit0eXBlZGVmIFVJbnQz
MiBBdWRpb1VuaXRTY29wZTsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdEVsZW1lbnQ7CiAKIFNP
RlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRfTElO
S19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUpCiAKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5SW5mbywgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVy
dGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIG91dFNp
emUsIEJvb2xlYW4qIG91dFdyaXRhYmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJ
RCwgb3V0U2l6ZSwgb3V0V3JpdGFibGUpKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFByb3Bl
cnR5SW5mbyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUlu
Zm8KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRp
b0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVk
aW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
MiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0Nv
bnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0
YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVy
dGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlv
bkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlck5ldyBz
b2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJOZXcKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2UsIE9T
U3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlvQ29u
dmVydGVyKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9BdWRpb0NvbnZlcnRlckRpc3Bvc2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5LCBPU1N0YXR1cywg
KEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQq
IGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW5Qcm9w
ZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyU2V0
UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Zv
cm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9ybWF0UHJvcGVydHlJRCBpblByb3Bl
cnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0IHZvaWQqIGluU3BlY2lmaWVyLCBV
SW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluUHJv
cGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmllciwgaW9Qcm9wZXJ0eURhdGFTaXpl
LCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5IHNvZnRM
aW5rX0F1ZGlvVG9vbGJveF9BdWRpb0Zvcm1hdEdldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29t
cGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVy
LCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1
dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVy
LCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorI2RlZmlu
ZSBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1
ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRp
b0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywgdm9pZCogaW5J
bnB1dERhdGFQcm9jVXNlckRhdGEsIFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgQXVk
aW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9u
KiBvdXRQYWNrZXREZXNjcmlwdGlvbiksIChpbkF1ZGlvQ29udmVydGVyLCBpbklucHV0RGF0YVBy
b2MsIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRTaXplLCBvdXRP
dXRwdXREYXRhLCBvdXRQYWNrZXREZXNjcmlwdGlvbikpCisjZGVmaW5lIEF1ZGlvQ29udmVydGVy
RmlsbENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyRmls
bENvbXBsZXhCdWZmZXIKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAo
Y2kpKQorI2RlZmluZSBBdWRpb091dHB1dFVuaXRTdGFydCBzb2Z0TGlua19BdWRpb1Rvb2xib3hf
QXVkaW9PdXRwdXRVbml0U3RhcnQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBj
aSksIChjaSkpCisjZGVmaW5lIEF1ZGlvT3V0cHV0VW5pdFN0b3Agc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvT3V0cHV0VW5pdFN0b3AKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSwgT1NTdGF0dXMs
IChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAoaW5JbnN0YW5jZSkpCisjZGVm
aW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9B
dWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUsIE9TU3RhdHVzLCAo
QXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXROYW1lKSwgKGluQ29t
cG9uZW50LCBvdXROYW1lKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRDb3B5TmFtZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRDb3B5TmFtZQorCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9u
ZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0QnVu
ZGxlUmVnaXN0cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSkKICNkZWZpbmUgQXVk
aW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExpbmtBdWRpb1Rvb2xib3hD
b3JlQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMKIFNPRlRfTElOS19GVU5D
VElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21w
b25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGluQnVu
ZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2RlZmluZSBBdWRp
b0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlvVG9vbGJveENv
cmVBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucwogCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3Rh
dHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQorI2RlZmluZSBB
dWRpb0ZpbGVDbG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxlQ2xvc2UKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVPcGVu
V2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkKiBpbkNsaWVudERhdGEsIEF1ZGlvRmlsZV9S
ZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBBdWRp
b0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9jIGlu
U2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxlSUQq
IG91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5jLCBp
bkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9GaWxl
KSkKKyNkZWZpbmUgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9zZSwgT1NTdGF0dXMsIChF
eHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRpb0ZpbGUpKQorI2RlZmlu
ZSBFeHRBdWRpb0ZpbGVEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVE
aXNwb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
RXh0QXVkaW9GaWxlR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0
QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBp
b1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmls
ZSwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCisj
ZGVmaW5lIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRB
dWRpb0ZpbGVHZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVm
IGluRXh0QXVkaW9GaWxlLCBVSW50MzIqIGlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3Qq
IGlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCisjZGVm
aW5lIEV4dEF1ZGlvRmlsZVJlYWQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZVJl
YWQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRB
dWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRp
b0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9w
ZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmls
ZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKKyNk
ZWZpbmUgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1
ZGlvRmlsZVNldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywgKEF1ZGlv
RmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxlUmVmKiBv
dXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVkaW9GaWxl
KSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9FeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywg
KENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVS
TCwgb3V0RXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlT3BlblVSTCBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlT3BlblVSTAorCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4dCwgQXVk
aW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVkaW9Db21w
b25lbnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQorI2RlZmlu
ZSBBdWRpb0NvbXBvbmVudEZpbmROZXh0IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbXBv
bmVudEZpbmROZXh0CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVu
dCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5D
b21wb25lbnQsIG91dEluc3RhbmNlKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldworU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQg
aW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQs
IHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2Nv
cGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5pdEdl
dFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRHZXRQcm9wZXJ0eQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdElu
aXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorI2RlZmlu
ZSBBdWRpb1VuaXRJbml0aWFsaXplIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRJbml0
aWFsaXplCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9V
bml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVt
ZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChp
blVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKKyNk
ZWZpbmUgQXVkaW9Vbml0U2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5p
dFNldFByb3BlcnR5CisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAppbmRleCBjMTQzOTJiYTJj
OTE0MmQ1MWI0NzRlN2QyNDQ4MGI5NzE5ZjhhNGM2Li5kZjk4N2NmNzgwZjlkNDllOGQ1MGUxYWVh
M2Y2YTlkY2IwZGE0MDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNQnVm
ZmVyUXVldWUuaD4KICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAjZW5kaWYKIApA
QCAtNDcsNiArNDgsOCBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0
ZXMsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVTb3VyY2VCdWZmZXIsIHNpemVfdCBv
ZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCB2b2lkKiBkZXN0aW5hdGlvbiksICh0aGVT
b3VyY2VCdWZmZXIsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZGVzdGluYXRpb24pLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBD
TUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3Rp
bmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25CdWZm
ZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCksIFBBTF9FWFBPUlQpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
bG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYg
dGhlQnVmZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERh
dGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyLCBzaXplX3Qg
b2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXplX3QqIHRvdGFsTGVuZ3RoT3V0
LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBvZmZzZXQsIGxlbmd0aEF0T2Zm
c2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
Rm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZvcm1h
dERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJHZXRUeXBlSUQsIENGVHlwZUlELCAodm9pZCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCkBAIC0xMDQsOSArMTA3LDkgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0
RGVzY3JpcHRpb25HZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRl
ciwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01O
b3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNl
bnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxi
YWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVj
dCwgVUludDMyIGZsYWdzKSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRp
b24sIG9iamVjdCwgZmxhZ3MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVt
b3ZlTGlzdGVuZXIsIE9TU3RhdHVzLCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBj
b25zdCB2b2lkKiBsaXN0ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZT
dHJpbmdSZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBsaXN0
ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0KSwgUEFMX0VYUE9SVCkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENN
QmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVm
ZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFr
ZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50
cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVt
Q291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5
LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRh
dGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3Jt
YXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxl
VGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZP
dXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxl
QnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwg
UEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2lu
YWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNv
cHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2Nr
QnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1h
a2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRh
UmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENN
SXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50
IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01T
YW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVh
ZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVz
Y3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWlu
Z0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSwg
UEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZl
clJlZiogc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1
ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1p
bmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZDb3B5T3V0
KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1w
bGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2Ft
cGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdl
QnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9v
bGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0lu
Zm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChh
bGxvY2F0b3IsIGltYWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywg
bWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2Ft
cGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVT
dGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9S
VCkKQEAgLTExNiwxNCArMTE5LDE0IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFByZXNlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbiwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRh
dGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXksIENG
QXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVjZXNz
YXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5m
byAqdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRP
dXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJy
YXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0
ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nQXJy
YXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1Ziwg
dGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVl
ZGVkT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGlt
ZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9k
KSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziks
IChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXIsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01CbG9ja0J1ZmZlclJlZiBidWZmZXIpLCAo
c2J1ZiwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUdldEF0dGFjaG1lbnQsIENGVHlwZVJlZiwg
KENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ01BdHRhY2ht
ZW50TW9kZSogYXR0YWNobWVudE1vZGVPdXQpLCAodGFyZ2V0LCBrZXksIGF0dGFjaG1lbnRNb2Rl
T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRC
ZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENGVHlwZVJlZiB2YWx1ZSwgQ01BdHRh
Y2htZW50TW9kZSBhdHRhY2htZW50TW9kZSksICh0YXJnZXQsIGtleSwgdmFsdWUsIGF0dGFjaG1l
bnRNb2RlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFj
aG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFyZ2V0LCBrZXkpLCBQ
QUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWVi
YXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91
dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENN
VGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWVi
YXNlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1l
YmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdl
dFJhdGUsIEZsb2F0NjQsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWViYXNlU2V0UmF0ZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRp
bWViYXNlLCBGbG9hdDY0IHJhdGUpLCAodGltZWJhc2UsIHJhdGUpLCBQQUxfRVhQT1JUKQpAQCAt
MTQ0LDExICsxNDcsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVEZXF1ZXVlQW4KIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVl
RW5xdWV1ZSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclJlZiBi
dWZmZXIpLCAocXVldWUsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUlzRW1w
dHksIEJvb2xlYW4sIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlbUNvdW50LCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3Mg
KiwgKCksICgpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNv
cnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiwgKCksICgpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01U
aW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3Rh
bGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVl
dWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRy
aWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRyaWdn
ZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBjb25k
aXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2FsbGJh
Y2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIHRy
aWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVyUXVl
dWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxiYWNr
LCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0cmln
Z2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhLCBP
U1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQnVmZmVyUXVldWVHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1
ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90
RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtl
eV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE2OCw0MCArMTczLDQyIEBA
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZl
Y3RpdmVSYXRlQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VO
b3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
YyksIChkZXNjKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qLCAo
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1lbW9yeUJsb2NrLCBzaXplX3QgYmxvY2tM
ZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2NhdG9yLCBjb25zdCBDTUJsb2NrQnVmZmVy
Q3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291cmNlLCBzaXplX3Qgb2Zmc2V0VG9EYXRh
LCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZlckZsYWdzIGZsYWdzLCBDTUJsb2NrQnVm
ZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1cmVBbGxvY2F0b3IsIG1lbW9yeUJsb2Nr
LCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1c3RvbUJsb2NrU291cmNlLCBvZmZzZXRU
b0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXpl
TmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJM
aXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYg
KmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJM
aXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQs
IEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBD
RkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVt
b3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZm
ZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1
ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBm
bGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0TnVt
U2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
Q0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2Nh
dG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQsIENN
SXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJheUVu
dHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBP
UlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNh
bGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRp
b24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFr
ZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMs
IHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9j
YXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9C
dWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZN
ZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1l
IHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2Ny
aXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVm
ZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNv
biwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0
aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNl
bnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFj
a2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNl
bnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpLCBQ
QUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVy
TGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBi
YnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1
aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0KSwgKHNidWYs
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJM
aXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRp
bWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVRpbWUgb3V0cHV0
UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNidWYsIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFt
cCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01C
bG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERl
c2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5
LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVT
aXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9y
LCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGlt
aW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1w
bGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6
ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNp
emUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywg
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwg
bGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNp
b25zLCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRN
YWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
Yywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlv
Rm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRl
c2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNv
ZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0qLCAoQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RU
aW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dl
dFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzLCB1aW50NjRfdCwgKENNVGltZSBo
b3N0VGltZSksIChob3N0VGltZSksIFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxG
b3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVz
ICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoIENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQg
KnJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJS
ZWYgc2J1ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIp
KENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlciksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQ
RSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBp
bmRleCwgdm9pZCogcmVmY29uKSwgdm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZj
b24pLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNNU0FNUExFQlVG
RkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQp
KSwgKHNidWYsIGhhbmRsZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdS
ZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX3NSR0IsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9ja091
dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9j
a091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVt
LCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1l
IHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250YWlu
c1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFuZ2Us
IHRpbWUpLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSwgUEFMX0VY
UE9SVCkKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaWYgUExBVEZPUk0oTUFD
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAo
YWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2
aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0
cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2
aWNlVUlELCBjbG9ja091dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0
b3JhZ2UsIHZvaWQqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUq
LCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCksIFBBTF9FWFBPUlQp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgY29uc3QgQ01CYXNlVlRhYmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwg
Q01CYXNlT2JqZWN0UmVmKiBiYXNlT2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFzc0lE
LCBiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaAppbmRleCA3NTI1YjkxOWM2OTVkMzYwOTdiMTExMDMyYjk0Zjc0
N2YxNTFmMWYwLi45OGNjYjc5YWE0ZDkzZTU4M2ZlNTYzNTdhNjE5Y2I4MTdiZTBjYzY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC01MSw2
ICs1MSwxMCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdAogI2RlZmluZSBDTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFMZW5n
dGgKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2Nr
QnVmZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VCeXRl
cywgQ01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldEludG9E
ZXN0aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0aW9u
QnVmZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpKQogI2RlZmluZSBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZl
clJlcGxhY2VEYXRhQnl0ZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9j
a0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSkKKyNkZWZpbmUgQ01CbG9ja0J1ZmZl
ckFzc3VyZUJsb2NrTWVtb3J5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQXNzdXJl
QmxvY2tNZW1vcnkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJl
ZiB0aGVCdWZmZXIsIHNpemVfdCBvZmZzZXQsIHNpemVfdCogbGVuZ3RoQXRPZmZzZXRPdXQsIHNp
emVfdCogdG90YWxMZW5ndGhPdXQsIGNoYXIqKiBkYXRhUG9pbnRlck91dCksICh0aGVCdWZmZXIs
IG9mZnNldCwgbGVuZ3RoQXRPZmZzZXRPdXQsIHRvdGFsTGVuZ3RoT3V0LCBkYXRhUG9pbnRlck91
dCkpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBzb2Z0TGlua19Db3JlTWVk
aWFfQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMsIENG
RGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNk
ZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMgc29mdExpbmtfQ29yZU1lZGlh
X0NNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlE
LCAodm9pZCksICgpKQpAQCAtNjMsNiArNjcsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLAog
I2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8gc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbwogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHksIEJv
b2xlYW4sIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckRhdGFJc1JlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckRhdGFJ
c1JlYWR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBm
b3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVt
U2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1p
bmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCog
c2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNh
bXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmll
cywgc2FtcGxlU2l6ZUFycmF5LCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1l
Q29udmVydFNjYWxlLCBDTVRpbWUsIChDTVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2NhbGUs
IENNVGltZVJvdW5kaW5nTWV0aG9kIG1ldGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1ldGhv
ZCkpCiAjZGVmaW5lIENNVGltZUNvbnZlcnRTY2FsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
Q29udmVydFNjYWxlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01UaW1lQWRkLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1l
MSwgdGltZTIpKQpAQCAtODcsMjkgKzkzLDI5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUVxdWFsLCBCb29sZWFuLCAoQ01UaW1lCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcywgQ0ZTdHJp
bmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2Ny
aXB0aW9uRXh0ZW5zaW9uQXRvbXMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zKCkKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0
aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzIGdl
dF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
Q29sb3JQcmltYXJpZXNfRENJX1AzKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIw
MjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9r
Q01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1
LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NN
Rm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX1AzX0Q2NSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
UDNfRDY1IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19Q
M19ENjUoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvLCBDRlN0cmluZ1JlZikK
LSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRl
bygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVv
IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlk
ZW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikK
LSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRV
X1JfMjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9J
VFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hM
RywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKKyNkZWZpbmUga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIoKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4
NF9QUSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBU
RV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBU
RV9TVF80MjhfMSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80Mjhf
MSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgpCisjZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29yZU1l
ZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0
RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUg
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1h
dHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKKyNkZWZpbmUg
a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFf
a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19D
T05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3RyaW5n
UmVmKQogI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250
ZW50T3JpZ2luYWxGb3JtYXQgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQoKQogU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9zUkdCLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NS
R0IgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpCisjZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCwgQ0ZTdHJp
bmdSZWYpCiAjZGVmaW5lIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCBnZXRfQ29yZU1l
ZGlhX2tDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfTWlk
ZGxlLCBDRlN0cmluZ1JlZikKQEAgLTE1MSw3ICsxNTcsNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9M
ZWZ0LAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRp
bWVJbnZhbGlkLCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVJbnZhbGlkIGdldF9Db3JlTWVkaWFf
a0NNVGltZUludmFsaWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVaZXJvIFBBTDo6Z2V0
X0NvcmVNZWRpYV9rQ01UaW1lWmVybygpCisjZGVmaW5lIGtDTVRpbWVaZXJvIGdldF9Db3JlTWVk
aWFfa0NNVGltZVplcm8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5LCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVQ
b3NpdGl2ZUluZmluaXR5IGdldF9Db3JlTWVkaWFfa0NNVGltZVBvc2l0aXZlSW5maW5pdHkoKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5n
ZUludmFsaWQsIENNVGltZVJhbmdlKTsKQEAgLTE2OSwxMyArMTc1LDEzIEBAIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckFk
ZExpc3RlbmVyLCBPCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIgc29m
dExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRl
clJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRl
ciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ss
IENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0KSwgKGNlbnRlciwg
bGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCkpCiAjZGVmaW5lIENNTm90
aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZp
Y2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBk
YXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVh
ZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291
bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1w
bGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNp
emVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxv
Y2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtl
RGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBz
YW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRh
dGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFk
eUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBs
ZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6
ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9j
YXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VE
YXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNh
bXBsZVNpemVBcnJheSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZD
b3B5T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2J1ZkNvcHlP
dXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1p
bmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3Jp
Z2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1
ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRl
bUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyog
c2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChhbGxv
Y2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5n
QXJyYXksIHNCdWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0
aE5ld1RpbWluZyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0
aE5ld1RpbWluZwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxl
VGltaW5nSW5mbyAqc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChh
bGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBz
QnVmT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRp
bWluZ0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc0J1
Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZm
ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHks
IENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFj
aywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWlu
ZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGltYWdl
QnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJl
ZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2FtcGxlQnVmZmVyT3V0KSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlcgpAQCAtMTkzLDcgKzE5OSw3
IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0T3V0
cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
ckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3JlYXRl
SWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZOZWNlc3NhcnkpKQogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRp
bWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwgQ01J
dGVtQ291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJh
eUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZv
KiB0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91
dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJh
eUVudHJpZXNOZWVkZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvQXJyYXkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBs
ZVNpemUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXpl
CkBAIC0yMDUsNyArMjExLDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWUKICNkZWZpbmUgQ01T
ZXRBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNldEF0dGFjaG1lbnQKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQs
IHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAo
dGFyZ2V0LCBrZXkpKQogI2RlZmluZSBDTVJlbW92ZUF0dGFjaG1lbnQgc29mdExpbmtfQ29yZU1l
ZGlhX0NNUmVtb3ZlQXR0YWNobWVudAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWVi
YXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91
dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1l
YmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0
KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKICNkZWZpbmUgQ01UaW1l
YmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUNy
ZWF0ZVdpdGhNYXN0ZXJDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWVi
YXNlKSwgKHRpbWViYXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdldFRpbWUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNVGltZWJhc2VHZXRUaW1lCkBAIC0yMjcsNyArMjMzLDcgQEAgU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lckRpc3Bh
dGNoU291cmNlVG8KICNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0Zp
cmVJbW1lZGlhdGVseSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0
Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZUNvcHlBc0RpY3Rpb25hcnksIENGRGljdGlvbmFyeVJlZiwg
KENNVGltZSB0aW1lLCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAodGltZSwgYWxsb2NhdG9y
KSkKICNkZWZpbmUgQ01UaW1lQ29weUFzRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01U
aW1lQ29weUFzRGljdGlvbmFyeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFn
ZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmICpvdXREZXNjKSwgKGFsbG9jYXRv
ciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJl
ZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFs
bG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1l
bnNpb25zLCBDTVZpZGVvRGltZW5zaW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2
aWRlb0Rlc2MpLCAodmlkZW9EZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
R2V0RGltZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
R2V0RGltZW5zaW9ucwpAQCAtMjQ5LDE1ICsyNTUsMTggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwgQ01J
dGUKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50IHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1l
U3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmlu
ZSBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29y
ZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcAotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRD
YWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tz
ICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25z
dCBDTUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZm
ZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycwogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQcmVz
ZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVl
dWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1w
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENN
QnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZm
ZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJR
dWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVm
Y29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCkpCisjZGVmaW5lIENNQnVmZmVy
UXVldWVJbnN0YWxsVHJpZ2dlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUluc3Rh
bGxUcmlnZ2VyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVz
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0
cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQs
IENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJp
Z2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhy
ZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRy
aWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwgT1NT
dGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZm
ZXJRdWV1ZU1hcmtFbmRPZkRhdGEgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVNYXJr
RW5kT2ZEYXRhCi0KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVl
dWUpLCAocXVldWUpKQorI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24gc29mdExpbmtf
Q29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXREdXJhdGlvbgogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNw
bGF5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERp
c3BsYXkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZikKQEAgLTI5NSw0NiArMzA0LDQ4IEBA
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29yZU1l
ZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZSwg
Y29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6ZV90KiBz
aXplT3V0KSwgKGRlc2MsIHNpemVPdXQpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRNYWdpY0Nvb2tpZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uR2V0TWFnaWNDb29raWUKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVz
Y3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFfQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbgogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDcmVhdGVX
aXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0dXJlQWxsb2Nh
dG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFsbG9jYXRvclJl
ZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNlKiBj
dXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgs
IENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJP
dXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5ndGgsIGJsb2Nr
QWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBm
bGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2RlZmluZSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1l
bW9yeUJsb2NrIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NT
dGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXplTmVl
ZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0
U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYg
YmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYgKmJs
b2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0
T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9j
YXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhS
ZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNp
emVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlz
dE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxs
b2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFn
cywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNp
emVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxs
b2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2Rl
ZmluZSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVm
ZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdp
dGhSZXRhaW5lZEJsb2NrQnVmZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0ZW1Db3VudCwgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0
TnVtU2FtcGxlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVz
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3Jt
YXRMaXN0SXRlbSAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3Jt
YXRMaXN0SXRlbSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkK
ICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1h
dCBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERl
Y29kYWJsZUZvcm1hdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBz
YW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBzYnVm
LCBzYW1wbGVSYW5nZSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ29weVNhbXBs
ZUJ1ZmZlckZvclJhbmdlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNvcHlTYW1w
bGVCdWZmZXJGb3JSYW5nZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVfdCog
c2l6ZUFycmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIChz
YnVmLCBzaXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNOZWVk
ZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkKIAotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwg
Q01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNr
LCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywgY29u
c3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25zLCBDTVNh
bXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFk
eSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNj
cmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVmT3V0
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1l
IHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2Ny
aXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVm
ZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNv
biwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0
aW9ucywgc0J1Zk91dCkpCiAjZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFj
a2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZl
ckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYg
YmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwg
dWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVm
LCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVy
TGlzdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZl
ciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJl
YW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJl
Ziogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3Jp
cHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRp
b25zLCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVm
ZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVm
TWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBi
dWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0
b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVm
ZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJT
ZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBPU1N0YXR1
cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVm
ZmVyU2V0RGF0YVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERhdGFS
ZWFkeQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCAo
c2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSkKKyNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNU2Ft
cGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9D
aGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQq
IG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5
b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNjKSkK
ICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01DbG9ja1Jl
ZiwgKHZvaWQpLCAoKSkKLSNkZWZpbmUgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sgIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jaworI2RlZmluZSBDTUNsb2NrR2V0SG9z
dFRpbWVDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0VGlt
ZSwgQ01UaW1lLCAoQ01DbG9ja1JlZiBjbG9jayksIChjbG9jaykpCi0jZGVmaW5lIENNQ2xvY2tH
ZXRUaW1lICBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldFRpbWUKKyNkZWZpbmUgQ01DbG9j
a0dldFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRv
U3lzdGVtVW5pdHMsIHVpbnQ2NF90LCAoQ01UaW1lIGhvc3RUaW1lKSwgKGhvc3RUaW1lKSkKICNk
ZWZpbmUgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzCiAKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNo
U2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqIENN
U0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVmY29u
KSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNB
TExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01J
dGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxs
YmFjaywgcmVmY29uKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2Fs
bEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBP
U1N0YXR1cyAoXiBDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVC
dWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0Zv
ckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMg
KF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYs
IENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJD
YWxsQmxvY2tGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNh
bGxCbG9ja0ZvckVhY2hTYW1wbGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9D
bG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tS
ZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpKQogI2RlZmluZSBDTUF1ZGlvQ2xv
Y2tDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9DbG9ja0NyZWF0ZQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGlt
ZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiAjZGVmaW5l
IENNVGltZU1heGltdW0gc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1heGltdW0KQEAgLTM0Niwx
OCArMzU3LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogI2Rl
ZmluZSBrQ01UaW1lSW5kZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRlKCkK
IAotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KICNpZiBQTEFURk9STShNQUMpCiAK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2
aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0
cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2
aWNlVUlELCBjbG9ja091dCkpCi0jZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSAgc29m
dExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJ
RCwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0
KSkKKyNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCosIChDTUJh
c2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkKLSNkZWZpbmUgQ01CYXNlT2Jq
ZWN0R2V0RGVyaXZlZFN0b3JhZ2UgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0
R2V0RGVyaXZlZFN0b3JhZ2UKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Ug
c29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRh
YmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAo
YmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9iamVjdEdldFZUYWJsZSBQQUw6OnNvZnRMaW5r
X0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0
VlRhYmxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRPYmplY3RDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFi
bGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIGJhc2VP
YmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3QpKQotI2RlZmlu
ZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVk
T2JqZWN0Q3JlYXRlCisjZGVmaW5lIENNRGVyaXZlZE9iamVjdENyZWF0ZSBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExp
bmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5j
cHAKaW5kZXggZjUxY2JiYjE2NjYzYjgxZWNlMjAxZThhZDU3MjVjMjUxMjFmNTZmYi4uNzJmNDEx
NGVlYWFkZjYyMGNlMzcwMjMwOTk0NzY2YjQ4Yzc5NWIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTM0LDEzICszNCwx
OSBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBWaWRl
b1Rvb2xib3gsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUws
IFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0
ZSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVv
VG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVy
YXRpb24sIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBW
aWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5n
UmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsIENGU3RyaW5nUmVmKQorU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKIAogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVvRW5jb2RlclNwZWNp
ZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgQ0ZTdHJpbmdS
ZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZU
UHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKK1NPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2
ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9B
dXRvTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwg
Q01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lm
aWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZB
bGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRD
YWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29t
cHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3
aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFn
ZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFj
aywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNl
c3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBz
ZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzZXNz
aW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkVu
Y29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENW
SW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAs
IENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGllcywgdm9pZCog
c291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAoc2Vz
c2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24sIGZyYW1l
UHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24sIGluZm9GbGFnc091dCkpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Np
b25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25S
ZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUsIHZvaWQsIChW
VENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogCiBTT0ZUX0xJTktf
RlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJv
eCwgVlRSZXN0cmljdFZpZGVvRGVjb2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0
cmljdGlvbnMgcmVzdHJpY3Rpb25GbGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dl
ZENvZGVjVHlwZUxpc3QsIENNSXRlbUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0
cmljdGlvbkZsYWdzLCBhbGxvd2VkQ29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50
KSwgUEFMX0VYUE9SVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9W
aWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rv
b2xib3hTb2Z0TGluay5oCmluZGV4IGVjMGZmMDFjYzFmZTFhMjEwNmNjN2E3ZjAyZThjODRiN2Rk
MGRhODQuLjYwYThmZjM3NDJkNDk2MTA3YjE0ZmFjN2M0MTM3M2FiYzZkNjk0YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTM3
LDkgKzM3LDIwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29s
Ym94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtlCiAjZGVmaW5lIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uIGdldF9WaWRlb1Rvb2xi
b3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24o
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQogI2RlZmluZSBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0
UmF0ZSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZl
cmFnZUJpdFJhdGUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2
ZXJhZ2VCaXRSYXRlKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJpbmdS
ZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsIGdldF9W
aWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwoKQogCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9F
bmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVy
LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlk
ZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNv
ZGVyKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorI2Rl
ZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9v
bGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwoKQorU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9I
MjY0X0hpZ2hfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxldmVs
X0gyNjRfSGlnaF9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2
NF9IaWdoX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZp
ZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3RyaW5n
UmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCBnZXRfVmlk
ZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsKCkKKwogCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQz
Ml90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENG
RGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJj
ZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxv
Y2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCog
b3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lv
blNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29k
ZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWRE
YXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXBy
ZXNzaW9uU2Vzc2lvbk91dCkpCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlIHNv
ZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZQpAQCAtNDksNiAr
NjAsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwg
VlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZQogI2RlZmluZSBWVENvbXByZXNzaW9uU2Vz
c2lvbkVuY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lv
bkVuY29kZUZyYW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9v
bGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVz
LCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKICNkZWZpbmUg
VlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgc29mdExpbmtfVmlkZW9U
b29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNl
c3Npb25JbnZhbGlkYXRlLCB2b2lkLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiks
IChzZXNzaW9uKSkKKyNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlIHNvZnRM
aW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUKIAogU09GVF9M
SU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUUmVz
dHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlkZW9EZWNvZGVyUmVzdHJpY3Rpb25z
IHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2RlY1R5cGUqIGFsbG93ZWRDb2RlY1R5
cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCAocmVzdHJpY3Rpb25G
bGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRDb2RlY1R5cGVDb3VudCkpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGlu
ay5jcHAKaW5kZXggNjc0ZTY0OTRhMGE4YjU5NjkwM2UzY2E1Y2ZiNmEyM2RkYWMzNjM4Yy4uZDQ0
NDkzMWVmZDhhZTU1NjBiOGMxYjI3ZjIyYWQ5MmU3OTM0ODVlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKQEAgLTQx
LDYgKzQxLDEwIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91CiAKIFNPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBrTVRT
dXBwb3J0Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQsIENGU3RyaW5nUmVm
LCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlh
VG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Q
cm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8s
IE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1i
ZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01JdGVt
Q291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZyYW1lcywgYnVmZmVyTGlzdElu
T3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xi
b3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNr
cywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcFJlZiogdGFwT3V0KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0
KSwgUEFMX0VYUE9SVCkKKwogI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCiAKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94
LCBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYsIFBB
TF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlh
VG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9v
bGJveFNvZnRMaW5rLmgKaW5kZXggYzdkZTAyY2U2M2MyYzMwMGQ5NjU0ZjY2NzBiZmMxMjUwMjI5
MzQ0ZS4uMjU1YTc2N2I1NWVlZjRlOGVlZDE5ZGVmMjk3MTc4NDkwYmU5M2YxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaApA
QCAtNDEsNiArNDEsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIo
UEFMLCBNZWRpYVRvb2xib3gsIE1UX0dldFNob3VsZFBsYXlIRFJWaWQKIAogU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnRO
b3RpZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYpCiAKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFw
KSwgKHRhcCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSBzb2Z0TGlu
a19NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAs
IENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5P
dXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGlt
ZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJh
bWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1l
c091dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8gc29mdExp
bmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8KK1NPRlRf
TElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzKiBjYWxsYmFja3MsIE1UQXVk
aW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91dCkpCisjZGVm
aW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlIHNvZnRMaW5rX01lZGlhVG9vbGJveF9NVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZQorCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURF
UikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtN
VFBsdWdpbkZvcm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDU1MjRlZWM1NTg3ZDFlOTE3MGVmOWYxNDkyY2MwN2RlMjVj
ODBlYzcuLmM1NjJiZTc2MzVlYTZhMTU4NDA4MzNhYmMyZTE5MTAxMGNjMzE3NmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMzUwLDcgKzM1MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEb2N1bWVudCk7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdURjo6
VW5pY29kZTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRlcHRo
ID0gMjE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDlm
NTU2MDgwMmJhYzMyYmI0OTllYzk3YzliMGFlMzJlMTFjNjIxYzcuLjg1MGNkZTcyNzBmMGQ2MWRj
MjU0NDljMWRhODlhNDlhMWFmNDM2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTENhbnZhc0VsZW1lbnQpOwogCi11c2luZyBu
YW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogLy8gVGhlc2UgdmFs
dWVzIGNvbWUgZnJvbSB0aGUgV2hhdFdHL1czQyBIVE1MIHNwZWMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlMDUxNmE0YWYyNWQyYjVhNGQ0OTRjZTQzNTA5
Njg0MTQxYjY3ZDllLi42YWMyZGZiOWRkNjRmMGYzZmMwZDBlZjVmYzUxMTU5MWQyNWYwYmFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE5MCw4ICsxOTAs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChI
VE1MTWVkaWFFbGVtZW50KTsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIGNvbnN0
IFNlY29uZHMgU2Vla1JlcGVhdERlbGF5IHsgMTAwX21zIH07CiBzdGF0aWMgY29uc3QgZG91Ymxl
IFNlZWtUaW1lID0gMC4yOwogc3RhdGljIGNvbnN0IFNlY29uZHMgU2NhblJlcGVhdERlbGF5IHsg
MS41X3MgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcAppbmRleCBmZDNkM2UwM2EwM2YwODEwNTIx
Mjg2YmQwMjZhOTEwMTExZDNjYzg0Li41ZDU2YjllZTFhMGQzZDY3YTc5YzMwNzYxZDEzODE1ZDdj
MDY0NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCkBAIC0zNiwyNSArMzYsMTMgQEAKICNp
bmNsdWRlICJBdWRpb0ZpbGVSZWFkZXIuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVk
aW9GaWxlLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNp
bmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW5jbHVkZSA8
d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29sYm94KQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9G
aWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJv
eCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnRE
YXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBp
bldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmls
ZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhp
bnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5j
LCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhp
bnQsIG91dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVE
aXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4
dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9w
ZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlv
RmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwg
dm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlv
UHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xi
b3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVk
aW9GaWxlLCBVSW50MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSks
IChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCi1TT0ZUX0xJTksoQXVk
aW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0Zp
bGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlE
LCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0YSks
IChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJv
cGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRp
b0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldy
aXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZv
cldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRB
dWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVS
ZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gQXVkaW9C
dWZmZXJMaXN0KiB0cnlDcmVhdGVBdWRpb0J1ZmZlckxpc3Qoc2l6ZV90IG51bWJlck9mQnVmZmVy
cykKQEAgLTEwMywyMiArOTEsMjIgQEAgQXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIo
Y29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQogICAgIDogbV9kYXRhKGRhdGEpCiAg
ICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewotICAgIGlmIChBdWRpb0ZpbGVPcGVuV2l0aENh
bGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmls
ZUlEKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyh0
aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmlsZUlEKSAhPSBu
b0VycikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0Zp
bGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0QXVkaW9GaWxlUmVmKSAhPSBub0VycikK
KyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQobV9hdWRpb0ZpbGVJRCwg
ZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIpCiAgICAgICAgIG1fZXh0QXVkaW9G
aWxlUmVmID0gMDsKIH0KIAogQXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKCkKIHsK
ICAgICBpZiAobV9leHRBdWRpb0ZpbGVSZWYpCi0gICAgICAgIEV4dEF1ZGlvRmlsZURpc3Bvc2Uo
bV9leHRBdWRpb0ZpbGVSZWYpOworICAgICAgICBQQUw6OkV4dEF1ZGlvRmlsZURpc3Bvc2UobV9l
eHRBdWRpb0ZpbGVSZWYpOwogCiAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwogCiAgICAgaWYg
KG1fYXVkaW9GaWxlSUQpCi0gICAgICAgIEF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwor
ICAgICAgICBQQUw6OkF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwogCiAgICAgbV9hdWRp
b0ZpbGVJRCA9IDA7CiB9CkBAIC0xNTUsNyArMTQzLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRp
b0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykK
IAogICAgIC8vIEdldCBmaWxlJ3MgZGF0YSBmb3JtYXQKICAgICBVSW50MzIgc2l6ZSA9IHNpemVv
ZihtX2ZpbGVEYXRhRm9ybWF0KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9l
eHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlRGF0YUZvcm1hdCwgJnNp
emUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0Zp
bGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0Zp
bGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzID0gbV9maWxl
RGF0YUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKQEAgLTE2Myw3ICsxNTEsNyBAQCBSZWZQdHI8
QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJv
b2wgbWl4VG9Nb25vKQogICAgIC8vIE51bWJlciBvZiBmcmFtZXMKICAgICBTSW50NjQgbnVtYmVy
T2ZGcmFtZXM2NCA9IDA7CiAgICAgc2l6ZSA9IHNpemVvZihudW1iZXJPZkZyYW1lczY0KTsKLSAg
ICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRp
b0ZpbGVQcm9wZXJ0eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVzNjQp
ICE9IG5vRXJyIHx8IG51bWJlck9mRnJhbWVzNjQgPD0gMCkKKyAgICBpZiAoUEFMOjpFeHRBdWRp
b0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5
X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIgfHwg
bnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRv
dWJsZSBmaWxlU2FtcGxlUmF0ZSA9IG1fZmlsZURhdGFGb3JtYXQubVNhbXBsZVJhdGU7CkBAIC0x
ODUsNyArMTczLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1
cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKICAgICBpZiAoc2FtcGxlUmF0ZSkK
ICAgICAgICAgbV9jbGllbnREYXRhRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsKIAot
ICAgIGlmIChFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1
ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFM
OjpFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmls
ZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAvLyBDaGFuZ2UgbnVtYmVyT2ZGcmFtZXM2NCB0byBkZXN0aW5hdGlvbiBz
YW1wbGUtcmF0ZQpAQCAtMjQzLDcgKzIzMSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxl
UmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAKICAg
ICAvLyBSZWFkIGZyb20gdGhlIGZpbGUgKG9yIGluLW1lbW9yeSB2ZXJzaW9uKQogICAgIFVJbnQz
MiBmcmFtZXNUb1JlYWQgPSBudW1iZXJPZkZyYW1lczsKLSAgICBpZiAoRXh0QXVkaW9GaWxlUmVh
ZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZyYW1lc1RvUmVhZCwgYnVmZmVyTGlzdCkgIT0gbm9FcnIp
IHsKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAmZnJh
bWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgewogICAgICAgICBkZXN0cm95QXVkaW9C
dWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVS
ZWFkZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9G
aWxlUmVhZGVyQ29jb2EuaAppbmRleCBiN2I5MTYzYjU2ZTI2YzI5Y2FiODRlZTI0NzY5ZTI5NzE0
MTdhZmZjLi4wYmJiYmEyNzg1N2Q5NzllY2M2ODhmODdmMDMzOWY2NjVlZjQyNTI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJD
b2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmls
ZVJlYWRlckNvY29hLmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJ
TykKIAotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KLSNpbmNsdWRlIDxBdWRp
b1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1
ZGlvVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK3VzaW5nIEV4dEF1ZGlvRmls
ZVJlZiA9IHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqOwordXNpbmcgQXVkaW9GaWxlSUQgPSBz
dHJ1Y3QgT3BhcXVlQXVkaW9GaWxlSUQqOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEF1ZGlvQnVzOwpAQCAtNTgsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHZvaWQqIG1f
ZGF0YSA9IHsgbnVsbHB0ciB9OwogICAgIHNpemVfdCBtX2RhdGFTaXplID0geyAwIH07CiAKLSAg
ICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0geyAwIH07CisgICAgQXVkaW9GaWxlSUQgbV9h
dWRpb0ZpbGVJRCA9IHsgbnVsbHB0ciB9OwogICAgIEV4dEF1ZGlvRmlsZVJlZiBtX2V4dEF1ZGlv
RmlsZVJlZiA9IHsgbnVsbHB0ciB9OwogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
IG1fZmlsZURhdGFGb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCmluZGV4IDQ3ODc1
MDcyYTc4NmVkNjg2YzFkNDAxZTgyZTYyNTljYTIzYzU0YjYuLjE0OGIwNTVkYmVjODk0M2VhNWFh
YzY4ZTY4NThkZTdkMGI4MjMxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSA8cGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9P
dXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJl
ciYgcmVuZGVyZXIpCkBAIC0zOSwxMiArNDEsMTIgQEAgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6
QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCiBBdWRp
b091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcigpCiB7CiAgICAgaWYg
KG1fb3V0cHV0VW5pdCkKLSAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9v
dXRwdXRVbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSht
X291dHB1dFVuaXQpOwogfQogCiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFy
dCgpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1dFVu
aXQpOworICAgIGF1dG8gcmVzdWx0ID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1
dFVuaXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCiAgICAgICAgIFdURkxvZ0Fsd2F5cygi
RVJST1I6IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KCkgY2FsbCBmYWlsZWQgd2l0aCBlcnJvciBjb2Rl
OiAlbGQiLCBzdGF0aWNfY2FzdDxsb25nPihyZXN1bHQpKTsKICAgICByZXR1cm4gcmVzdWx0OwpA
QCAtNTIsNyArNTQsNyBAQCBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCgp
CiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3AoKQogewotICAgIHJldHVy
biBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgcmV0dXJuIFBBTDo6QXVk
aW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOwogfQogCiAvLyBEZWZhdWx0T3V0cHV0VW5p
dCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKaW5kZXggZmRmNjc3NTdkMWI0Nzc2
MDgwOGIxM2ZiNDM0ZTQwYjNkZmQzMGUwNC4uNGU5MDY0ZDBjNmU5MzA4OWFlMGVhYTZmOTk4ZWNk
NjUzNzM1ZDFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxlcmF0
ZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgorI2luY2x1ZGUg
PHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29w
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzIsNyArMjczLDcgQEAgT1NTdGF0dXMg
QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNv
dXJjZSwgc2l6ZV90IGYKIAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBpbnB1dEZv
cm1hdDsKICAgICBVSW50MzIgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihpbnB1dEZvcm1hdCk7
Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlucHV0
Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBr
QXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0
YVNpemUsICZpbnB1dEZvcm1hdCk7CiAgICAgQVNTRVJUKGZyYW1lQ291bnQgPD0gc291cmNlLm1C
dWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpOwog
CiAgICAgQXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ29udGV4dCBjb250ZXh0IHsgc291cmNlLCBmcmFt
ZUNvdW50LCBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgfTsKQEAgLTI4MCw3ICsyODEsNyBA
QCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVm
ZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2lmICFMT0dfRElTQUJMRUQKICAgICBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0Rm9ybWF0OwogICAgIHByb3BlcnR5RGF0YVNpemUg
PSBzaXplb2Yob3V0cHV0Rm9ybWF0KTsKLSAgICBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAm
cHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CisgICAgUEFMOjpBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVh
bURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CiAKICAgICBB
U1NFUlQoQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG91dHB1dEZvcm1hdCkubnVtYmVyT2ZDaGFu
bmVsU3RyZWFtcygpID09IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKSk7CiAgICAgZm9yICh1
aW50MzJfdCBpID0gMDsgaSA8IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKTsgKytpKSB7CkBA
IC0yOTAsNyArMjkxLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJv
bShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNlbmRpZgogCiAgICAg
VUludDMyIHNhbXBsZXNDb252ZXJ0ZWQgPSBtX3NhbXBsZUNhcGFjaXR5OwotICAgIE9TU3RhdHVz
IGVyciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRpb0Nv
bnZlcnRlckZyb21BQkxDYWxsYmFjaywgJmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBtX2J1
ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0cik7CisgICAgT1NTdGF0dXMgZXJyID0gUEFMOjpBdWRp
b0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJGcm9t
QUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0LT5s
aXN0KCksIG51bGxwdHIpOwogICAgIGlmICghZXJyIHx8IGVyciA9PSBrUmFuT3V0T2ZJbnB1dERh
dGFTdGF0dXMpIHsKICAgICAgICAgbV9zYW1wbGVDb3VudCA9IHNhbXBsZXNDb252ZXJ0ZWQ7CiAg
ICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IGU1ZWM0Nzc3ODU4
MWE3YWNmMGU3MjU1MzMzZjllMjY5NDFjNDcyZDEuLmQyYjVhYzQ1ZjMwZmQ0YTNhZjUxYjQyMGRl
Mzc2NDliMTE1MWMyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTQyLDcgKzQyLDYg
QEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogUmVm
PEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoc2l6
ZV90IG1heGltdW1TYW1wbGVDb3VudCwgTG9nZ2VySGVscGVyJiBsb2dnZXJIZWxwZXIsIHNpemVf
dCB3YWl0VG9TdGFydEZvclB1c2hDb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCmluZGV4IDg5ZWNl
ZWQ2MWNiMTliZmQ3ZDQyMGM3NzhhYWExMjBhYzM1NmRiZmQuLjMwZGViMmU0Yzc0MWRmNTQ4OGIz
OGY1ZWQ1OWVlYmU1YTAyODliZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApAQCAtMzIsNyArMzIs
NiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBXZWJBdWRpb0J1ZmZlckxpc3Q6Oldl
YkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCkK
ICAgICA6IG1fYnl0ZXNQZXJGcmFtZShmb3JtYXQuYnl0ZXNQZXJGcmFtZSgpKQpAQCAtMTE2LDcg
KzExNSw3IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBDCiAgICAgICAgIHJldHVybjsKIAogICAg
IENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9FcnIgPT0gQ01T
YW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1w
bGVCdWZmZXIsIG51bGxwdHIsIG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6
ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwg
a0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50
LCAmYnVmZmVyKSkKKyAgICBpZiAobm9FcnIgPT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEF1ZGlv
QnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwgbnVsbHB0ciwg
bV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JTeXN0
ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJGbGFn
X0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpKQogICAgICAg
ICBtX2Jsb2NrQnVmZmVyID0gYWRvcHRDRihidWZmZXIpOwogCiAgICAgcmVzZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRB
ZGFwdG9ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091
dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAppbmRleCAyZTk2MzBmYjYwZjIyYjNlZTU2ZDI0MmQ3MzA0
MzQ4NmI4N2I1NjJmLi5mODkxMDdmZmIxYzNmNTNiZTMxOWFhMzg2ODE0Nzc0YmI0ZDI3YTQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRV
bml0QWRhcHRvcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwCkBAIC0zMywxNSArMzMsNyBAQAogI2lmIEVO
QUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJBdWRp
b1Nlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQotU09GVF9MSU5LX0ZS
QU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBv
bmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50
LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uICppbkRlc2MpLCAoaW5Db21wb25lbnQs
IGluRGVzYykpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNl
TmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlICpvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQotU09G
VF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0QWRkUHJvcGVydHlMaXN0ZW5lciwgT1NTdGF0
dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5p
dFByb3BlcnR5TGlzdGVuZXJQcm9jIGluUHJvYywgdm9pZCAqaW5Qcm9jVXNlckRhdGEpLCAoaW5V
bml0LCBpbklELCBpblByb2MsIGluUHJvY1VzZXJEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xi
b3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1
ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0
RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQgKm91dERhdGEsIFVJbnQzMiAqaW9EYXRhU2l6ZSksIChp
blVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCi1T
T0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1
ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlv
VW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFBy
b3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBp
bkVsZW1lbnQsIGNvbnN0IHZvaWQgKmluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0
LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjaW5jbHVk
ZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNTgsMTUgKzUwLDE1IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmln
dXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5j
b21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAg
IGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0g
MDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAgY29t
cCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQo
Y29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3
KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9D
b21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJl
c3VsdCk7CiAKICAgICBVSW50MzIgZmxhZyA9IDE7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LAorICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJv
cGVydHkobV9vdXRwdXRVbml0LAogICAgICAgICBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5h
YmxlSU8sCiAgICAgICAgIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsCiAgICAgICAgIDAsCkBAIC03
NCwyMCArNjYsMjAgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxv
YXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICAgICAgc2l6ZW9mKGZs
YWcpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0
aWFsaXplKG1fb3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFs
aXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogICAgIC8vIFNldCByZW5k
ZXIgY2FsbGJhY2sKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlucHV0
LmlucHV0UHJvYyA9IGlucHV0UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlz
OwotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAs
ICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFj
aywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAg
IEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCBzdHJlYW0gZm9ybWF0CiAgICAgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbUZvcm1hdDsKIAogICAgIFVJbnQzMiBzaXplID0g
c2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbik7Ci0gICAgcmVzdWx0ID0gQXVkaW9V
bml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9y
bWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNp
emUpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0
LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOwogICAgIEFTU0VSVCghcmVzdWx0KTsK
IAogICAgIGNvbnN0ZXhwciBpbnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsKQEAg
LTEwMSw3ICs5Myw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZs
b2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgc3RyZWFtRm9ybWF0
Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKICAgICBzdHJlYW1G
b3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0OwogCi0g
ICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0
UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikm
c3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CisgICAg
cmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQq
KSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKICAg
ICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5z
ZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtQcmVmZXJyZWRCdWZmZXJTaXplKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9y
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVu
aXRBZGFwdG9yTWFjLmNwcAppbmRleCBjOGVkM2VmNzhjOGM2YTNiMWUwNzBjYjQ0MDU5NjlhZGE0
YWMzZGEyLi43MTRjY2U4ODYyNTc1MTg2MWQ1ZTJiODUxMzEzYTg5ZDA0MTJlYWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRh
cHRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlv
T3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJB
dWRpb0J1cy5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+CisjaW5jbHVk
ZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDgsMjEgKzQ5LDIxIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmln
dXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5j
b21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAg
IGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0g
MDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAgY29t
cCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQo
Y29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3
KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9D
b21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJl
c3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7
CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAg
ICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawogICAgIEFV
UmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0gaW5wdXRQ
cm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0ID0gQXVk
aW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVu
ZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlu
cHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3Bl
X0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7
CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdApAQCAtNzksNyArODAsNyBAQCB2b2lkIEF1ZGlv
T3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVu
c2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFtRm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9IGJp
dHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFBy
b3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBr
QXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKaW5k
ZXggYTUzMzMyY2Y3ZGJkNjQ2NmY0NGY1NzZkMWNkN2FkZTc2MTUwYWE0Zi4uNzg0NzRkOGU1YTVh
YzA3MDM1MzM1OTkwY2RkZjhhZmNkODA1NjE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMzMsMTMgKzMzLDExIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmV0YWluUHRyPENN
Rm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBtYWdpY0Nvb2tpZVNp
emUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llKQogewogICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlv
biA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CiAgICAgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlv
biwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwgJmZv
cm1hdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIG1h
Z2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZmb3JtYXQpOwogICAgIGlmIChl
cnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24g
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTUs
MTQgKzUzLDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1w
bGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAg
ICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlw
dGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxw
dHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZm
ZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRo
UGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBu
dWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRy
LCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJj
cmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVkIC0g
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBhdXRvIGJ1
ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKIAotICAgIGVycm9yID0gQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJT
ZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVy
TGlzdD4oZGF0YSkubGlzdCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9S
KCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxlZCAt
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAppbmRleCA1
N2NmMjlkMGQ3N2U2Nzg4OWJkY2VmZDQwNTg1MTI5ZWQxMmE0NTU1Li42NGUzMGJjMjkzY2E4Zjkz
ODg0ODhmMTQ4ODUwNmM1N2JlMGE1MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC00MSw3ICs0MSw2IEBA
CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIpCiB7CkBAIC05MCw3ICs4OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYgc2Ft
cGxlCiB7CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZv
cm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0g
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZTogQ01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlciByZXR1cm5lZCBudWxscHRyIik7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmlu
ZGV4IDk4MzliMzcwYTcxM2I3YzFkMjNkODQ3ZmE4NjUwNWQ1YWU5NzlhYjIuLmRmZjRmYTRlZGYy
NjRiNDUyYmY4ZGE3YWZhZWY0Y2JkN2EwMjdiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTQ2LDIyICs0NiwxMyBAQAogI2ltcG9y
dCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjZW5kaWYKIAorI2ltcG9ydCA8cGFsL2NmL0F1
ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgotCi1TT0ZUX0xJ
TktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29s
Ym94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21w
bGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIs
IFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0
RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIs
IGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi1TT0ZUX0xJ
TksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVm
KiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1h
dCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQotCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYg
dGFwKSwgKHRhcCkpCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cEdldFNvdXJjZUF1ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwg
Q01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91
dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1l
UmFuZ2VPdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFt
ZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVz
T3V0KSkKLVNPRlRfTElOS19NQVlfRkFJTChNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MgKmNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiAqdGFwT3V0KSwg
KGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNpbXBvcnQgPHBhbC9jb2Nv
YS9NZWRpYVRvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiBzdGF0aWMgY29uc3QgZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRpb24g
PSAxOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFwU3RvcmFnZSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFw
U3RvcmFnZT4gewpAQCAtNzMsNyArNjQsNyBAQCBwdWJsaWM6CiAKIFJlZlB0cjxBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShBVlBs
YXllckl0ZW0gKml0ZW0pCiB7Ci0gICAgaWYgKCFjYW5Mb2FkTVRBdWRpb1Byb2Nlc3NpbmdUYXBD
cmVhdGUoKSkKKyAgICBpZiAoIVBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nl
c3NpbmdUYXBDcmVhdGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoaXRlbSkpOwogfQpAQCAtMTUy
LDcgKzE0Myw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1
dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgbV9yZWFkQ291bnQgKz0g
ZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRpb0Nv
bnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1By
b2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgUEFMOjpBdWRpb0Nv
bnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1By
b2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKIH0KIAogdm9pZCBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIGNs
aWVudCkKQEAgLTIyNSw3ICsyMTYsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
OjpjcmVhdGVNaXhJZk5lZWRlZCgpCiAgICAgfTsKIAogICAgIE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmIHRhcCA9IG51bGxwdHI7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRBdWRpb1Byb2Nlc3Np
bmdUYXBDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwgJnRhcCk7Cisg
ICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKICAgICBpZiAoc3RhdHVzICE9
IG5vRXJyKSB7CiAgICAgICAgIGlmICh0YXApCiAgICAgICAgICAgICBDRlJlbGVhc2UodGFwKTsK
QEAgLTI1OCwxNCArMjQ5LDE0IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Omlu
aXRDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIHZvaWQqCiB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpmaW5hbGl6ZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5n
VGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9y
YWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3Rv
cmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFw
U3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogICAg
IHRhcFN0b3JhZ2UtPmRlcmVmKCk7CiB9CiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNv
dW50IG1heEZyYW1lcywgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICpwcm9jZXNz
aW5nRm9ybWF0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3Jh
Z2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9y
YWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBT
dG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAg
ICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0yNzYsNyArMjY3LDcg
QEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxiYWNrKE1UQXVk
aW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ00KIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsKICAg
ICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8
VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBU
YXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRB
dWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7
IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjg3LDcgKzI3OCw3IEBAIHZvaWQgQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmIHRhcCkKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3NDYWxsYmFj
ayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyBmbGFncywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJM
aXN0SW5PdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwRmxhZ3MgKmZsYWdzT3V0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2Uq
IHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNf
Y2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFw
KSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0zMTcs
NyArMzA4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0
ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEKIAogICAgIGlmICgqbV90YXBEZXNj
cmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZlcnRl
clJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5ldyht
X3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29u
dmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlck5ldyhtX3RhcERlc2NyaXB0aW9u
LmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsKICAgICAg
ICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0zNTcsNyArMzQ4LDcg
QEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2VzcyhNVEF1ZGlvUHJvY2Vz
c2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW4KICAgICAKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291
bnQgPSAwOwogICAgIENNVGltZVJhbmdlIHJhbmdlT3V0OwotICAgIE9TU3RhdHVzIHN0YXR1cyA9
IE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1lcywg
YnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKKyAgICBP
U1N0YXR1cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8o
dGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0
LCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8ICFpdGVtQ291bnQpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggMzA1YjNkMjdlMzQy
Zjk4NzIxMTJmMTE3NGMxNGZmNGYzYzYwODU1ZC4uZDJkYzc4MWIwODIzMjZlYmFlOTQ3MTJmMjE5
OTExMTExMTI1MDIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yMzIsNyArMjMyLDYg
QEAgc3RydWN0IExvZ0FyZ3VtZW50PEFWUGxheWVyVGltZUNvbnRyb2xTdGF0dXM+IHsKIH07IC8v
IG5hbWVzcGFjZSBXVEYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIAogc3RhdGljIE5TQXJyYXkgKmFzc2V0TWV0YWRhdGFLZXlOYW1lcygpOwogc3RhdGljIE5T
QXJyYXkgKml0ZW1LVk9Qcm9wZXJ0aWVzKCk7CkBAIC01ODIsOCArNTgxLDggQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCiAK
ICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVydHVyZU1vZGU6QVZBc3NldEltYWdl
R2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07CiAgICAgW21faW1hZ2VHZW5lcmF0
b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtOllFU107Ci0gICAgW21f
aW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUJlZm9yZTprQ01U
aW1lWmVyb107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRv
bGVyYW5jZUFmdGVyOmtDTVRpbWVaZXJvXTsKKyAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBz
ZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOlBBTDo6a0NNVGltZVplcm9dOworICAgIFtt
X2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjpQQUw6
OmtDTVRpbWVaZXJvXTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKQpAQCAtNjcxLDcgKzY3MCw3IEBAIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRTdGFydERhdGUo
KSBjb25zdAogICAgIGlmICghZGF0ZSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKTsKIAotICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IENNVGltZUdldFNlY29uZHMoW21f
YXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAwOworICAgIGRvdWJsZSBjdXJyZW50VGlt
ZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0ZW0gY3VycmVudFRpbWVdKSAq
IDEwMDA7CiAKICAgICAvLyBSb3VuZGluZyBkdWUgdG8gc2Vjb25kIG9mZnNldCBlcnJvciB3aGVu
IHN1YnRyYWN0aW5nLgogICAgIHJldHVybiBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUocm91
bmQoZGF0ZSAtIGN1cnJlbnRUaW1lKSk7CkBAIC0xMDg5LDcgKzEwODgsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKIAogICAgIEFT
U0VSVCghbV9jdXJyZW50VGltZU9ic2VydmVyKTsKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpOwotICAgIG1fY3VycmVudFRpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFk
ZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOlt3ZWFrVGhpc10gKENNVGltZSB0
aW1lKSB7CisgICAgbV9jdXJyZW50VGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkUGVyaW9k
aWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vha1RoaXNdIChDTVRpbWUgdGlt
ZSkgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+Y3VycmVu
dE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKHRpbWUpKTsKICAgICB9XTsKQEAg
LTE0MjMsNyArMTQyMiw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKICAgICAgICAgcmV0dXJuIE1lZGlhVGlt
ZTo6emVyb1RpbWUoKTsKIAogICAgIGlmICghbV93YWxsQ2xvY2tBdENhY2hlZEN1cnJlbnRUaW1l
KQotICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKHRvTWVkaWFUaW1lKFttX2F2UGxh
eWVySXRlbS5nZXQoKSBjdXJyZW50VGltZV0pKTsKKyAgICAgICAgY3VycmVudE1lZGlhVGltZURp
ZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKFttX2F2UGxheWVySXRlbS5nZXQoKSBjdXJyZW50VGlt
ZV0pKTsKICAgICBBU1NFUlQobV93YWxsQ2xvY2tBdENhY2hlZEN1cnJlbnRUaW1lKTsKIAogICAg
IGF1dG8gaXRlbVRpbWUgPSBtX2NhY2hlZEN1cnJlbnRNZWRpYVRpbWU7CkBAIC0xNDY4LDggKzE0
NjcsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNlZWtUb1Rp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAgIENNVGltZSBjbUFmdGVyID0gUEFM
Ojp0b0NNVGltZShwb3NpdGl2ZVRvbGVyYW5jZSk7CiAKICAgICAvLyBbQVZQbGF5ZXJJdGVtIHNl
ZWtUb1RpbWVdIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRvbGVyYW5jZUJlZm9yZSBpcyBu
ZWdhdGl2ZS4KLSAgICBpZiAoQ01UaW1lQ29tcGFyZShjbUJlZm9yZSwga0NNVGltZVplcm8pIDwg
MCkKLSAgICAgICAgY21CZWZvcmUgPSBrQ01UaW1lWmVybzsKKyAgICBpZiAoUEFMOjpDTVRpbWVD
b21wYXJlKGNtQmVmb3JlLCBQQUw6OmtDTVRpbWVaZXJvKSA8IDApCisgICAgICAgIGNtQmVmb3Jl
ID0gUEFMOjprQ01UaW1lWmVybzsKICAgICAKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpOwogCkBAIC0xNTg2LDYgKzE1ODUsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnNldFBpdGNoQ29ycmVjdGlvbkFsZ29yaXRobShNZWRpYVBsYXll
cgogCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcygpIGNvbnN0CiB7
CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGF1dG8gdGltZVJhbmdlcyA9IG1ha2VV
bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwogCiAgICAgaWYgKCFtX2F2UGxheWVySXRlbSkK
QEAgLTE1OTQsMTMgKzE1OTUsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdl
cz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm0KICAgICBmb3Ig
KE5TVmFsdWUgKnRoaXNSYW5nZVZhbHVlIGluIG1fY2FjaGVkTG9hZGVkUmFuZ2VzLmdldCgpKSB7
CiAgICAgICAgIENNVGltZVJhbmdlIHRpbWVSYW5nZSA9IFt0aGlzUmFuZ2VWYWx1ZSBDTVRpbWVS
YW5nZVZhbHVlXTsKICAgICAgICAgaWYgKENNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkg
JiYgIUNNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5nZSkpCi0gICAgICAgICAgICB0aW1lUmFu
Z2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRvTWVkaWFU
aW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKKyAgICAgICAgICAgIHRpbWVSYW5n
ZXMtPmFkZChQQUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CiAgICAgfQogICAgIHJldHVy
biB0aW1lUmFuZ2VzOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogeworICAgIHVzaW5nIG5h
bWVzcGFjZSBQQUw7CisKICAgICBpZiAoIW1fY2FjaGVkU2Vla2FibGVSYW5nZXMgfHwgIVttX2Nh
Y2hlZFNlZWthYmxlUmFuZ2VzIGNvdW50XSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVy
b1RpbWUoKTsKIApAQCAtMTYyMSw2ICsxNjI0LDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWluVGltZVNlZWthYmxlKCkgY29uc3QKIAog
TWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4
VGltZVNlZWthYmxlKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOworCiAgICAg
aWYgKCFtX2NhY2hlZFNlZWthYmxlUmFuZ2VzKQogICAgICAgICBtX2NhY2hlZFNlZWthYmxlUmFu
Z2VzID0gW21fYXZQbGF5ZXJJdGVtIHNlZWthYmxlVGltZVJhbmdlc107CiAKQEAgLTE2MzMsNyAr
MTYzOCw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpw
bGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0Vf
SVNfVkFMSUQodGltZVJhbmdlKSB8fCBDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZS
YW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7Cisg
ICAgICAgIE1lZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGlt
ZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpOwogICAgICAgICBpZiAobWF4VGltZVNlZWthYmxlIDwg
ZW5kT2ZSYW5nZSkKICAgICAgICAgICAgIG1heFRpbWVTZWVrYWJsZSA9IGVuZE9mUmFuZ2U7CiAg
ICAgfQpAQCAtMTY0Miw2ICsxNjQ3LDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKIAogTWVkaWFU
aW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxv
YWRlZCgpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGlmICghbV9j
YWNoZWRMb2FkZWRSYW5nZXMpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7
CiAKQEAgLTE2NTEsNyArMTY1OCw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgICAgICBpZiAo
IUNNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFko
dGltZVJhbmdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVk
aWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRp
bWVSYW5nZSkpOworICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRp
bWVMb2FkZWQgPCBlbmRPZlJhbmdlKQogICAgICAgICAgICAgbWF4VGltZUxvYWRlZCA9IGVuZE9m
UmFuZ2U7CiAgICAgfQpAQCAtMTgwMyw3ICsxODEwLDcgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUlu
UmUKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAg
ICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5zaXpl
KCkpXTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2lt
YWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25k
cyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOworICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiByYXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29w
eUNHSW1hZ2VBdFRpbWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1
YWxUaW1lOm5pbCBlcnJvcjpuaWxdKTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2Ug
PSBhZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCks
IHNSR0JDb2xvclNwYWNlUmVmKCkpKTsKIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJj
cmVhdGluZyBpbWFnZSB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNv
bmRzKCkpOwpAQCAtMTk4OSw3ICsxOTk2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpkaWRTdG9wTG9hZGluZ1JlcXVlc3QoQVZBc3NldFJlc291cmNlTG8KIAog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjppc0F2YWlsYWJsZSgpCiB7
Ci0gICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBp
c0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3Vu
ZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2
YWlsYWJsZSgpOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6bWVkaWFUaW1lRm9yVGltZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVlKSBj
b25zdApAQCAtMjkwMSw3ICsyOTA4LDcgQEAgc3RhdGljIE5TU3RyaW5nICpleGVybmFsRGV2aWNl
RGlzcGxheU5hbWVGb3JQbGF5ZXIoQVZQbGF5ZXIgKnBsYXllcikKICAgICBpZiAoIVBBTDo6aXNB
VkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIGlmIChhdXRvIGNvbnRleHQgPSBPdXRwdXRDb250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRh
dGlvbk91dHB1dENvbnRleHQoKSkKKyAgICBpZiAoYXV0byBjb250ZXh0ID0gUEFMOjpPdXRwdXRD
b250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQoKSkKICAgICAgICAg
cmV0dXJuIGNvbnRleHQtPmRldmljZU5hbWUoKTsKIAogICAgIGlmIChwbGF5ZXIuZXh0ZXJuYWxQ
bGF5YmFja1R5cGUgIT0gQVZQbGF5ZXJFeHRlcm5hbFBsYXliYWNrVHlwZUFpclBsYXkpCkBAIC0z
MjM1LDkgKzMyNDIsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPAogICAgICAgICBmb3IgKEFW
TWV0YWRhdGFJdGVtICppdGVtIGluIGdyb3VwLml0ZW1zKSB7CiAgICAgICAgICAgICBSZXRhaW5Q
dHI8QVZNdXRhYmxlTWV0YWRhdGFJdGVtPiBpdGVtQ29weSA9IGFkb3B0TlMoW2l0ZW0gbXV0YWJs
ZUNvcHldKTsKICAgICAgICAgICAgIGlmICghQ01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgp
LnRpbWUpKQotICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLnRpbWUgPSBDTVRpbWVNYWtl
V2l0aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUsIE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7
CisgICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdp
dGhTZWNvbmRzKGdyb3VwU3RhcnRUaW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwog
ICAgICAgICAgICAgaWYgKCFDTVRJTUVfSVNfVkFMSUQoaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24p
KQotICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3Jv
dXBEdXJhdGlvbik7CisgICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24gPSBQ
QUw6OnRvQ01UaW1lKGdyb3VwRHVyYXRpb24pOwogICAgICAgICAgICAgW2dyb3VwQ29weSBhZGRP
YmplY3Q6aXRlbUNvcHkuZ2V0KCldOwogICAgICAgICB9CiAKQEAgLTMyNzksNyArMzI4Niw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJp
dmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAKICAgICAgICAgTWVkaWFUaW1lIGVuZCA9IE1lZGlh
VGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGl0
ZW0uZHVyYXRpb247Ci0gICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIENN
VGltZUdldFNlY29uZHMoZHVyYXRpb24pID4gMC4wMDEpCisgICAgICAgIGlmIChDTVRJTUVfSVNf
VkFMSUQoZHVyYXRpb24pICYmIFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAw
MSkKICAgICAgICAgICAgIGVuZCA9IHN0YXJ0ICsgUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7
CiAKICAgICAgICAgQXRvbVN0cmluZyB0eXBlID0gbnVsbEF0b20oKTsKQEAgLTM0NTgsNyArMzQ2
NSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRh
c2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvCiAgICAgaWYgKG1fdGltZU9ic2VydmVyKQog
ICAgICAgICBbbV9hdlBsYXllciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV90aW1lT2JzZXJ2ZXIuZ2V0
KCldOwogCi0gICAgbV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVP
YnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUp
XV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAgbV90
aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVz
OkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7
CiAgICAgfV07CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5k
ZXggNWE2OWFhNjc5NTE4OWNiNGUwNzZkMzE5NDY5Zjk5NjUwNGZmOTQ2Yy4uNzNhZGViOWJiNzNh
NzgyOGRmNWEzZjQ4NGM1ZjkwZTMzM2QyNDFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bQpAQCAtNjYsNyArNjYsNiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0
b3J5QXRVUkw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKIEBlbmQKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0YXRl
IGVudW1lcmF0aW9uVmFsdWUpCiB7CkBAIC0xMTYsMTUgKzExNSwxNSBAQCBzdGF0aWMgdm9pZCBD
TVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRl
clJlZiwgY29ucwogCiB2b2lkIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3AoQ01U
aW1lYmFzZVJlZiB0aW1lYmFzZSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9
IENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3Rp
ZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2
ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJh
dGVDaGFuZ2VkLCB0aW1lYmFzZSk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQ
QUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFM
OjpDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNl
RWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlv
bl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UpOwogfQogCiBFZmZlY3RpdmVSYXRlQ2hh
bmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyKE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQyYgY2xpZW50LCBDTVRpbWViYXNlUmVmIHRpbWViYXNlKQog
ICAgIDogbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKIHsKLSAgICBDTU5vdGlmaWNhdGlv
bkNlbnRlclJlZiBuYyA9IENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVy
KCk7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1l
YmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9u
X0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSwgMCk7CisgICAgQ01Ob3RpZmljYXRpb25D
ZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2Vu
dGVyKCk7CisgICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0aGlz
LCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFz
ZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwogfQogCiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMTU3LDcgKzE1Niw3IEBA
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3lu
Y2hyb25pemVyIGZpcmVkIGZvciAiLCB0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIs
IG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CisgICAgICAgIERF
QlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFM
Ojp0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGlu
ZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CiAKICAgICAgICAgaWYgKG1fc2Vla2luZyAmJiAhbV9w
ZW5kaW5nU2VlaykgewogICAgICAgICAgICAgbV9zZWVraW5nID0gZmFsc2U7CkBAIC0yMzgsMTEg
KzIzNywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdAogYm9vbCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKICAgICByZXR1cm4gUEFMOjpp
c0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlh
RnJhbWV3b3JrQXZhaWxhYmxlKCkKLSAgICAgICAgJiYgZ2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xh
c3MoKQotICAgICAgICAmJiBnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCi0g
ICAgICAgICYmIGdldEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQotICAg
ICAgICAmJiBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXJDbGFzcygpLCBAc2VsZWN0b3Ioc2V0TXV0ZWQ6KSk7CisgICAgICAgICYmIFBBTDo6aXND
b3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQorICAgICAgICAmJiBQQUw6OmdldEFWU3RyZWFt
RGF0YVBhcnNlckNsYXNzKCkKKyAgICAgICAgJiYgUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlv
UmVuZGVyZXJDbGFzcygpCisgICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJT
eW5jaHJvbml6ZXJDbGFzcygpCisgICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFBB
TDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11
dGVkOikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4mIHR5cGVzKQpAQCAtNDE3LDcgKzQxNiw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmR1cmF0aW9uTWVkaWFUaW1lKCkgY29uc3QKIAogTWVkaWFU
aW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGlt
ZSgpIGNvbnN0CiB7Ci0gICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAg
ICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRp
bWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgaWYgKHN5bmNo
cm9uaXplclRpbWUgPCBNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgICAgIHJldHVybiBNZWRp
YVRpbWU6Onplcm9UaW1lKCk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBtX2xhc3RTZWVr
VGltZSkKQEAgLTQzMCw3ICs0MjksNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhNZWRpYQogICAgIG1f
Y3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAgICAg
aWYgKG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjaykgewotICAgICAgICBtX3RpbWVDaGFu
Z2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJ
bnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkgeworICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2
ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQ
QUw6OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNp
bmdCbG9jazpeKENNVGltZSB0aW1lKSB7CiAgICAgICAgICAgICBpZiAobV9jdXJyZW50VGltZURp
ZENoYW5nZUNhbGxiYWNrKQogICAgICAgICAgICAgICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VD
YWxsYmFjayhDTVRJTUVfSVNfTlVNRVJJQyh0aW1lKSA/IFBBTDo6dG9NZWRpYVRpbWUodGltZSkg
OiBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogICAgICAgICB9XTsKQEAgLTQ4Miw3ICs0ODEsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFs
KCkKICAgICBpZiAobV9sYXN0U2Vla1RpbWUuaGFzRG91YmxlVmFsdWUoKSkKICAgICAgICAgbV9s
YXN0U2Vla1RpbWUgPSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUobV9sYXN0U2Vla1RpbWUu
dG9Eb3VibGUoKSwgTWVkaWFUaW1lOjpEZWZhdWx0VGltZVNjYWxlKTsKIAotICAgIE1lZGlhVGlt
ZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShb
bV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRp
bWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25p
emVyIHRpbWViYXNlXSkpOwogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJzZWVrVGltZSA9
ICIsIG1fbGFzdFNlZWtUaW1lLCAiLCBzeW5jaHJvbml6ZXJUaW1lID0gIiwgc3luY2hyb25pemVy
VGltZSk7CiAKICAgICBib29sIGRvZXNOb3RSZXF1aXJlU2VlayA9IHN5bmNocm9uaXplclRpbWUg
PT0gbV9sYXN0U2Vla1RpbWU7CkBAIC01OTksNyArNTk4LDcgQEAgYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAgaWYg
KG1fdmlkZW9PdXRwdXQpIHsKICAgICAgICAgQ01UaW1lIG91dHB1dFRpbWU7CiAgICAgICAgIGlm
IChhdXRvIHBpeGVsQnVmZmVyID0gYWRvcHRDRihbbV92aWRlb091dHB1dCBjb3B5UGl4ZWxCdWZm
ZXJGb3JTb3VyY2VUaW1lOnRvQ01UaW1lKGN1cnJlbnRNZWRpYVRpbWUoKSkgc291cmNlVGltZUZv
ckRpc3BsYXk6Jm91dHB1dFRpbWVdKSkgewotICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJ
RklFUiwgIm5ldyBwaXhlbGJ1ZmZlciBmb3VuZCBmb3IgdGltZSAiLCB0b01lZGlhVGltZShvdXRw
dXRUaW1lKSk7CisgICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVs
YnVmZmVyIGZvdW5kIGZvciB0aW1lICIsIFBBTDo6dG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOwog
ICAgICAgICAgICAgbV9sYXN0UGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC04MDksNyArODA4LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigpCiAg
ICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVy
IHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0
VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIgcmVt
b3ZlUmVuZGVyZXI6bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkgYXRUaW1lOmN1cnJl
bnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4K
ICAgICB9XTsKQEAgLTEwMTgsNyArMTAxNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpmbHVzaFBlbmRpbmdTaXplQ2hhbmdlcygpCiAjaWYgSEFWRShBVlNU
UkVBTVNFU1NJT04pCiBBVlN0cmVhbVNlc3Npb24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbigpCiB7Ci0gICAgaWYgKCFnZXRBVlN0cmVhbVNlc3Np
b25DbGFzcygpIHx8ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jl
c3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDop
XSkKKyAgICBpZiAoIVBBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0
QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0
b3IoaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgIHJldHVybiBuaWw7
CiAKICAgICBpZiAoIW1fc3RyZWFtU2Vzc2lvbikgewpAQCAtMTIxNyw3ICsxMjE2LDcgQEAgQUxM
T1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGlt
ZSBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFz
ZV0pOworICAgIENNVGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21f
c3luY2hyb25pemVyIHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRl
cmVyOmF1ZGlvUmVuZGVyZXIgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxl
cjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAgLTEzMDEsNyArMTMwMCw3
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFz
a0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248CiAgICAgaWYgKG1fcGVyZm9ybVRhc2tPYnNlcnZl
cikKICAgICAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVRpbWVPYnNlcnZlcjptX3BlcmZvcm1U
YXNrT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAgbV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3lu
Y2hyb25pemVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1
ZVdpdGhDTVRpbWU6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpIHVzaW5nQmxvY2s6XnsKKyAgICBtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJv
bml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0
aENNVGltZTpQQUw6OnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSB1c2luZ0Jsb2NrOl57CiAgICAgICAgIHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGUxYWQxMDJiYjk4MWJmMzc0
ZTZiZDkzN2MwYzZlMmE4N2Y0MGYxNWYuLjU1YjUwMGM1N2U5M2ViYmE0OTZhZTc0MTZmZDVkZjc4
ZDdiOTQ1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1w
b3J0ICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorI2ltcG9ydCAiTWVkaWFQbGF5
ZXIuaCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiTWVk
aWFTdHJlYW1Qcml2YXRlLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCkBA
IC0xMjEsNyArMTIyLDYgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmlu
ZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KIEBlbmQKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNw
cmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMKQEAgLTIxMCw3
ICsyMTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdAogCiBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBpc0FW
Rm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZh
aWxhYmxlKCkgJiYgZ2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpOworICAgIHJl
dHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0Nv
cmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJDbGFzcygpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIHR5cGVzKQpAQCAtMjMwLDcgKzIzMCw3IEBAIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1R5
cGUoY29uCiBzdGF0aWMgaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3JtYXRp
b25NYXRyaXgoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZm
ZXI7Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4
ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7
CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxC
dWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIp
KTsKICAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIp
OwogICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVy
KTsKICAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpCkBAIC05NjAsNyArOTYwLDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUN1cnJlbnRGcmFtZUlt
YWdlKCkKICAgICBpZiAoIW1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhl
bEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5t
ZWRpYVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5w
bGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIG1faW1hZ2VQYWlu
dGVyLmNnSW1hZ2UgPSBOYXRpdmVJbWFnZTo6Y3JlYXRlKG1faW1hZ2VQYWludGVyLnBpeGVsQnVm
ZmVyQ29uZm9ybWVyLT5jcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXgg
MmY0OTgzODc2NWQzYzk0NDFiNjliYjk1MThiM2IxZjlhODc5NTA5Yi4uN2JmNDJkNGU3ZDdjY2Iy
OGFjYWYzOTA4MDg5ZTE1MWM0MjRkN2Y5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMzYsOSArMzYsMTEgQEAKICNpbXBvcnQgIkNvcmVWaWRl
b1NvZnRMaW5rLmgiCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotdXNp
bmcgbmFtZXNwYWNlIFBBTDsKLQotV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1
ZmZlcik7CisvLyBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKK3Rl
bXBsYXRlIDw+CitzdHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJlZj4gewor
ICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQgdHlwZUlEKHZvaWQpIHsgcmV0dXJuIFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsgfQorfTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC02NywzNSArNjksMzUgQEAgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZShQaXhlbEJ1ZmZlciYmIHAKICAgICBBU1NFUlRfVU5V
U0VEKHN0YXR1cywgIXN0YXR1cyk7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0RGVzY3JpcHRpb25SYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2
UGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvblJhdyk7CisgICAgc3RhdHVzID0g
UEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb25SYXcp
OwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIGZvcm1hdERlc2NyaXB0aW9uID0gYWRv
cHRDRihmb3JtYXREZXNjcmlwdGlvblJhdyk7CiAKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2Ft
cGxlVGltaW5nSW5mb3JtYXRpb24gPSB7IGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52YWxpZCwg
a0NNVGltZUludmFsaWQgfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2FtcGxlVGltaW5nSW5m
b3JtYXRpb24gPSB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6a0NNVGltZUludmFsaWQsIFBB
TDo6a0NNVGltZUludmFsaWQgfTsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJS
YXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRo
SW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgZm9y
bWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1
ZmZlclJhdyk7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZv
cm1hdERlc2NyaXB0aW9uLmdldCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVC
dWZmZXJSYXcpOwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9
IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyUmF3KTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNB
cnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZm
ZXIuZ2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQo
KSwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3Vu
dChhdHRhY2htZW50c0FycmF5KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxl
RGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0
aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsK
LSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFj
aG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgIENG
RGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogICAgIHJldHVy
biBjcmVhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxl
QVZGT2JqQzo6cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAg
PSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5n
ZXQoKSk7CisgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0
UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lT
X0lOVkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJH
ZXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOworICAgICAgICB0aW1lU3Rh
bXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxl
LmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApOwogfQogCiBN
ZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIHsKLSAgICBh
dXRvIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1fc2FtcGxl
LmdldCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNv
ZGVUaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0
aW1lU3RhbXApKQogICAgICAgICByZXR1cm4gcHJlc2VudGF0aW9uVGltZSgpOwogICAgIHJldHVy
biBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCk7CkBAIC0xMDMsMTUgKzEwNSwxNSBAQCBNZWRp
YVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1l
IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVyYXRpb24oKSBjb25zdAogewotICAgIGF1dG8gZHVyYXRp
b24gPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAg
ICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1f
c2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAg
ICAgICBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkp
OworICAgICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3Nh
bXBsZS5nZXQoKSk7CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUoZHVyYXRpb24pOwogfQog
CiBzaXplX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjpzaXplSW5CeXRlcygpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplKG1fc2FtcGxlLmdldCgpKTsK
KyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBs
ZS5nZXQoKSk7CiB9CiAKIFBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxhdGZv
cm1TYW1wbGUoKQpAQCAtMTIyLDIzICsxMjQsMjMgQEAgUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1w
bGVBVkZPYmpDOjpwbGF0Zm9ybVNhbXBsZSgpCiAKIHVpbnQzMl90IE1lZGlhU2FtcGxlQVZGT2Jq
Qzo6dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0CiB7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIo
bV9zYW1wbGUuZ2V0KCkpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQ
aXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxl
LmdldCgpKSk7CiAgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4
ZWxCdWZmZXIpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJh
bmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCiB7Ci0gICAgcmV0dXJu
ICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNo
bWVudEtleV9Ob3RTeW5jKTsKKyAgICByZXR1cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0
dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7CiB9CiAK
IHN0YXRpYyBib29sIGRvZXNDTVNhbXBsZUJ1ZmZlckhhdmVTeW5jSW5mbyhDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGUpCiB7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBi
b29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
KQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2ht
ZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBs
ZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIApAQCAtMTUxLDEyICsxNTMsMTIgQEAgc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJh
bmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiAKIHN0YXRpYyBib29sIGlzQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNo
bWVudERpY3QpCiB7Ci0gICAgcmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1l
bnREaWN0LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSk7CisgICAgcmV0dXJu
IENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0
dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAgIENGQXJy
YXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJy
YXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAg
IGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTE4Niwx
MSArMTg4LDExIEBAIE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBNZWRpYVNhbXBsZUFWRk9iakM6
OmZsYWdzKCkgY29uc3QKIAogRmxvYXRTaXplIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0
aW9uU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9zYW1wbGUuZ2V0
KCkpOwotICAgIGlmIChDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2Ny
aXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVfVmlkZW8pCisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihtX3NhbXBsZS5nZXQoKSk7CisgICAgaWYgKFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdl
dE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQogICAg
ICAgICByZXR1cm4gRmxvYXRTaXplKCk7CiAgICAgCi0gICAgcmV0dXJuIEZsb2F0U2l6ZShDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2Ny
aXB0aW9uLCB0cnVlLCB0cnVlKSk7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRp
b24sIHRydWUsIHRydWUpKTsKIH0KIAogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKQEAgLTIwMSwxMiArMjAzLDEyIEBAIHZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB2b2lkIE1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogewog
ICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRy
LCAmaXRlbUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3Vu
dCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZv
PiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsK
LSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
bV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0
cikpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWlu
ZyA6IHRpbWluZ0luZm9BcnJheSkgewpAQCAtMjE1LDcgKzIxNyw3IEBAIHZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiAg
ICAgfQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAobm9F
cnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCAmbmV3U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0
ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBp
dGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0yMjQs
MTIgKzIyNiwxMiBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5
KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRp
bWVzdGFtcHMoY29uc3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGFtcCwgY29u
c3QgV1RGOjpNZWRpYVRpbWUgJmRlY29kZVRpbWVzdGFtcCkKIHsKICAgICBDTUl0ZW1Db3VudCBp
dGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisg
ICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5
OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBp
dGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0Vy
ciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxl
LmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAg
ICAgICByZXR1cm47CiAgICAgCiAgICAgZm9yIChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZvQXJy
YXkpIHsKQEAgLTIzOCw3ICsyNDAsNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGlt
ZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogICAgIH0K
ICAgICAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5vRXJyICE9
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5l
d1NhbXBsZSkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNv
dW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUpOwpAQCAtMjQ2LDEwICsy
NDgsMTAgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RG
OjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGEKIAogYm9vbCBNZWRpYVNhbXBsZUFWRk9i
akM6OmlzRGl2aXNhYmxlKCkgY29uc3QKIHsKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXROdW1T
YW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAxKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSkgPT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5KG1fc2FtcGxlLmdl
dCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVCdWZmZXJFcnJvcl9CdWZmZXJI
YXNOb1NhbXBsZVNpemVzKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6
ZUFycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVC
dWZmZXJFcnJvcl9CdWZmZXJIYXNOb1NhbXBsZVNpemVzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI2MiwxNyArMjY0LDE3IEBAIHN0ZDo6cGFpcjxSZWZQ
dHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6
OmRpdmlkZShjCiAKICAgICBDRkluZGV4IHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lID0g
MDsKIAotICAgIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5n
ZXQoKSwgWyZdIChDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAt
PiBPU1N0YXR1cyB7Ci0gICAgICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRP
dXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICBQQUw6OkNNU2Ft
cGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5nZXQoKSwgWyZdIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAtPiBPU1N0YXR1cyB7Cisg
ICAgICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNl
bnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogICAgICAgICBpZiAoQ01USU1FX0lTX0lO
VkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgICAgIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVy
R2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICB0aW1l
U3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBs
ZUJ1ZmZlcik7CiAKICAgICAgICAgaWYgKHVzZUVuZFRpbWUgPT0gVXNlRW5kVGltZTo6VXNlKSB7
Ci0gICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJh
dGlvbihzYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwogICAgICAgICAgICAg
aWYgKENNVElNRV9JU19JTlZBTElEKGR1cmF0aW9uKSkKLSAgICAgICAgICAgICAgICBkdXJhdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAg
ICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZm
ZXIpOwogCi0gICAgICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShDTVRpbWVBZGQodGltZVN0
YW1wLCBkdXJhdGlvbikpID4gcHJlc2VudGF0aW9uVGltZSkKKyAgICAgICAgICAgIGlmIChQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+IHByZXNl
bnRhdGlvblRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0gZWxzZSBp
ZiAoUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApID49IHByZXNlbnRhdGlvblRpbWUpCiAgICAg
ICAgICAgICByZXR1cm4gMTsKQEAgLTI4MywxOSArMjg1LDE5IEBAIHN0ZDo6cGFpcjxSZWZQdHI8
TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRp
dmlkZShjCiAgICAgaWYgKCFzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSkKICAgICAgICAg
cmV0dXJuIHsgbnVsbHB0ciwgdGhpcyB9OwogCi0gICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQg
PSBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpOworICAgIENNSXRl
bUNvdW50IHNhbXBsZUNvdW50ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9z
YW1wbGUuZ2V0KCkpOwogICAgIGlmIChzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSA+PSBz
YW1wbGVDb3VudCkKICAgICAgICAgcmV0dXJuIHsgdGhpcywgbnVsbHB0ciB9OwogCiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQmVmb3JlID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJh
bmdlQmVmb3JlID0gQ0ZSYW5nZU1ha2UoMCwgc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUp
OwotICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VCZWZvcmUsICZyYXdTYW1wbGVCZWZv
cmUpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9y
ZSwgJnJhd1NhbXBsZUJlZm9yZSkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIs
IG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJlZm9y
ZSA9IGFkb3B0Q0YocmF3U2FtcGxlQmVmb3JlKTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJh
d1NhbXBsZUFmdGVyID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdlQWZ0ZXIgPSBDRlJhbmdl
TWFrZShzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSwgc2FtcGxlQ291bnQgLSBzYW1wbGVz
QmVmb3JlUHJlc2VudGF0aW9uVGltZSk7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBs
ZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5n
ZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkNNU2FtcGxl
QnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2Ft
cGxlLmdldCgpLCByYW5nZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBzYW1wbGVBZnRlciA9IGFkb3B0Q0YocmF3U2FtcGxlQWZ0ZXIpOwogCkBAIC0zMDUs
MTMgKzMwNywxMyBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlh
U2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogUmVmPE1lZGlhU2FtcGxlPiBN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3QKIHsKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXIgPSAwOwotICAgIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1Nh
bXBsZUJ1ZmZlcik7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAgIEFTU0VS
VChuZXdTYW1wbGVCdWZmZXIpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG5ld1NhbXBsZUJ1ZmZlciwg
dHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsKICAg
ICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJh
eSk7ICsraSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0g
Y2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0
SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1
ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJv
b2xlYW5UcnVlKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBB
TDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xlYW5UcnVlKTsK
ICAgICB9CiAKICAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRvcHRDRihu
ZXdTYW1wbGVCdWZmZXIpLmdldCgpLCBtX2lkKTsKQEAgLTMyNiw3ICszMjgsNyBAQCBSZWZQdHI8
SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VE
YXRhKCkgY29uc3QKICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShjb25mb3JtZXJPcHRpb25zLmdl
dCgpLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgaW1hZ2VGb3JtYXROdW1iZXIu
Z2V0KCkpOwogICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgcGl4ZWxCdWZmZXJDb25mb3JtZXIo
Y29uZm9ybWVyT3B0aW9ucy5nZXQoKSk7CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3Nh
bXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVs
QnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0
KCkpKTsKICAgICBhdXRvIHJnYmFQaXhlbEJ1ZmZlciA9IHBpeGVsQnVmZmVyQ29uZm9ybWVyLmNv
bnZlcnQocGl4ZWxCdWZmZXIpOwogICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tC
YXNlQWRkcmVzcyhyZ2JhUGl4ZWxCdWZmZXIuZ2V0KCksIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFk
T25seSk7CiAgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CkBAIC0zNDMsMTAgKzM0NSwxMCBA
QCBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRS
R0JBSW1hZ2VEYXRhKCkgY29uc3QKIAogc3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZl
ckFzRGlzcGxheUltbWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsK
LSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShzYW1wbGVCdWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENG
QXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJs
ZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGlj
dGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7
Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRh
Y2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBD
RkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50
S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KIH0KIApAQCAt
MzU3LDcgKzM1OSw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1l
ZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiBib29sIE1lZGlhU2FtcGxlQVZGT2JqQzo6
aXNIb21vZ2VuZW91cygpIGNvbnN0CiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5
ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgp
LCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAg
ICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzg1
LDcgKzM4Nyw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiB7CiAgICAgdXNpbmcgU2FtcGxl
VmVjdG9yID0gVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PjsKIAotICAgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0Fy
cmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1w
bGUuZ2V0KCksIHRydWUpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkKICAgICAgICAgcmV0
dXJuIFNhbXBsZVZlY3Rvcjo6ZnJvbShtYWtlUmVmKCp0aGlzKSk7CiAKQEAgLTQxOCw3ICs0MjAs
NyBAQCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6
ZGl2aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcwogICAgIHNhbXBsZXMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShyYW5nZXMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIHJhbmdlIDogcmFuZ2VzKSB7
CiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZSA9IG51bGxwdHI7Ci0gICAgICAg
IGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2UsICZyYXdTYW1wbGUpICE9IG5vRXJyIHx8ICFy
YXdTYW1wbGUpCisgICAgICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJh
d1NhbXBsZSkgIT0gbm9FcnIgfHwgIXJhd1NhbXBsZSkKICAgICAgICAgICAgIHJldHVybiB7IH07
CiAgICAgICAgIHNhbXBsZXMudW5jaGVja2VkQXBwZW5kKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3Jl
YXRlKGFkb3B0Q0YocmF3U2FtcGxlKS5nZXQoKSwgbV9pZCkpOwogICAgIH0KQEAgLTQzMiwyNCAr
NDM0LDI0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpD
OjpjbG9uZVNhbXBsZUJ1ZmZlckFuZFNldEFzRGlzcGxhCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0g
bnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCAmZm9ybWF0
RGVzY3JpcHRpb24pOworICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZl
ciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBhdXRvIHJldGFpbmVkRm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZv
cm1hdERlc2NyaXB0aW9uKTsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAg
c3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAw
LCBudWxscHRyLCAmaXRlbUNvdW50KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCk7
CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBWZWN0b3I8
Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5
Lmdyb3coaXRlbUNvdW50KTsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwg
bnVsbHB0cik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVs
bHB0cik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVC
dWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhl
bEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdT
YW1wbGVCdWZmZXIpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgZm9ybWF0
RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGVCdWZmZXIpOwog
ICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDBi
OWJiNjQ4NWYzZTllMjUzNDVhYWQ0ZjRlNDcwOTJjNDI5YTVjYzguLjAyMTkyMTZkN2MyZDg4ZWY1
Nzc1MjZkODgyMzBjM2U1MDNmZDhjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yNTgsNyArMjU4LDYgQEAgLSAo
dm9pZClhdWRpb1JlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQ6KE5TTm90aWZpY2F0aW9u
Kilub3RlCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7
CiAKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMKQEAgLTI3Nyw3ICsyNzYsNyBAQCBzdGF0aWMgdWludDY0X3QgbmV4dE1hcElEKCkKIAogc3Rh
dGljIHZvaWQgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJl
ZiwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUsIGNv
bnN0IHZvaWQqLCBDRlR5cGVSZWYpCiB7Ci0gICAgaWYgKCFDRkVxdWFsKGtDTVNhbXBsZUJ1ZmZl
ckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkK
KyAgICBpZiAoIUNGRXF1YWwoUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlv
bl9CdWZmZXJDb25zdW1lZCwgbm90aWZpY2F0aW9uTmFtZSkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKQEAgLTMxNiw3ICszMTUsNyBAQCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQ
cml2YXRlQVZGT2JqQwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAo
IVtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNw
b25kVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhDb21wbGV0aW9uSGFuZGxl
cjopXSkKLSAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihDTU5vdGlmaWNh
dGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQq
PihtX21hcElEKSwgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywga0NNU2FtcGxlQnVmZmVyQ29u
c3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIsIDApOworICAgICAgICBQ
QUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNl
bnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQqPihtX21h
cElEKSwgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywgUEFMOjprQ01TYW1wbGVCdWZmZXJDb25z
dW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7CiAKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBtX3BhcnNlci0+c2V0TG9nZ2VyKG1fbG9nZ2VyLmdldCgp
LCBtX2xvZ0lkZW50aWZpZXIpOwpAQCAtMzU0LDcgKzM1Myw3IEBAIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQogICAgIGNsZWFyVHJhY2tz
KCk7CiAKICAgICBpZiAoIVtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3Mo
KSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhD
b21wbGV0aW9uSGFuZGxlcjopXSkKLSAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVM
aXN0ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCB0aGlz
LCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlm
aWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0cik7CisgICAgICAgIFBBTDo6Q01Ob3RpZmlj
YXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVm
YXVsdExvY2FsQ2VudGVyKCksIHRoaXMsIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIFBBTDo6
a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxw
dHIpOwogCiAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkKICAgICAgICAgbV9oYXNTZXNz
aW9uU2VtYXBob3JlLT5zaWduYWwoKTsKQEAgLTk5Myw3ICs5OTIsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcgogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlcldh
c0F1dG9tYXRpY2FsbHlGbHVzaGVkKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqcmVuZGVy
ZXIsIGNvbnN0IENNVGltZSYgdGltZSkKIHsKLSAgICBhdXRvIG1lZGlhVGltZSA9IHRvTWVkaWFU
aW1lKHRpbWUpOworICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZSh0aW1lKTsK
ICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgbWVkaWFUaW1lKTsKICAgICBBdG9tU3RyaW5n
IHRyYWNrSWQ7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9hdWRpb1JlbmRlcmVycykgewpAQCAt
MTEwMSwxMyArMTEwMCwxMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1
ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAgICAgYXV0byBsb2dT
aXRlSWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CiAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVu
dGlmaWVyLCAidHJhY2sgSUQgPSAiLCB0cmFja0lELCAiLCBzYW1wbGUgPSAiLCBzYW1wbGUuZ2V0
KCkpOwogCi0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNt
U2FtcGxlQnVmZmVyKTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2Ft
cGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiAgICAgQVNTRVJUKGZvcm1hdERlc2NyaXB0aW9u
KTsKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEVSUk9SX0xPRyhsb2dT
aXRlSWRlbnRpZmllciwgIlJlY2VpdmVkIHNhbXBsZSB3aXRoIGEgbnVsbCBmb3JtYXREZXNjcmlw
dGlvbi4gQmFpbGluZy4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBhdXRvIG1lZGlh
VHlwZSA9IENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24p
OworICAgIGF1dG8gbWVkaWFUeXBlID0gUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFU
eXBlKGZvcm1hdERlc2NyaXB0aW9uKTsKIAogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZp
ZGVvVHJhY2tJRCkgewogICAgICAgICAvLyBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciB3aWxs
IHRocm93IGFuIHVuLWRvY3VtZW50ZWQgZXhjZXB0aW9uIGlmIHBhc3NlZCBhIHNhbXBsZQpAQCAt
MTEyMCw3ICsxMTE5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1
ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAogICAgICAgICB9CiAKICAg
ICAgICAgYXV0byBwbGF5ZXIgPSB0aGlzLT5wbGF5ZXIoKTsKLSAgICAgICAgRmxvYXRTaXplIGZv
cm1hdFNpemUgPSBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0
aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgICAgICBG
bG9hdFNpemUgZm9ybWF0U2l6ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRy
dWUpKTsKICAgICAgICAgaWYgKCFtX2NhY2hlZFNpemUgfHwgZm9ybWF0U2l6ZSAhPSBtX2NhY2hl
ZFNpemUudmFsdWUoKSkgewogICAgICAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVy
LCAic2l6ZSBjaGFuZ2VkIHRvICIsIGZvcm1hdFNpemUpOwogICAgICAgICAgICAgYm9vbCBzaXpl
V2FzTnVsbCA9ICFtX2NhY2hlZFNpemU7CkBAIC0xMTQ2LDkgKzExNDUsOSBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBz
YW1wbGUsIGNvbnN0CiAKICAgICAgICAgICAgIGlmICghaGF2ZVByZXJvbGxEZWNvZGVXaXRoQ29t
cGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdT
YW1wbGVDb3B5OwotICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsICZy
YXdTYW1wbGVDb3B5KTsKKyAgICAgICAgICAgICAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRl
Q29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVC
dWZmZXIsICZyYXdTYW1wbGVDb3B5KTsKICAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUNvcHkg
PSBhZG9wdENGKHJhd1NhbXBsZUNvcHkpOwotICAgICAgICAgICAgICAgIENNU2V0QXR0YWNobWVu
dChzYW1wbGVDb3B5LmdldCgpLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3Rp
ZmljYXRpb25XaGVuQ29uc3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9fYnJp
ZGdlIE5TU3RyaW5nICopa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0
aW9uV2hlbkNvbnN1bWVkIDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9w
YWdhdGUpOworICAgICAgICAgICAgICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUNvcHku
Z2V0KCksIFBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9u
V2hlbkNvbnN1bWVkLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7IChfX2JyaWRnZSBOU1N0
cmluZyAqKVBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9u
V2hlbkNvbnN1bWVkIDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9wYWdh
dGUpOwogICAgICAgICAgICAgICAgIFttX2Rpc3BsYXlMYXllciBlbnF1ZXVlU2FtcGxlQnVmZmVy
OnNhbXBsZUNvcHkuZ2V0KCldOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgICAg
ICAgICAgcGxheWVyLT5zZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHRydWUpOwpAQCAtMTI5OCwx
NCArMTI5NywxNCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGll
bnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9tUwogYm9vbCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6Y2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25z
dCBBdG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nKSBjb25zdAogewogICAgIHJldHVybiBwYXJzZUlu
dGVnZXJBbGxvd2luZ1RyYWlsaW5nSnVuazx1aW50NjRfdD4odHJhY2tJRFN0cmluZykudmFsdWVf
b3IoMCkgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lECi0gICAgICAgICYmIFtnZXRBVlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVj
dG9yKGV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6KV07
CisgICAgICAgICYmIFtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBp
bnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoZXhwZWN0TWluaW11bVVwY29taW5n
U2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTopXTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6c2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBB
dG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nLCBjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRp
bWUpCiB7CiAgICAgQVNTRVJUKGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUo
dHJhY2tJRFN0cmluZykpOwogICAgIGlmIChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRp
b25UaW1lKHRyYWNrSURTdHJpbmcpKQotICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZXhwZWN0TWlu
aW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTp0b0NNVGltZShwcmVzZW50
YXRpb25UaW1lKV07CisgICAgICAgIFttX2Rpc3BsYXlMYXllciBleHBlY3RNaW5pbXVtVXBjb21p
bmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOlBBTDo6dG9DTVRpbWUocHJlc2VudGF0aW9u
VGltZSldOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjbGVhck1pbmlt
dW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRFN0cmlu
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1Nv
dXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5kZXggZTZkZmNiMzQ5NmY5MmQy
YWEyMWY4NzY4NDY0ODA4YjE2MWQ1Nzc2Yi4uYjVkOGY1MzZhMjA3OGY5NGU0NGRhYzcxODM1NzEz
NTg4ZGY0MzE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAgLTI1OCw4
ICsyNTgsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQYXJzZXJXZWJNOjpTdGF0ZT4gewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7Ci0KIHN0YXRpYyBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgeyBy
ZXR1cm4gTG9nTWVkaWE7IH0KIHN0YXRpYyBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJl
dHVybiAiU291cmNlQnVmZmVyUGFyc2VyV2ViTSI7IH0KIApAQCAtMTA1Nyw3ICsxMDU1LDcgQEAg
d2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJhbWUoY29uc3QgRnJhbWVN
ZXRhZGF0YSYgbWV0YWRhdGEsIFJlYWQKICAgICAgICAgcmV0dXJuIFNraXAocmVhZGVyLCBieXRl
c1JlbWFpbmluZyk7CiAgICAgfQogCi0gICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZyYW1l
RGF0YSgqcmVhZGVyLCBtZXRhZGF0YSwgYnl0ZXNSZW1haW5pbmcsIENNVGltZU1ha2UoYmxvY2st
PnRpbWVjb2RlICsgbV9jdXJyZW50VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9m
cmFtZXMpOworICAgIHJldHVybiB0cmFja0RhdGEtPmNvbnN1bWVGcmFtZURhdGEoKnJlYWRlciwg
bWV0YWRhdGEsIGJ5dGVzUmVtYWluaW5nLCBQQUw6OkNNVGltZU1ha2UoYmxvY2stPnRpbWVjb2Rl
ICsgbV9jdXJyZW50VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9mcmFtZXMpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnByb3ZpZGVNZWRpYURhdGEoUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzYW1wbGVCdWZmZXIsIHVpbnQ2NF90IHRyYWNrSUQsIHN0
ZDo6b3B0aW9uYWw8c2l6ZV90PiBieXRlUmFuZ2VPZmZzZXQpCkBAIC0xMDgxLDcgKzEwNzksNyBA
QCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNv
bnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgIENNQmxvY2tCdWZmZXJSZWYgcmF3QmxvY2tC
dWZmZXIgPSBudWxscHRyOwogCiAgICAgaWYgKCFtX2N1cnJlbnRCbG9ja0J1ZmZlcikgewotICAg
ICAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxs
b2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgMCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKKyAgICAg
ICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVm
YXVsdCwgbnVsbHB0ciwgMCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKICAg
ICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJM
RSgiQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCBlcnJvciIs
IGVycik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7
CkBAIC0xMDkwLDcgKzEwODgsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6VmlkZW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgICAgICBt
X2N1cnJlbnRCbG9ja0J1ZmZlciA9IGFkb3B0Q0YocmF3QmxvY2tCdWZmZXIpOwogICAgICAgICBt
X2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uID0gMDsKIAotICAgICAgICBlcnIgPSBDTUJsb2Nr
QnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOworICAg
ICAgICBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRC
bG9ja0J1ZmZlci5nZXQoKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFBBUlNF
Ul9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFj
a2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJl
dHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKQEAgLTExMDEsNyArMTA5OSw3IEBA
IHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29u
c3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgd2hpbGUgKGJ5dGVzVG9SZWFkKSB7CiAgICAg
ICAgIHNpemVfdCBzZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwogICAgICAgICB1aW50OF90KiBi
bG9ja0J1ZmZlckRhdGEgPSBudWxscHRyOwotICAgICAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZm
ZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50Qmxv
Y2tCdWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIq
KikmYmxvY2tCdWZmZXJEYXRhKTsKKyAgICAgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZm
ZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50Qmxv
Y2tCdWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIq
KikmYmxvY2tCdWZmZXJEYXRhKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFS
U0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyIGZh
aWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIs
IGJ5dGVzUmVtYWluaW5nKTsKQEAgLTExMzUsNyArMTEzMyw3IEBAIHZvaWQgU291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRp
bWUmIHByCiAjaWYgRU5BQkxFKFZQOSkKICAgICB1aW50OF90KiBibG9ja0J1ZmZlckRhdGEgPSBu
dWxscHRyOwogICAgIHNpemVfdCBzZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwotICAgIGF1dG8g
ZXJyID0gQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdl
dCgpLCAwLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioqKSZibG9ja0J1
ZmZlckRhdGEpOworICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50
ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIDAsICZzZWdtZW50U2l6ZUF0UG9zaXRpb24s
IG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0YSk7CiAgICAgaWYgKGVycikgewogICAg
ICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0RGF0YVBv
aW50ZXIgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICByZXR1cm47CkBAIC0xMTc5
LDkgKzExNzcsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRh
OjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogICAgICAgICBkdXJhdGlvbiA9
IHRyYWNrLmRlZmF1bHRfZHVyYXRpb24udmFsdWUoKSAqIHByZXNlbnRhdGlvblRpbWUudGltZXNj
YWxlIC8gMTAwMDAwMDAwMDsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZl
ciA9IG51bGxwdHI7Ci0gICAgc2l6ZV90IGZyYW1lU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRh
TGVuZ3RoKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKLSAgICBDTVNhbXBsZVRpbWluZ0lu
Zm8gdGltaW5nID0geyBDTVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRpbWVz
Y2FsZSksIHByZXNlbnRhdGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKLSAgICBlcnIgPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJs
b2NrQnVmZmVyLmdldCgpLCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVD
b3VudCwgMSwgJnRpbWluZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CisgICAg
c2l6ZV90IGZyYW1lU2l6ZSA9IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9jdXJy
ZW50QmxvY2tCdWZmZXIuZ2V0KCkpOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmcgPSB7
IFBBTDo6Q01UaW1lTWFrZShkdXJhdGlvbiwgcHJlc2VudGF0aW9uVGltZS50aW1lc2NhbGUpLCBw
cmVzZW50YXRpb25UaW1lLCBwcmVzZW50YXRpb25UaW1lIH07CisgICAgZXJyID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJsb2Nr
QnVmZmVyLmdldCgpLCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVDb3Vu
dCwgMSwgJnRpbWluZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYg
KGVycikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5IGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtMTE5MSw3ICsxMTg5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRl
b1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICBtX2N1
cnJlbnRCbG9ja0J1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3Np
dGlvbiA9IDA7CiAKLSAgICBhdXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKKyAgICBh
dXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOwogICAgIEFTU0VSVChhdHRhY2ht
ZW50c0FycmF5KTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpIHsKICAgICAgICAgUEFSU0VS
X0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50
c0FycmF5IHJldHVybmVkIE5VTEwiKTsKQEAgLTEyMDEsNyArMTE5OSw3IEBAIHZvaWQgU291cmNl
QnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25z
dCBDTVRpbWUmIHByCiAgICAgaWYgKCFpc0tleSkgewogICAgICAgICBmb3IgKENGSW5kZXggaSA9
IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7
ICsraSkgewogICAgICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9
IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgICAgIENGRGljdGlvbmFyeVNl
dFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMsIGtDRkJv
b2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRz
LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYywga0NGQm9vbGVhblRydWUpOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC0xMjgyLDEyICsxMjgwLDEyIEBAIHdlYm06OlN0YXR1cyBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3
ZWJtOjpSZWFkCiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmlu
Zyk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIHN0cmVhbURlc2NyaXB0aW9uID0gQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3JtYXREZXNjcmlw
dGlvbi5nZXQoKSk7CisgICAgICAgIGF1dG8gc3RyZWFtRGVzY3JpcHRpb24gPSBQQUw6OkNNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24oZm9ybWF0RGVzY3Jp
cHRpb24uZ2V0KCkpOwogICAgICAgICBpZiAoIXN0cmVhbURlc2NyaXB0aW9uKSB7CiAgICAgICAg
ICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGZhaWxlZCIpOwogICAgICAgICAgICAgcmV0dXJu
IFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwogICAgICAgICB9Ci0gICAgICAgIG1fcGFj
a2V0RHVyYXRpb24gPSBDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFj
a2V0LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOworICAgICAgICBtX3BhY2tldER1
cmF0aW9uID0gUEFMOjpDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFj
a2V0LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOwogCiAgICAgICAgIHNldEZvcm1h
dERlc2NyaXB0aW9uKFdURk1vdmUoZm9ybWF0RGVzY3JpcHRpb24pKTsKICAgICB9IGVsc2UgaWYg
KGNvZGVjKCkgPT0gQ29kZWNUeXBlOjpPcHVzKSB7CkBAIC0xMzA5LDcgKzEzMDcsNyBAQCB3ZWJt
OjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNvbnN1bWVG
cmFtZURhdGEod2VibTo6UmVhZAogICAgIG1fY3VycmVudFBhY2tldEJ5dGVPZmZzZXQgPSBzdGQ6
Om51bGxvcHQ7CiAgICAgbV9jdXJyZW50UGFja2V0U2l6ZSA9IHN0ZDo6bnVsbG9wdDsKIAotICAg
IGF1dG8gc2FtcGxlRHVyYXRpb24gPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZVN1YnRyYWN0KHBy
ZXNlbnRhdGlvblRpbWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgQ01UaW1lR2V0U2Vj
b25kcyhtX3BhY2tldER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OworICAgIGF1dG8gc2FtcGxlRHVy
YXRpb24gPSBQQUw6OkNNVGltZUdldFNlY29uZHMoUEFMOjpDTVRpbWVTdWJ0cmFjdChwcmVzZW50
YXRpb25UaW1lLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUpKSArIFBBTDo6Q01UaW1lR2V0U2Vj
b25kcyhtX3BhY2tldER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OwogICAgIGlmIChzYW1wbGVEdXJh
dGlvbiA+PSBtX21pbmltdW1TYW1wbGVEdXJhdGlvbikKICAgICAgICAgY3JlYXRlU2FtcGxlQnVm
ZmVyKG1ldGFkYXRhLnBvc2l0aW9uKTsKIApAQCAtMTMyNCwyMSArMTMyMiwyMSBAQCB2b2lkIFNv
dXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIo
c3RkOjpvcHRpb25hbDxzaQogICAgIEFTU0VSVCghbV9wYWNrZXREYXRhLmlzRW1wdHkoKSk7CiAK
ICAgICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVy
ciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1
bHQsIG51bGxwdHIsIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZl
ckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CisgICAgYXV0byBlcnIgPSBQQUw6
OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwg
bnVsbHB0ciwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZlckFz
c3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1l
bW9yeUJsb2NrIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgZXJyID0gQ01C
bG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMobV9wYWNrZXREYXRhLmRhdGEoKSwgYnVmZmVyLmdl
dCgpLCAwLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSk7CisgICAgZXJyID0gUEFMOjpDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhtX3BhY2tldERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0
KCksIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0
YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgZXJy
ID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0
KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1l
LCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOworICAgIGVy
ciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0
aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9u
KCkuZ2V0KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRp
b25UaW1lLCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOwog
ICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGgg
JWQiLCBlcnIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCmluZGV4IGU5
Zjg2ZGVhNDM4ZTg5NWU2M2RiZGUwN2M0ZDk1ZjliNWFlZjE4Y2MuLmFhNzM2Y2YxNDlhNDc0YmEy
NjNjYWFjZDY2NDJkZTc4Zjc3ODg3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCkBAIC00Nyw3
ICs0Nyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsK
IHVzaW5nIG5hbWVzcGFjZSB3ZWJtOwogCiBWUDlUZXN0aW5nT3ZlcnJpZGVzJiBWUDlUZXN0aW5n
T3ZlcnJpZGVzOjpzaW5nbGV0b24oKQpAQCAtMzYyLDExICszNjEsMTEgQEAgc3RhdGljIENGU3Ry
aW5nUmVmIGNvbnZlcnRUb0NNQ29sb3JQcmltYXJpZXModWludDhfdCBwcmltYXJpZXMpCiAgICAg
Y2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfU1RfMjQwOgogICAgICAg
ICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJDb2xvclByaW1hcmllc19TTVBURV9DOwogICAgIGNhc2Ug
VlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX1JQXzQzMV8yOgotICAgICAgICBy
ZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7CisgICAgICAg
IHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzOwog
ICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX0VHXzQzMl8xOgot
ICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjU7
CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
UDNfRDY1OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OkJUXzIwMjBf
Tm9uY29uc3RhbnRfTHVtaW5hbmNlOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRp
b25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CiAgICAgfQogCiAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC00MjAsMTggKzQxOSwxOCBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29u
dmVydFRvQ01UcmFuc2ZlckZ1bmN0aW9uKHVpbnQ4X3QgY2hhcmFjdGVyaXN0aWNzKQogICAgIGNh
c2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OlNNUFRFX1NUXzI0MDoK
ICAgICAgICAgcmV0dXJuIGtDVkltYWdlQnVmZmVyVHJhbnNmZXJGdW5jdGlvbl9TTVBURV8yNDBN
XzE5OTU7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6
U01QVEVfU1RfMjA4NDoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BROworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUTsKICAgICBjYXNl
IFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpCVF8yMDIwXzEwYml0Ogog
ICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBf
MTJiaXQ6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjA7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFu
c2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfNDI4XzE6Ci0gICAgICAgIHJldHVybiBrQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzE7CisgICAgICAg
IHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9T
VF80MjhfMTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNz
OjpCVF8yMTAwX0hMRzoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRzsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHOwogICAgIGNhc2UgVlBD
b25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OklFQ182MTk2Nl8yXzE6Ci0gICAg
ICAgIHJldHVybiBjYW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fc1JHQigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgOiBudWxscHRyOworICAgICAgICByZXR1cm4gUEFMOjpj
YW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JH
QigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9zUkdCKCkgOiBudWxscHRyOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJD
aGFyYWN0ZXJpc3RpY3M6OkxpbmVhcjoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CiAgICAgfQogCiAgICAgcmV0dXJu
IG51bGxwdHI7CkBAIC00NjcsNyArNDY2LDcgQEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZlcnRU
b0NNWUNiQ1JNYXRyaXgodWludDhfdCBjb2VmZmljaWVudHMpCiB7CiAgICAgc3dpdGNoIChjb2Vm
ZmljaWVudHMpIHsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6
QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXRE
ZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtD
TUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29u
ZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNDcwXzdfQkc6CiAgICAgY2FzZSBWUENv
bmZpZ3VyYXRpb25NYXRyaXhDb2VmZmljaWVudHM6OkJUXzYwMV83OgogICAgICAgICByZXR1cm4g
a0NWSW1hZ2VCdWZmZXJZQ2JDck1hdHJpeF9JVFVfUl82MDFfNDsKQEAgLTU0MywxMSArNTQyLDEx
IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlRm9ybWF0
RGVzY3JpcHRpb25Gcm9tVlBDb2RlY0NvbmZpCiAgICAgQ0ZUeXBlUmVmIGNvbmZpZ3VyYXRpb25W
YWx1ZXNbXSA9IHsgZGF0YS5nZXQoKSB9OwogICAgIGF1dG8gY29uZmlndXJhdGlvbkRpY3QgPSBh
ZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb25maWd1cmF0
aW9uS2V5cywgY29uZmlndXJhdGlvblZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChjb25maWd1cmF0
aW9uS2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9u
YXJ5VmFsdWVDYWxsQmFja3MpKTsKIAotICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNL
ZXlzIHsga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRl
bnNpb25BdG9tcyB9OworICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNLZXlzIHsgUEFM
OjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lv
bkF0b21zIH07CiAgICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc1ZhbHVlcyA9IHsgY29u
ZmlndXJhdGlvbkRpY3QuZ2V0KCkgfTsKIAogICAgIGlmIChyZWNvcmQudmlkZW9GdWxsUmFuZ2VG
bGFnID09IFZQQ29uZmlndXJhdGlvblJhbmdlOjpGdWxsUmFuZ2UpIHsKLSAgICAgICAgZXh0ZW5z
aW9uc0tleXMuYXBwZW5kKGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZp
ZGVvKTsKKyAgICAgICAgZXh0ZW5zaW9uc0tleXMuYXBwZW5kKFBBTDo6a0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOwogICAgICAgICBleHRlbnNpb25zVmFsdWVz
LmFwcGVuZChrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24u
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb24ubW0KaW5kZXggY2VhMTU2YWUyZmJlMjVhZGEwMDc2NjhlOTFkNTBlNTYx
YzY0MmU0ZS4uN2I1MzhiMWU5OGVmODk5NTVlZWU4Zjc5ODRhNTM3MDBlMTkzN2I3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQpAQCAtNDMsOSArNDMsMTEgQEAK
ICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJWaWRlb1Rvb2xib3hTb2Z0
TGluay5oIgogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCi1XVEZfREVDTEFSRV9DRl9UWVBFX1RS
QUlUKENNU2FtcGxlQnVmZmVyKTsKKy8vIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1w
bGVCdWZmZXIpOwordGVtcGxhdGUgPD4KK3N0cnVjdCBXVEY6OkNGVHlwZVRyYWl0PENNU2FtcGxl
QnVmZmVyUmVmPiB7CisgICAgc3RhdGljIGlubGluZSBDRlR5cGVJRCB0eXBlSUQodm9pZCkgeyBy
ZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCgpOyB9Cit9OwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTcyLDcgKzc0LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OnNldFRpbWViYXNlKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNlUmVtb3ZlVGltZXJE
aXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAg
ICAgICAgUEFMOjpDTVRpbWViYXNlUmVtb3ZlVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNl
LmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAgIG1fdGltZWJhc2UgPSB0aW1lYmFz
ZTsKIApAQCAtODQsNyArODYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
c2V0VGltZWJhc2UoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgZGlzcGF0Y2hfYWN0aXZhdGUobV90aW1lclNvdXJjZS5nZXQoKSk7CiAgICAgICAg
IH0KLSAgICAgICAgQ01UaW1lYmFzZUFkZFRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5n
ZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZUFkZFRp
bWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7
CiAgICAgfQogfQogCkBAIC0xMDQsMTIgKzEwNiwxMiBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6bWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKQogdm9pZCBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyLCBib29sIGRpc3BsYXlpbmcpCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNv
dW50ID0gMDsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkoc2FtcGxlQnVmZmVyLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKKyAgICBpZiAo
bm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1w
bGVCdWZmZXIsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5n
SW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWlu
Z0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgaXRlbUNvdW50
LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gQ01CdWZmZXJDYWxsYmFja3MgY29udGFpbnMgNjQtYml0IHBvaW50ZXJzIHRoYXQgYXJl
bid0IDgtYnl0ZSBhbGlnbmVkLiBUbyBzdXBwcmVzcyB0aGUgbGlua2VyCkBAIC0xMzQsNyArMTM2
LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLAogICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVv
ZihjYWxsYmFja3MuY2FsbGJhY2tzLnZlcnNpb24pID09IHNpemVvZih1aW50MzJfdCksICJWZXJz
aW9uIGZpZWxkIG11c3QgYmUgNCBieXRlcyIpOwogICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdu
b2YoQnVmZmVyQ2FsbGJhY2tzKSA9PSA0LCAiQ01CdWZmZXJDYWxsYmFja3Mgc3RydWN0IG11c3Qg
aGF2ZSA0IGJ5dGUgYWxpZ25tZW50Iik7CiAKLSAgICAgICAgQ01CdWZmZXJRdWV1ZUNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNr
cywgJm91dFF1ZXVlKTsKKyAgICAgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0
UXVldWUpOwogICAgICAgICBtX3Byb2R1Y2VyUXVldWUgPSBhZG9wdENGKG91dFF1ZXVlKTsKICAg
ICB9CiAKQEAgLTE1Niw3ICsxNTgsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6ZW5xdWV1ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsCiAgICAgICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKGNhbGxiYWNrcy5jYWxsYmFja3MudmVyc2lvbikgPT0gc2l6
ZW9mKHVpbnQzMl90KSwgIlZlcnNpb24gZmllbGQgbXVzdCBiZSA0IGJ5dGVzIik7CiAgICAgICAg
IHN0YXRpY19hc3NlcnQoYWxpZ25vZihCdWZmZXJDYWxsYmFja3MpID09IDQsICJDTUJ1ZmZlckNh
bGxiYWNrcyBzdHJ1Y3QgYWxpZ25tZW50IG11c3QgYmUgNCIpOwogCi0gICAgICAgIENNQnVmZmVy
UXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxi
YWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNh
bGxiYWNrcywgJm91dFF1ZXVlKTsKICAgICAgICAgbV9jb25zdW1lclF1ZXVlID0gYWRvcHRDRihv
dXRRdWV1ZSk7CiAgICAgfQogCkBAIC0xNzcsMjAgKzE3OSwyMCBAQCBib29sIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6c2hvdWxkRGVjb2RlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZSwgYgogICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBhdXRvIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSk7
Ci0gICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNl
bnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOwotICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1
ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7Ci0gICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0g
Q01UaW1lQWRkKHByZXNlbnRhdGlvblN0YXJ0VGltZSwgZHVyYXRpb24pOwotICAgIGlmIChDTVRp
bWVDb21wYXJlKHByZXNlbnRhdGlvbkVuZFRpbWUsIGN1cnJlbnRUaW1lKSA+PSAwKQorICAgIGF1
dG8gY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkp
OworICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKKyAgICBhdXRvIHByZXNlbnRhdGlv
bkVuZFRpbWUgPSBQQUw6OkNNVGltZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9u
KTsKKyAgICBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKHByZXNlbnRhdGlvbkVuZFRpbWUsIGN1cnJl
bnRUaW1lKSA+PSAwKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIENGQXJyYXlSZWYgYXR0
YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxl
LCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAgIGlmICghYXR0
YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgZm9yIChDRkluZGV4IGluZGV4
ID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHMpOyBpbmRleCA8IGNvdW50
OyArK2luZGV4KSB7CiAgICAgICAgIENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCA9IChD
RkRpY3Rpb25hcnlSZWYpQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50cywgaW5kZXgp
OwotICAgICAgICBDRkJvb2xlYW5SZWYgZGVwZW5kZWRPbiA9IChDRkJvb2xlYW5SZWYpQ0ZEaWN0
aW9uYXJ5R2V0VmFsdWUoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNE
ZXBlbmRlZE9uQnlPdGhlcnMpOworICAgICAgICBDRkJvb2xlYW5SZWYgZGVwZW5kZWRPbiA9IChD
RkJvb2xlYW5SZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0YWNobWVudERpY3QsIFBBTDo6a0NN
U2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycyk7CiAgICAgICAgIGlmIChk
ZXBlbmRlZE9uICYmICFDRkJvb2xlYW5HZXRWYWx1ZShkZXBlbmRlZE9uKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0yMDMsMTQgKzIwNSwxNCBAQCB2b2lkIFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5zdXJlRGVjb21wcmVzc2lvblNlc3Npb25Gb3JTYW1wbGUo
Q01TYW1wbGVCdQogICAgIGlmIChpc0ludmFsaWRhdGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0g
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOworICAgIENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZSk7CiAgICAgaWYgKG1fZGVjb21wcmVz
c2lvblNlc3Npb24gJiYgIVZURGVjb21wcmVzc2lvblNlc3Npb25DYW5BY2NlcHRGb3JtYXREZXNj
cmlwdGlvbihtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdldCgpLCB2aWRlb0Zvcm1hdERlc2NyaXB0
aW9uKSkgewogICAgICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91
c0ZyYW1lcyhtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdldCgpKTsKICAgICAgICAgbV9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKCFtX2RlY29tcHJlc3Np
b25TZXNzaW9uKSB7Ci0gICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zv
cm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1w
bGUpOworICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNj
cmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUp
OwogICAgICAgICBhdXRvIHZpZGVvRGVjb2RlclNwZWNpZmljYXRpb24gPSBAeyAoX19icmlkZ2Ug
TlNTdHJpbmcgKilrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNj
ZWxlcmF0ZWRWaWRlb0RlY29kZXI6IEAoIG1faGFyZHdhcmVEZWNvZGVyRW5hYmxlZCApIH07CiAK
ICAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzOwpAQCAtMjU2LDcgKzI1OCw3IEBAIHZv
aWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpkZWNvZGVTYW1wbGUoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlLCBib29sIGRpCiAKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSA9IE1v
bm90b25pY1RpbWU6Om5vdygpOwogICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFt
ZVdpdGhPdXRwdXRIYW5kbGVyKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCksIHNhbXBsZSwg
ZmxhZ3MsIG51bGxwdHIsIFt0aGlzLCBkaXNwbGF5aW5nLCBzdGFydFRpbWVdKE9TU3RhdHVzIHN0
YXR1cywgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLCBDVkltYWdlQnVmZmVyUmVmIGltYWdl
QnVmZmVyLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUgcHJlc2VudGF0aW9u
RHVyYXRpb24pIHsKLSAgICAgICAgZG91YmxlIGRlbHRhUmF0aW8gPSAoTW9ub3RvbmljVGltZTo6
bm93KCkgLSBzdGFydFRpbWUpLnNlY29uZHMoKSAvIENNVGltZUdldFNlY29uZHMocHJlc2VudGF0
aW9uRHVyYXRpb24pOworICAgICAgICBkb3VibGUgZGVsdGFSYXRpbyA9IChNb25vdG9uaWNUaW1l
Ojpub3coKSAtIHN0YXJ0VGltZSkuc2Vjb25kcygpIC8gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKHBy
ZXNlbnRhdGlvbkR1cmF0aW9uKTsKIAogICAgICAgICB1cGRhdGVRb3NXaXRoRGVjb2RlVGltZVN0
YXRpc3RpY3MoZGVsdGFSYXRpbyk7CiAgICAgICAgIGhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQo
ZGlzcGxheWluZywgc3RhdHVzLCBpbmZvRmxhZ3MsIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25U
aW1lU3RhbXAsIHByZXNlbnRhdGlvbkR1cmF0aW9uKTsKQEAgLTI4OSw3ICsyOTEsNyBAQCB2b2lk
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChi
b29sIGRpc3BsYXlpbmcsIE9TUwogICAgICAgICArK21fZHJvcHBlZFZpZGVvRnJhbWVzOwogCiAg
ICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24g
PSBudWxscHRyOwotICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgbm9FcnIgIT0gQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
cmF3SW1hZ2VCdWZmZXIsICZyYXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uKSkgeworICAgIGlmIChz
dGF0dXMgIT0gbm9FcnIgfHwgbm9FcnIgIT0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwg
JnJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24pKSB7CiAgICAgICAgICsrbV9jb3JydXB0ZWRWaWRl
b0ZyYW1lczsKICAgICAgICAgLS1tX2ZyYW1lc0JlaW5nRGVjb2RlZDsKICAgICAgICAgbWF5YmVC
ZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTMwNCw3ICszMDYsNyBAQCB2b2lkIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChib29s
IGRpc3BsYXlpbmcsIE9TUwogICAgIH07CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdJbWFn
ZVNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VC
dWZmZXIsIGltYWdlQnVmZmVyRGVzY3JpcHRpb24uZ2V0KCksICZpbWFnZUJ1ZmZlclRpbWluZywg
JnJhd0ltYWdlU2FtcGxlQnVmZmVyKSkgeworICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxl
QnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3
SW1hZ2VCdWZmZXIsIGltYWdlQnVmZmVyRGVzY3JpcHRpb24uZ2V0KCksICZpbWFnZUJ1ZmZlclRp
bWluZywgJnJhd0ltYWdlU2FtcGxlQnVmZmVyKSkgewogICAgICAgICArK21fY29ycnVwdGVkVmlk
ZW9GcmFtZXM7CiAgICAgICAgIC0tbV9mcmFtZXNCZWluZ0RlY29kZWQ7CiAgICAgICAgIG1heWJl
QmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMTgsMTEgKzMyMCwxMSBAQCB2b2lk
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChi
b29sIGRpc3BsYXlpbmcsIE9TUwogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVvRnJhbWUoKQogewotICAgIGlmICgh
bV9wcm9kdWNlclF1ZXVlIHx8IENNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpCisgICAgaWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgUEFMOjpDTUJ1ZmZlclF1ZXVlSXNF
bXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0Yo
Y2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFu
ZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpQ01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKKyAgICBSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNh
bXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKSk7CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdl
QnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVm
ZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOwogICAgIEFTU0VSVChDRkdldFR5cGVJRChpbWFnZUJ1
ZmZlci5nZXQoKSkgPT0gQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJRCgpKTsKIAogICAgIG1heWJlQmVj
b21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMzUsMjUgKzMzNywyNSBAQCB2b2lkIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSgpCiAgICAgaWYgKCFt
X3RpbWViYXNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKKyAgICBhdXRvIHRp
bWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5n
ZXQoKSkpOwogICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0
b21hdGljRGVxdWV1ZSglcCkgLSBwdXJnaW5nIGFsbCBzYW1wbGVzIGJlZm9yZSB0aW1lKCVzKSIs
IHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgTWVkaWFUaW1lIG5l
eHRGaXJlVGltZSA9IE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKICAgICBib29s
IHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gZmFsc2U7CiAKLSAgICB3aGlsZSAoQ01TYW1wbGVCdWZm
ZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENN
QnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1l
ZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxl
QnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1l
ZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJh
dGlvbihmaXJzdFNhbXBsZSkpOworICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNh
bXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUg
cHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlh
VGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1
cmF0aW9uKGZpcnN0U2FtcGxlKSk7CiAgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRU
aW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1lc3RhbXAgKyBkdXJhdGlvbjsKICAgICAgICAgaWYg
KHRpbWUgPiBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXApIHsKLSAgICAgICAgICAgIENGUmVsZWFz
ZShDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsK
KyAgICAgICAgICAgIENGUmVsZWFzZShQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWlu
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVsZWFzZWRJbWFnZUJ1ZmZl
cnMgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogI2lmICFMT0df
RElTQUJMRUQKLSAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJR
dWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkp
OwotICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVu
ZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAg
YXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgIGF1
dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50
YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgIExPRyhNZWRp
YSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSglcCkgLSBx
dWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9T
dHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCkBAIC0zNjUsNyArMzY3LDcgQEAg
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoKQogICAg
ICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwogCiAgICAgTE9HKE1lZGlh
LCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHF1
ZXVlIGVtcHR5IiwgdGhpcyk7Ci0gICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VO
ZXh0RmlyZVRpbWUobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0
b0NNVGltZShuZXh0RmlyZVRpbWUpLCAwKTsKKyAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRp
c3BhdGNoU291cmNlTmV4dEZpcmVUaW1lKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2Uu
Z2V0KCksIFBBTDo6dG9DTVRpbWUobmV4dEZpcmVUaW1lKSwgMCk7CiB9CiAKIHZvaWQgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGUsIGJvb2wgZGlzcGxheWluZykKQEAgLTM4MywxNyArMzg1LDE3IEBAIHZvaWQg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGUsCiAgICAgYm9vbCBzaG91bGROb3RpZnkgPSB0cnVlOwogCiAgICAg
aWYgKGRpc3BsYXlpbmcgJiYgbV90aW1lYmFzZSkgewotICAgICAgICBhdXRvIGN1cnJlbnRSYXRl
ID0gQ01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7Ci0gICAgICAgIGF1dG8gY3Vy
cmVudFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2Uu
Z2V0KCkpKTsKLSAgICAgICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOwot
ICAgICAgICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBwcmVzZW50YXRpb25TdGFydFRpbWUg
KyBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKSk7Cisg
ICAgICAgIGF1dG8gY3VycmVudFJhdGUgPSBQQUw6OkNNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJh
c2UuZ2V0KCkpOworICAgICAgICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQ
QUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBw
cmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7CisgICAgICAgIGF1dG8gcHJlc2Vu
dGF0aW9uRW5kVGltZSA9IHByZXNlbnRhdGlvblN0YXJ0VGltZSArIFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSkpOwogICAgICAgICBpZiAoY3Vy
cmVudFRpbWUgPCBwcmVzZW50YXRpb25TdGFydFRpbWUgfHwgY3VycmVudFRpbWUgPj0gcHJlc2Vu
dGF0aW9uRW5kVGltZSkKICAgICAgICAgICAgIHNob3VsZE5vdGlmeSA9IGZhbHNlOwogCiAgICAg
ICAgIGlmIChjdXJyZW50UmF0ZSA+IDAgJiYgcHJlc2VudGF0aW9uRW5kVGltZSA8IGN1cnJlbnRU
aW1lKSB7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6
dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgICAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVk
aWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKCVwKSAtIGRyb3BwaW5nIGZyYW1lIGxh
dGUgYnkgJXMsIGZyYW1lc0JlaW5nRGVjb2RlZCglZCksIHByb2R1Y2VyUXVldWUoJXMgLT4gJXMp
IiwgdGhpcywgdG9TdHJpbmcocHJlc2VudGF0aW9uRW5kVGltZSAtIGN1cnJlbnRUaW1lKS51dGY4
KCkuZGF0YSgpLCBtX2ZyYW1lc0JlaW5nRGVjb2RlZCwgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5k
YXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKICAgICAgICAgICAg
ICsrbV9kcm9wcGVkVmlkZW9GcmFtZXM7CkBAIC00MDEsMTcgKzQwMywxNyBAQCB2b2lkIFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlLAogICAgICAgICB9CiAgICAgfQogCi0gICAgQ01CdWZmZXJRdWV1ZUVucXVl
dWUobV9wcm9kdWNlclF1ZXVlLmdldCgpLCBzYW1wbGUpOworICAgIFBBTDo6Q01CdWZmZXJRdWV1
ZUVucXVldWUobV9wcm9kdWNlclF1ZXVlLmdldCgpLCBzYW1wbGUpOwogCiAjaWYgIUxPR19ESVNB
QkxFRAotICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRG
aXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBh
dXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBhdXRvIHByZXNlbnRhdGlv
blRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKHNhbXBsZSkpOworICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOworICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVy
UXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7
CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOwogICAgIExPRyhNZWRp
YSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoJXAp
IC0gcHJlc2VudGF0aW9uVGltZSglcyksIGZyYW1lc0JlaW5nRGVjb2RlZCglZCksIHByb2R1Y2Vy
UXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcocHJlc2VudGF0aW9uVGltZSkudXRmOCgp
LmRhdGEoKSwgbV9mcmFtZXNCZWluZ0RlY29kZWQsIHRvU3RyaW5nKGJlZ2luKS51dGY4KCkuZGF0
YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAKICAgICBpZiAobV90
aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJ
bW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAg
ICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5
KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgaWYgKCFtX2hh
c0F2YWlsYWJsZUZyYW1lQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKQEAgLTQyNiw3ICs0Mjgs
NyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1w
bGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLAogCiBib29sIFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6aXNSZWFkeUZvck1vcmVNZWRpYURhdGEoKSBjb25zdAogewotICAgIENNSXRlbUNv
dW50IHByb2R1Y2VyQ291bnQgPSBtX3Byb2R1Y2VyUXVldWUgPyBDTUJ1ZmZlclF1ZXVlR2V0QnVm
ZmVyQ291bnQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSA6IDA7CisgICAgQ01JdGVtQ291bnQgcHJv
ZHVjZXJDb3VudCA9IG1fcHJvZHVjZXJRdWV1ZSA/IFBBTDo6Q01CdWZmZXJRdWV1ZUdldEJ1ZmZl
ckNvdW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOwogICAgIHJldHVybiBtX2ZyYW1lc0Jl
aW5nRGVjb2RlZCArIHByb2R1Y2VyQ291bnQgPD0ga0hpZ2hXYXRlck1hcms7CiB9CiAKQEAgLTQ1
Miw3ICs0NTQsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c3RvcFJlcXVl
c3RpbmdNZWRpYURhdGEoKQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90
aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNhbGxi
YWNrKQogewotICAgIGlmIChjYWxsYmFjayAmJiBtX3Byb2R1Y2VyUXVldWUgJiYgIUNNQnVmZmVy
UXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKKyAgICBpZiAoY2FsbGJhY2sg
JiYgbV9wcm9kdWNlclF1ZXVlICYmICFQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpIHsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxs
YmFja10gewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSk7CkBAIC00NjMsNyAr
NDY1LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5IYXNB
dmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVuY3Rpb24KIAogUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1l
ZGlhVGltZSYgdGltZSwgSW1hZ2VGb3JUaW1lRmxhZ3MgZmxhZ3MpCiB7Ci0gICAgaWYgKENNQnVm
ZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKKyAgICBpZiAoUEFMOjpD
TUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CiAgICAgICAgIExP
RyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKCVwKSAt
IHRpbWUoJXMpLCBxdWV1ZSBlbXB0eSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRh
KCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC00NzEsOSArNDczLDkgQEAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKICAgICBib29sIGFsbG93RWFybGllciA9IGZsYWdzID09
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dFYXJsaWVyOwogICAgIGJvb2wgYWxs
b3dMYXRlciA9IGZsYWdzID09IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dMYXRl
cjsKIAotICAgIE1lZGlhVGltZSBzdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVy
UXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KTsKKyAgICBNZWRpYVRpbWUgc3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVm
ZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKTsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9k
dWNlclF1ZXVlLmdldCgpKSk7CisgICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBQQUw6OnRvTWVkaWFU
aW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKICNlbmRpZgogICAgIGlmICghYWxsb3dMYXRlciAmJiB0aW1lIDwg
c3RhcnRUaW1lKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6aW1hZ2VGb3JUaW1lKCVwKSAtIHRpbWUoJXMpIHRvbyBlYXJseSBmb3IgcXVldWUoJXMg
LT4gJXMpIiwgdGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoc3Rh
cnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmRUaW1lKS51dGY4KCkuZGF0YSgpKTsK
QEAgLTQ4MiwyNCArNDg0LDI0IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiAKICAgICBib29s
IHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gZmFsc2U7CiAKLSAgICB3aGlsZSAoQ01TYW1wbGVCdWZm
ZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENN
QnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1l
ZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxl
QnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1l
ZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJh
dGlvbihmaXJzdFNhbXBsZSkpOworICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNh
bXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUg
cHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlh
VGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1
cmF0aW9uKGZpcnN0U2FtcGxlKSk7CiAgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRU
aW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1lc3RhbXAgKyBkdXJhdGlvbjsKICAgICAgICAgaWYg
KCFhbGxvd0xhdGVyICYmIHByZXNlbnRhdGlvblRpbWVzdGFtcCA+IHRpbWUpCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgaWYgKCFhbGxvd0VhcmxpZXIgJiYgcHJlc2VudGF0
aW9uRW5kVGltZXN0YW1wIDwgdGltZSkgewotICAgICAgICAgICAgQ0ZSZWxlYXNlKENNQnVmZmVy
UXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAg
ICAgQ0ZSZWxlYXNlKFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAgICByZWxlYXNlZEltYWdlQnVmZmVycyA9IHRydWU7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIFJldGFpblB0cjxD
TVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0
PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKSk7Ci0gICAgICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBp
bWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKUNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZm
ZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CisgICAgICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVm
ZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpKTsKKyAgICAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVm
ZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KGN1cnJlbnRTYW1wbGUuZ2V0KCkpOwogICAgICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoaW1hZ2VC
dWZmZXIuZ2V0KCkpID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQoKSk7CiAKICAgICAgICAgaWYg
KG1fdGltZWJhc2UpCi0gICAgICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJj
ZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkp
OworICAgICAgICAgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmly
ZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAg
ICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CiAKQEAgLTUwOCw3ICs1
MTAsNyBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQogICAgIH0KIAogICAgIGlmIChtX3RpbWVi
YXNlKQotICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVk
aWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQ
QUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90
aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICBpZiAocmVsZWFzZWRJ
bWFnZUJ1ZmZlcnMpCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7
CkBAIC01MjAsOSArNTIyLDkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKIHZvaWQgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCgpCiB7CiAgICAgbV9kZWNvbXByZXNzaW9uUXVl
dWUtPmRpc3BhdGNoU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgp
IG11dGFibGUgewotICAgICAgICBDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9w
cm9kdWNlclF1ZXVlLmdldCgpKTsKKyAgICAgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlUmVzZXQocHJv
dGVjdGVkVGhpcy0+bV9wcm9kdWNlclF1ZXVlLmdldCgpKTsKICAgICAgICAgbV9lbnF1ZWluZ1F1
ZXVlLT5kaXNwYXRjaFN5bmMoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
XSB7Ci0gICAgICAgICAgICBDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25z
dW1lclF1ZXVlLmdldCgpKTsKKyAgICAgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZVJlc2V0KHBy
b3RlY3RlZFRoaXMtPm1fY29uc3VtZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5tX2ZyYW1lc1NpbmNlTGFzdFFvc0NoZWNrID0gMDsKICAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fY3VycmVudFFvc1RpZXIgPSAwOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+cmVzZXRRb3NUaWVyKCk7CkBAIC01MzMsMjQgKzUzNSwyNCBAQCB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6Z2V0RGVjb2RlVGltZShDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4o
YnVmKTsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoc2FtcGxl
KTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChzYW1w
bGUpOwogfQogCiBDTVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50
YXRpb25UaW1lKENNQnVmZmVyUmVmIGJ1Ziwgdm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAg
IHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOwor
ICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNh
bXBsZSk7CiB9CiAKIENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0
aW9uKENNQnVmZmVyUmVmIGJ1Ziwgdm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVy
biBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOwogfQogCiBDRkNvbXBhcmlzb25SZXN1bHQg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVmZmVycyhDTUJ1ZmZlclJlZiBi
dWYxLCBDTUJ1ZmZlclJlZiBidWYyLCB2b2lkKiByZWZjb24pCiB7Ci0gICAgcmV0dXJuIChDRkNv
bXBhcmlzb25SZXN1bHQpQ01UaW1lQ29tcGFyZShnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjEsIHJl
ZmNvbiksIGdldFByZXNlbnRhdGlvblRpbWUoYnVmMiwgcmVmY29uKSk7CisgICAgcmV0dXJuIChD
RkNvbXBhcmlzb25SZXN1bHQpUEFMOjpDTVRpbWVDb21wYXJlKGdldFByZXNlbnRhdGlvblRpbWUo
YnVmMSwgcmVmY29uKSwgZ2V0UHJlc2VudGF0aW9uVGltZShidWYyLCByZWZjb24pKTsKIH0KIAog
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnJlc2V0UW9zVGllcigpCkBAIC02MDIs
NyArNjA0LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnVwZGF0ZVFvc1dp
dGhEZWNvZGVUaW1lU3RhdGlzdGljcyhkb3VibGUgcmF0aW8KICAgICBpZiAoIW1fdGltZWJhc2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIGRvdWJsZSByYXRlID0gQ01UaW1lYmFzZUdldFJhdGUo
bV90aW1lYmFzZS5nZXQoKSk7CisgICAgZG91YmxlIHJhdGUgPSBQQUw6OkNNVGltZWJhc2VHZXRS
YXRlKG1fdGltZWJhc2UuZ2V0KCkpOwogICAgIGlmICghcmF0ZSkKICAgICAgICAgcmF0ZSA9IDE7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCmluZGV4IGUzZjA5MjcwMzQ4ZTdhNWFlZjcyNjZl
YjQ3MmRkYmFlNzNiYzM0MDcuLmYzMTY5YWJjMDI3NzA4MmYwY2ZjZTQ3MjY3OWUxMTA3OTdjOGM5
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBpbmxpbmUgQ0ZTdHJpbmdSZWYgY3ZQaXhlbEZv
cm1hdE9wZW5HTEtleSgpCiB7CkBAIC0xMzgsNyArMTM3LDcgQEAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcihDVlBp
eGVsQnUKIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKENNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSwgc2l6ZSk7CisgICAgcmV0dXJu
IGNvbnZlcnRQaXhlbEJ1ZmZlcihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291
cmNlQnVmZmVyKSwgc2l6ZSk7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVy
UmVmIHNvdXJjZUJ1ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKQEAgLTE0Niw5ICsxNDUsOSBA
QCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNv
bnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIGlmICghc291cmNlQnVmZmVyKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gZGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZl
ckdldEZvcm1hdERlc2NyaXB0aW9uKHNvdXJjZUJ1ZmZlcik7Ci0gICAgYXV0byBzb3VyY2VTaXpl
ID0gRmxvYXRTaXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVu
c2lvbnMoZGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0g
c3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihzb3VyY2VCdWZmZXIpKTsKKyAgICBhdXRvIGRlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNvdXJjZUJ1ZmZlcik7CisgICAgYXV0byBzb3VyY2VT
aXplID0gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0
aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgIGF1dG8gcGl4ZWxC
dWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSk7CiAgICAgaWYgKHNpemUgPT0gZXhwYW5kZWRJ
bnRTaXplKHNvdXJjZVNpemUpICYmIG1fcGl4ZWxGb3JtYXQgPT0gQ1ZQaXhlbEJ1ZmZlckdldFBp
eGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikpCiAgICAgICAgIHJldHVybiByZXRhaW5QdHIoc291
cmNlQnVmZmVyKTsKIApAQCAtMTYwLDcgKzE1OSw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2Ft
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0g
MDsKLSAgICBhdXRvIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5KHNvdXJjZUJ1ZmZlciwgMSwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CisgICAgYXV0byBzdGF0
dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1
ZmZlciwgMSwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CiAgICAgaWYgKHN0YXR1cyAhPSBub0Vycikg
ewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNv
bnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykp
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE2OSw3ICsxNjgsNyBAQCBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBs
ZUJ1ZmZlcihDTVNhbQogICAgIENNU2FtcGxlVGltaW5nSW5mbyogdGltZWluZ0luZm9QdHIgPSBu
dWxscHRyOwogICAgIGlmIChpdGVtQ291bnQpIHsKICAgICAgICAgdGltaW5nSW5mb0FycmF5Lmdy
b3coaXRlbUNvdW50KTsKLSAgICAgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5k
YXRhKCksIG51bGxwdHIpOworICAgICAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZv
QXJyYXkuZGF0YSgpLCBudWxscHRyKTsKICAgICAgICAgaWYgKHN0YXR1cyAhPSBub0Vycikgewog
ICAgICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
b252ZXJ0Q01TYW1wbGVCdWZmZXI6IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5IGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMp
KTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTc4LDE0ICsxNzcsMTQgQEAgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0
Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICB9CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIHN0
YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXRE
ZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBSRUxFQVNF
X0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZl
cjogQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIgcmV0dXJuZWQ6
ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmVzaXplZFNhbXBsZUJ1ZmZlcjsKLSAg
ICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlw
dGlvbiwgdGltZWluZ0luZm9QdHIsICZyZXNpemVkU2FtcGxlQnVmZmVyKTsKKyAgICBzdGF0dXMg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9u
LCB0aW1laW5nSW5mb1B0ciwgJnJlc2l6ZWRTYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShm
b3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBs
ZUJ1ZmZlcjogZmFpbGVkIHRvIGNyZWF0ZSBDTVNhbXBsZUJ1ZmZlciB3aXRoIGVycm9yIGNvZGU6
ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKQEAgLTIzNywxNiArMjM2LDE2IEBAIFJl
dGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRl
Q01TYW1wbGVCdWZmZXIoQ1ZQaXhlCiAgICAgfQogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3Jp
cHRpb24pOworICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJl
ZilpbnB1dEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVz
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y29udmVydFBpeGVsQnVmZmVyOiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb24gd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlcjsKLSAgICBhdXRvIGNtVGltZSA9IHRvQ01UaW1lKHNhbXBsZVRpbWUpOwot
ICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgY21U
aW1lLCBjbVRpbWUgfTsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0
QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZm
ZXIpOworICAgIGF1dG8gY21UaW1lID0gUEFMOjp0b0NNVGltZShzYW1wbGVUaW1lKTsKKyAgICBD
TVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgY21U
aW1lLCBjbVRpbWUgfTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYp
aW5wdXRCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5mbywgJnNhbXBs
ZUJ1ZmZlcik7CiAgICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3Rh
dHVzKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y29udmVydFBpeGVsQnVmZmVyOiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVNhbXBsZUJ1ZmZl
ciB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VBVktpdC5tbQppbmRleCBlMGRhYWM4NWI4NzNhZDZhYTliNGFiMmRiN2EwMDljYzM3
ZDQ3ODk1Li4zMmEwNDQ5NmNmZjdkODQxMTEyMGZjZDEzM2U2ZDY3NDI1NGE4NmIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
QVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lv
bkludGVyZmFjZUFWS2l0Lm1tCkBAIC00Nyw3ICs0Nyw2IEBAIFNPRlRMSU5LX0FWS0lUX0ZSQU1F
V09SSygpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWVmFsdWVUaW1pbmcpCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZUFWS2l0OjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdChQbGF5YmFj
a1Nlc3Npb25Nb2RlbCYgbW9kZWwpCiAgICAgOiBtX3BsYXllckNvbnRyb2xsZXIoYWRvcHROUyhb
W1dlYkFWUGxheWVyQ29udHJvbGxlciBhbGxvY10gaW5pdF0pKQpAQCAtMTQ1LDcgKzE0NCw3IEBA
IHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWthYmxlUmFuZ2VzQ2hhbmdl
ZChjb25zdCBUaW1lUmFuZ2VzJiB0aW1lCiAgICAgICAgIGRvdWJsZSBzdGFydCA9IHRpbWVSYW5n
ZXMuc3RhcnQoaSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAgIGRvdWJsZSBlbmQgPSB0
aW1lUmFuZ2VzLmVuZChpKS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAotICAgICAgICBDTVRpbWVS
YW5nZSByYW5nZSA9IENNVGltZVJhbmdlTWFrZShDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQs
IDEwMDApLCBDTVRpbWVNYWtlV2l0aFNlY29uZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CisgICAgICAg
IENNVGltZVJhbmdlIHJhbmdlID0gUEFMOjpDTVRpbWVSYW5nZU1ha2UoUEFMOjpDTVRpbWVNYWtl
V2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhlbmQt
c3RhcnQsIDEwMDApKTsKICAgICAgICAgW3NlZWthYmxlUmFuZ2VzIGFkZE9iamVjdDpbTlNWYWx1
ZSB2YWx1ZVdpdGhDTVRpbWVSYW5nZTpyYW5nZV1dOwogICAgIH0KICNlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5tbQppbmRleCBlYTQyM2M3MTdjN2FlOTFiZDRlZTk5MDg3ZTA3YzRlNWMzN2U0YzNmLi41
ZGYzNDlmYzZmY2RmY2ZhZWE3NTU2MzIwZjNhZTZlNjY3NjM0ZTliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWMubW0KQEAgLTM3Myw3ICszNzMsNiBAQCAtICh2b2lkKXBpcEFjdGlvblN0b3A6KFBJUFZpZXdD
b250cm9sbGVyICopcGlwCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6VmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlTWFjKFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYyYgcGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlKQogICAgIDogbV9wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UocGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCmlu
ZGV4IDg4NDA5NDI5NzkyNmM4YWViZGVmNmYzZTk1Nzg0MmY4MzQyOGI4OTIuLmQ0MTllMGUxOTI1
NTVkNzM2MDg1ODUxZjU0Y2EwMDQwZDQ2YjY2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKIAogc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJl
YW0sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKQEAgLTg4
LDEyICs4NywxMiBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1w
bGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcgogewogICAgIGlmIChzaG91bGRN
dXRlVmlkZW8oKSkgewogICAgICAgICBpZiAoIW1fYmxhY2tGcmFtZSkgewotICAgICAgICAgICAg
bV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0
aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7
Ci0gICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpKTsKKyAgICAgICAgICAg
IG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERl
c2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1
ZmZlcik7CisgICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0KCkpOwog
ICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihkaW1lbnNp
b25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7CiAKICAgICAgICAgICAgIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAg
ICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERlc2Ny
aXB0aW9uKTsKKyAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNr
RnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgICAgICAgICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJN
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlIDo6dW5hYmxl
IHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lIGRlc2NyaXB0aW9uOiAlZCIsIHN0YXRpY19jYXN0PGlu
dD4oc3RhdHVzKSk7CiAgICAgICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gbnVsbHB0cjsKQEAg
LTEwMyw4ICsxMDIsOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9T
YW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcgogICAgICAgICB9CiAKICAg
ICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gbnVsbHB0cjsKLSAgICAgICAgQ01TYW1w
bGVUaW1pbmdJbmZvIHRpbWluZ0luZm8geyBrQ01UaW1lSW52YWxpZCwgdG9DTVRpbWUoc2FtcGxl
QnVmZmVyLnByZXNlbnRhdGlvblRpbWUoKSksIHRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5kZWNvZGVU
aW1lKCkpIH07Ci0gICAgICAgIGF1dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilt
X2JsYWNrRnJhbWUuZ2V0KCksIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5n
SW5mbywgJnNhbXBsZSk7CisgICAgICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvIHsg
UEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjp0b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0
aW9uVGltZSgpKSwgUEFMOjp0b0NNVGltZShzYW1wbGVCdWZmZXIuZGVjb2RlVGltZSgpKSB9Owor
ICAgICAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNr
RnJhbWUuZ2V0KCksIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5nSW5mbywg
JnNhbXBsZSk7CiAKICAgICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlIC0gdW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1l
OiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IDUxYTNlMThhMmNlZGQzY2Q1ZGE5M2Yz
NGViZjM3MTFlMDIwZjhiNjIuLjVlMTEwZWNkN2RlMzg0NjFiNDI5MDRhMGViNDg4MzQxODQzZTc1
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1t
CkBAIC0zNiwxMyArMzYsMTIgQEAKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogI2ltcG9ydCA8
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlh
U29mdExpbmsuaD4KIAogI2RlZmluZSBMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRTIDAuMQogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6Y3JlYXRlKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQq
IGNhbGxiYWNrT2JqZWN0KQogewogICAgIGF1dG8gY29tcHJlc3NvciA9IHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+KG5ldyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IoKSk7CkBAIC01MiwxNSArNTEsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUKIH0K
IAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IoKQotICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlIHsgV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IiKSB9Ci0gICAgLCBtX2xvd1dhdGVy
VGltZSB7IENNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRTLCAx
MDAwKSB9CisgICAgOiBtX3NlcmlhbERpc3BhdGNoUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IiKSkKKyAgICAsIG1fbG93V2F0ZXJU
aW1lKFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKExPV19XQVRFUl9USU1FX0lOX1NFQ09ORFMs
IDEwMDApKQogewogfQogCiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IoKQogewogICAgIGlmIChtX2NvbnZlcnRlcikgewotICAgICAgICBB
dWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBQQUw6OkF1ZGlvQ29u
dmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CiAgICAgICAgIG1fY29udmVydGVyID0gbnVsbHB0
cjsKICAgICB9CiB9CkBAIC02OCwxOSArNjcsMTkgQEAgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIGJvb2wgQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2Fs
bGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIENNQnVmZmVyUXVldWVSZWYgaW5w
dXRCdWZmZXJRdWV1ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29y
dGVkU2FtcGxlQnVmZmVycygpLCAmaW5wdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQ
QUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwg
JmlucHV0QnVmZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVhdGUgZm9y
IG1faW5wdXRCdWZmZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICAgICBtX2lucHV0QnVmZmVyUXVldWUgPSBhZG9wdENGKGlucHV0
QnVmZmVyUXVldWUpOwogCiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBvdXRwdXRCdWZmZXJRdWV1ZTsK
LSAgICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVy
cygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNN
QnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJR
dWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0ZSBmb3IgbV9vdXRwdXRCdWZm
ZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gYWRvcHRDRihvdXRwdXRCdWZmZXJRdWV1
ZSk7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUu
Z2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1do
ZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVMTCk7CisgICAgUEFMOjpDTUJ1ZmZl
clF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ss
IGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVh
ZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAgbV9pc0VuY29kaW5nID0gdHJ1ZTsK
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg5LDggKzg4LDggQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxs
YmEKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpmaW5pc2goKQogewogICAgIG1f
c2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzXSB7Ci0gICAgICAgIHByb2Nl
c3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoa0NNVGltZUludmFsaWQpOwotICAgICAg
ICBhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJR
dWV1ZS5nZXQoKSk7CisgICAgICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRp
bWUoUEFMOjprQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVm
ZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpOwogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEgZmFpbGVkICVkIiwgZXJy
b3IpOwogICAgICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKICAgICB9KTsKQEAgLTExMiw3ICsx
MTEsNyBAQCBVSW50MzIgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpkZWZhdWx0T3V0cHV0
Qml0UmF0ZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRAogCiBib29sIEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24o
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQXVkaW9Gb3JtYXRJRCBv
dXRwdXRGb3JtYXRJRCkKIHsKLSAgICBjb25zdCBhdXRvICphdWRpb0Zvcm1hdExpc3RJdGVtID0g
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdChmb3JtYXRE
ZXNjcmlwdGlvbik7CisgICAgY29uc3QgYXV0byAqYXVkaW9Gb3JtYXRMaXN0SXRlbSA9IFBBTDo6
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdChmb3JtYXRE
ZXNjcmlwdGlvbik7CiAgICAgbV9zb3VyY2VGb3JtYXQgPSBhdWRpb0Zvcm1hdExpc3RJdGVtLT5t
QVNCRDsKIAogICAgIG1lbXNldCgmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgc2l6ZW9mKEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwpAQCAtMTIxLDM0ICsxMjAsMzQgQEAgYm9vbCBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1h
dERlc2NyaXB0aW9uKEMKICAgICBtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1l
ID0gbV9zb3VyY2VGb3JtYXQubUNoYW5uZWxzUGVyRnJhbWU7CiAKICAgICBVSW50MzIgc2l6ZSA9
IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Rm9ybWF0R2V0UHJvcGVydHkoa0F1ZGlvRm9ybWF0UHJvcGVydHlfRm9ybWF0SW5mbywgMCwgTlVM
TCwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5X0Zvcm1hdElu
Zm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIEF1ZGlvQ29udmVydGVyUmVmIGNvbnZlcnRlcjsK
LSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyTmV3KCZtX3NvdXJjZUZvcm1hdCwg
Jm1fZGVzdGluYXRpb25Gb3JtYXQsICZjb252ZXJ0ZXIpKSB7CisgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkF1ZGlvQ29udmVydGVyTmV3KCZtX3NvdXJjZUZvcm1hdCwgJm1fZGVzdGluYXRpb25G
b3JtYXQsICZjb252ZXJ0ZXIpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1ZGlvQ29udmVydGVyTmV3IGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1f
Y29udmVydGVyID0gY29udmVydGVyOwogCiAgICAgYXV0byBjbGVhbnVwSW5DYXNlT2ZFcnJvciA9
IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29u
dmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIp
OwogICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7CiAgICAgfSk7CiAKICAgICBzaXplX3Qg
Y29va2llU2l6ZSA9IDA7Ci0gICAgY29uc3Qgdm9pZCAqY29va2llID0gQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRpb24sICZjb29raWVTaXplKTsK
KyAgICBjb25zdCB2b2lkICpjb29raWUgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdl
dE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7CiAgICAgaWYgKGNv
b2tpZVNpemUpIHsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFBy
b3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29r
aWUsIChVSW50MzIpY29va2llU2l6ZSwgY29va2llKSkgeworICAgICAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29u
dmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tp
ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lv
bk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX3NvdXJjZUZv
cm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1f
Y29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwg
JnNpemUsICZtX3NvdXJjZUZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVk
aW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVu
dElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9zb3VyY2VGb3JtYXQpKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRp
b24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CkBAIC0xNTksNyArMTU4LDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6Omlu
aXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICB9CiAKICAg
ICBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOwotICAgIGlmIChhdXRvIGVycm9y
ID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVy
Q3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3Jt
YXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlw
dGlvbiwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5n
IGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE2NywxNCAr
MTY2LDE0IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252
ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgaWYgKG1fZGVzdGluYXRpb25G
b3JtYXQubUZvcm1hdElEID09IGtBdWRpb0Zvcm1hdE1QRUc0QUFDKSB7CiAgICAgICAgIGJvb2wg
c2hvdWxkU2V0RGVmYXVsdE91dHB1dEJpdFJhdGUgPSB0cnVlOwogICAgICAgICBpZiAobV9vdXRw
dXRCaXRSYXRlKSB7Ci0gICAgICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZW9m
KCptX291dHB1dEJpdFJhdGUpLCAmbV9vdXRwdXRCaXRSYXRlLnZhbHVlKCkpOworICAgICAgICAg
ICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZW9mKCptX291dHB1dEJpdFJhdGUp
LCAmbV9vdXRwdXRCaXRSYXRlLnZhbHVlKCkpOwogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNl
dHRpbmcga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgICAgIHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gISFlcnJvcjsK
ICAgICAgICAgfQogICAgICAgICBpZiAoc2hvdWxkU2V0RGVmYXVsdE91dHB1dEJpdFJhdGUpIHsK
ICAgICAgICAgICAgIGF1dG8gb3V0cHV0Qml0UmF0ZSA9IGRlZmF1bHRPdXRwdXRCaXRSYXRlKG1f
ZGVzdGluYXRpb25Gb3JtYXQpOwogICAgICAgICAgICAgc2l6ZSA9IHNpemVvZihvdXRwdXRCaXRS
YXRlKTsKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9w
ZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZSwgJm91
dHB1dEJpdFJhdGUpKQorICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29u
dmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJh
dGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGRl
ZmF1bHQga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTE4Myw3ICsxODIsNyBAQCBib29sIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24oQwogICAgICAgICAvLyBJZiB0aGUgZGVzdGluYXRpb24gZm9ybWF0IGlzIFZCUiwgd2Ug
bmVlZCB0byBnZXQgbWF4IHNpemUgcGVyIHBhY2tldCBmcm9tIHRoZSBjb252ZXJ0ZXIuCiAgICAg
ICAgIHNpemUgPSBzaXplb2YobV9tYXhPdXRwdXRQYWNrZXRTaXplKTsKIAotICAgICAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRp
b0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhP
dXRwdXRQYWNrZXRTaXplKSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9D
b252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlN
YXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwgJnNpemUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91
dHB1dFBhY2tldFNpemUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTIxMSw2ICsyMTAsOCBAQCBzaXplX3QgQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjpjb21wdXRlQnVmZmVyU2l6ZUZvckF1ZGlvRm9ybWF0KEF1ZGlv
U3RyZWFtQgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0YWNoUHJpbWlu
Z1RyaW1zSWZOZWVkZWQoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogeworICAgIHVzaW5nIG5h
bWVzcGFjZSBQQUw7CisKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQobV9yZW1haW5pbmdQcmlt
ZUR1cmF0aW9uKSkgewogICAgICAgICBBdWRpb0NvbnZlcnRlclByaW1lSW5mbyBwcmltZUluZm8g
eyAwLCAwIH07CiAgICAgICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKHByaW1lSW5mbyk7CkBAIC0y
MzYsMjUgKzIzNywyNSBAQCBSZXRhaW5QdHI8TlNOdW1iZXI+IEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQoKQogewogICAgIFVJbnQzMiBkZWxh
eVNpemUgPSBzaXplb2YodWludDMyX3QpOwogICAgIHVpbnQzMl90IG9yaWdpbmFsRGVsYXlNb2Rl
ID0gMDsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9j
b252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsICZkZWxheVNpemUsICZvcmln
aW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0
ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwg
JmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtB
dWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgdWludDMyX3Qgb3B0aW1hbERlbGF5TW9kZSA9
IGtBdWRpb0NvZGVjRGVsYXlNb2RlX09wdGltYWw7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRp
b0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVs
YXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlNb2RlKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgVUludDMy
IHByaW1lU2l6ZSA9IHNpemVvZihBdWRpb0NvZGVjUHJpbWVJbmZvKTsKICAgICBBdWRpb0NvZGVj
UHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlQcmlt
ZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQ
QUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJv
cGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdl
dHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbyBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1
ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlE
ZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRv
IGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkp
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KQEAgLTI2Nywx
OCArMjY4LDE4IEBAIENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tldHMoVUludDMyCiAgICAgaWYgKCFtX2Rlc3RpbmF0
aW9uRm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAgVUludDMyIGNvb2tpZVNpemUgPSAwOwog
Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbyhtX2Nv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNp
emUsIE5VTEwpOworICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFBy
b3BlcnR5SW5mbyhtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nv
b2tpZSwgJmNvb2tpZVNpemUsIE5VTEwpOwogICAgICAgICBpZiAoKGVycm9yID09IG5vRXJyKSAm
JiAhIWNvb2tpZVNpemUpIHsKICAgICAgICAgICAgIGNvb2tpZS5yZXNpemUoY29va2llU2l6ZSk7
CiAKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0
eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNv
b2tpZVNpemUsIGNvb2tpZS5kYXRhKCkpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9
IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVy
dGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCkpKSB7
CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1h
Z2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb247Ci0gICAgICAgIGlmIChhdXRv
IGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBOVUxMLCBjb29raWVTaXplLCBjb29raWUuZGF0
YSgpLCBOVUxMLCAmZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikpIHsKKyAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29va2llU2l6ZSwg
Y29va2llLmRhdGEoKSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pKSB7CiAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICB9CkBAIC0yOTAs
MjYgKzI5MSwyNiBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIHNpemVfdCBkYXRhU2l6
ZSA9IGZpbGxCdWZmZXJMaXN0Lm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemU7CiAKICAgICBDTUJs
b2NrQnVmZmVyUmVmIGJsb2NrQnVmZmVyOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1
ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBkYXRh
U2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgMCwgZGF0YVNpemUsIGtDTUJsb2NrQnVm
ZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKSkgeworICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIE5VTEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBk
YXRhU2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIp
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogICAgIGF1dG8g
YnVmZmVyID0gYWRvcHRDRihibG9ja0J1ZmZlcik7CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IENN
QmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzKGRhdGEsIGJ1ZmZlci5nZXQoKSwgMCwgZGF0YVNp
emUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0
YUJ5dGVzKGRhdGEsIGJ1ZmZlci5nZXQoKSwgMCwgZGF0YVNpemUpKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENN
QmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1
ZmZlcjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCB0cnVlLCBO
VUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksIG51bVBhY2tl
dHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCwgbV9kZXN0aW5hdGlvblBh
Y2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIpOworICAgIGF1dG8gZXJyb3Ig
PSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgdHJ1ZSwgTlVMTCwgTlVMTCwgbV9kZXN0
aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCBudW1QYWNrZXRzLCBtX2N1cnJlbnROYXRp
dmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMu
ZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgaWYgKFttX2dk
ckNvdW50TnVtIGludFZhbHVlXSkKLSAgICAgICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZl
ciwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9HcmFkdWFsRGVjb2RlclJlZnJlc2gsIChf
X2JyaWRnZSBDRlR5cGVSZWYpbV9nZHJDb3VudE51bS5nZXQoKSwga0NNQXR0YWNobWVudE1vZGVf
U2hvdWxkUHJvcGFnYXRlKTsKKyAgICAgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVm
ZmVyLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29kZXJSZWZy
ZXNoLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCksIGtDTUF0dGFjaG1l
bnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CiAKICAgICByZXR1cm4gc2FtcGxlQnVmZmVyOwogfQpA
QCAtMzQxLDI0ICszNDIsMjQgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAgICAgICAgICAg
ICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJR
dWV1ZS5nZXQoKSkpCisgICAgICAgICAgICAgICAgaWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1w
dHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAKLSAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxl
QnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFp
bihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwotICAgICAgICAgICAgICAgIG1fc2FtcGxl
QmxvY2tCdWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdl
dCgpKTsKKyAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2Ft
cGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVl
QW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgICAgICAgICAgICAg
bV9zYW1wbGVCbG9ja0J1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNh
bXBsZUJ1ZmZlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFtX3NhbXBsZUJsb2NrQnVm
ZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZl
ciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUg
PSAwOwogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVm
ZmVyID0gMDsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gQ01CbG9ja0J1ZmZl
ckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICAg
ICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhTGVu
Z3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIG1fY3VycmVu
dE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgIHNpemVfdCBu
dW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmID0gc3RkOjptaW4obnVtQnl0ZXNUb0NvcHksICht
X3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSAtIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZm
ZXIpKTsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5
RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2Ft
cGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChtX3NvdXJjZUJ1
ZmZlci5kYXRhKCkgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAg
ICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyht
X3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVm
ZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAobV9zb3VyY2VCdWZmZXIuZGF0YSgp
ICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKICAgICAgICAgICAgICAgICB9CkBAIC0z
OTMsMjggKzM5NCwyOCBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnBy
b3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyhVSW50MzIqCiAgICAgICAgICAgICAgICAg
bV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKKyAg
ICAgICAgICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1
ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIGF1dG8gc2Ft
cGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+
KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkp
KSk7Ci0gICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gYWRvcHRDRigoQ01CbG9ja0J1
ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ0ZSZXRhaW4oQ01TYW1wbGVCdWZmZXJHZXREYXRh
QnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSkpKSkpOworICAgICAgICAgICAgYXV0byBzYW1wbGVC
dWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFM
OjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkp
KSkpOworICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0Q0YoKENNQmxvY2tC
dWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXREYXRhQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSkpKSkpOwogICAgICAgICAgICAgaWYgKCFt
X3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01TYW1wbGVCdWZmZXJH
ZXREYXRhQnVmZmVyIGZhaWxlZCIpOwogICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZm
ZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2Nr
QnVmZmVyID0gMDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSkgLyAyOworICAgICAgICAgICAgbV9zYW1w
bGVCbG9ja0J1ZmZlclNpemUgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fc2Ft
cGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKICAgICAgICAgICAgIG1fY3VycmVudE9mZnNldElu
U2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fc2FtcGxl
QmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgIHNpemVfdCBudW1CeXRlc1RvQ29weUZyb21TYW1w
bGVCYnVmID0gc3RkOjptaW4obnVtQnl0ZXNUb0NvcHksIChtX3NhbXBsZUJsb2NrQnVmZmVyU2l6
ZSAtIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIpKTsKLSAgICAgICAgICAgIGlm
IChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1
ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNU
b0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKGZpcnN0Q2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJblNvdXJj
ZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1
ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zm
c2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKGZp
cnN0Q2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgZmlyc3QgY2hhbm5lbCBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0
YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxl
QmxvY2tCdWZmZXIgKyBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSwgbnVtQnl0ZXNUb0NvcHlGcm9t
U2FtcGxlQmJ1ZiwgKHNlY29uZENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIp
KSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJDb3B5
RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2Ft
cGxlQmxvY2tCdWZmZXIgKyBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSwgbnVtQnl0ZXNUb0NvcHlG
cm9tU2FtcGxlQmJ1ZiwgKHNlY29uZENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZm
ZXIpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIHNl
Y29uZCBjaGFubmVsIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBlcnJvcjsKICAgICAgICAgICAgIH0KQEAgLTQzOCw2ICs0MzksOCBAQCBPU1N0YXR1cyBB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFj
a2V0cyhVSW50MzIqCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNz
U2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENNVGltZSBsb3dXYXRlclRpbWUpCiB7Cisg
ICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRV9DT01QQVJFX0lOTElORQorCiAg
ICAgaWYgKCFtX2NvbnZlcnRlcikgewogICAgICAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHko
bV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTUwMSw3
ICs1MDQsNyBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBs
ZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbAogCiB2b2lkIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZm
ZXIpCiB7Ci0gICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVFbnF1ZXVlKG1faW5wdXRCdWZm
ZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1
ZXVlRW5xdWV1ZShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CiAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQnVmZmVyUXVldWVFbnF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAg
ICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShtX2xvd1dhdGVyVGltZSk7
CkBAIC01MjAsMTIgKzUyMywxMiBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
YWRkU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIAogQ01TYW1wbGVCdWZm
ZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIo
KQogewotICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENN
QnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CisgICAgcmV0
dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOwogfQogCiBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1
dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVm
KShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1
dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKKyAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZm
ZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRh
aW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CiB9CiAKIHVuc2lnbmVkIEF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6Yml0UmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCmluZGV4IGY1Zjg1NTg3MWZjNzA4
NTY2ZjdlZjhiOWExNjFlMjdiOGU1ZDg5ZWQuLmI3NTU4ZDI4MGMyZWY3OTYwNjhjYWMwY2M5NmI1
MDMzZGMzNzA5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oCkBAIC0xMjcsOCArMTI3LDggQEAgcHJpdmF0ZToKICAgICBSZXRhaW5Q
dHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IG1fdmlkZW9Db21w
cmVzc29yOwogICAgIFJldGFpblB0cjxBVkFzc2V0V3JpdGVySW5wdXQ+IG1fdmlkZW9Bc3NldFdy
aXRlcklucHV0OwotICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUgeyBrQ01U
aW1lSW52YWxpZCB9OwotICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSB7IGtDTVRp
bWVJbnZhbGlkIH07CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZTsKKyAg
ICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWU7CiAgICAgYm9vbCBtX2hhc0VuY29kZWRW
aWRlb1NhbXBsZXMgeyBmYWxzZSB9OwogCiAgICAgUmV0YWluUHRyPFdlYkFWQXNzZXRXcml0ZXJE
ZWxlZ2F0ZT4gbV93cml0ZXJEZWxlZ2F0ZTsKQEAgLTEzOSw5ICsxMzksOSBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9zaG91bGRTdG9wQWZ0ZXJGbHVzaGluZ1NhbXBsZXMgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9maXJzdFZpZGVvRnJhbWUgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8Q0dB
ZmZpbmVUcmFuc2Zvcm0+IG1fdmlkZW9UcmFuc2Zvcm07Ci0gICAgQ01UaW1lIG1fcmVzdW1lZFZp
ZGVvVGltZSB7IGtDTVRpbWVaZXJvIH07Ci0gICAgQ01UaW1lIG1fY3VycmVudFZpZGVvRHVyYXRp
b24geyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUg
eyBrQ01UaW1lWmVybyB9OworICAgIENNVGltZSBtX3Jlc3VtZWRWaWRlb1RpbWU7CisgICAgQ01U
aW1lIG1fY3VycmVudFZpZGVvRHVyYXRpb247CisgICAgQ01UaW1lIG1fY3VycmVudEF1ZGlvU2Ft
cGxlVGltZTsKICAgICBkb3VibGUgbV90aW1lQ29kZSB7IDAgfTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCA2M2Jk
NjU5OGQwMmE1YzcwMDZkYTkyOWZjOTRmMWY1ZjY2YTcxNmRhLi42YWQyMGJlOGNiNTc5MjNhMGU3
ODQyZTM3MDFkMzNhNmFhMDNhYjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05Myw4ICs5Myw2IEBAIEBlbmQKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBSZWZQdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUo
Ym9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgY29uc3QgTWVkaWFSZWNvcmRlclByaXZhdGVP
cHRpb25zJiBvcHRpb25zKQogewogICAgIGF1dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcihoYXNBdWRpbywgaGFzVmlkZW8pKTsKQEAgLTEyMiw2ICsx
MjAsMTEgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJlc3NlZEF1ZGlv
T3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9pZCAqbWVkaWEKIE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihib29sIGhhc0F1ZGlvLCBib29sIGhhc1Zp
ZGVvKQogICAgIDogbV9oYXNBdWRpbyhoYXNBdWRpbykKICAgICAsIG1faGFzVmlkZW8oaGFzVmlk
ZW8pCisgICAgLCBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUoUEFMOjprQ01UaW1lSW52YWxp
ZCkKKyAgICAsIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lKFBBTDo6a0NNVGltZUludmFsaWQpCisg
ICAgLCBtX3Jlc3VtZWRWaWRlb1RpbWUoUEFMOjprQ01UaW1lWmVybykKKyAgICAsIG1fY3VycmVu
dFZpZGVvRHVyYXRpb24oUEFMOjprQ01UaW1lWmVybykKKyAgICAsIG1fY3VycmVudEF1ZGlvU2Ft
cGxlVGltZShQQUw6OmtDTVRpbWVaZXJvKQogewogfQogCkBAIC0xNzksNyArMTgyLDcgQEAgdm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRWaWRlb1Nh
bXBsZUJ1ZmZlcnMoKQogewogICAgIEFTU0VSVChtX2hhc1ZpZGVvKTsKICAgICBpZiAoIW1fdmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbikgewotICAgICAgICBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24g
PSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1fdmlkZW9Db21wcmVzc29yLT5n
ZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CisgICAgICAgIG1fdmlkZW9Gb3JtYXREZXNjcmlwdGlv
biA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVvQ29tcHJl
c3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOwogCiAgICAgICAgIGlmIChtX2hhc0F1ZGlv
ICYmICFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pCiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
OTYsNyArMTk5LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05l
d0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMoKQogewogICAgIEFTU0VSVChtX2hhc0F1ZGlv
KTsKICAgICBpZiAoIW1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbikgewotICAgICAgICBtX2F1ZGlv
Rm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1f
YXVkaW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CisgICAgICAgIG1fYXVk
aW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihtX2F1ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOwogICAgICAg
ICBpZiAobV9oYXNWaWRlbyAmJiAhbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yMzgsNyArMjQxLDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcjo6c3RhcnRBc3NldFdyaXRlcigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBbbV93cml0ZXIuZ2V0KCkgc3RhcnRTZXNzaW9uQXRTb3VyY2VUaW1lOmtDTVRpbWVaZXJvXTsK
KyAgICBbbV93cml0ZXIuZ2V0KCkgc3RhcnRTZXNzaW9uQXRTb3VyY2VUaW1lOlBBTDo6a0NNVGlt
ZVplcm9dOwogCiAgICAgYXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKTsKIApAQCAtMzAw
LDggKzMwMyw4IEBAIGJvb2wgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXBy
ZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcklmUG9zc2libGUoKQogdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVm
ZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBBU1NFUlQoW21fdmlkZW9Bc3NldFdyaXRlcklucHV0IGlz
UmVhZHlGb3JNb3JlTWVkaWFEYXRhXSk7Ci0gICAgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1l
ID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKLSAgICBt
X2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1w
KGJ1ZmZlcik7CisgICAgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIpOworICAgIG1fbGFzdFZpZGVv
RGVjb2RpbmdUaW1lID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChidWZm
ZXIpOwogICAgIG1faGFzRW5jb2RlZFZpZGVvU2FtcGxlcyA9IHRydWU7CiAKICAgICBbbV92aWRl
b0Fzc2V0V3JpdGVySW5wdXQuZ2V0KCkgYXBwZW5kU2FtcGxlQnVmZmVyOmJ1ZmZlcl07CkBAIC0z
MTQsMTcgKzMxNywxNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRD
b21wcmVzc2VkU2FtcGxlQnVmZmVycygpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRFbmRz
UHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcihBVkFzc2V0V3JpdGVySW5wdXQgKmFzc2V0V3Jp
dGVySW5wdXQsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSBkZWNvZGluZ1Rp
bWVTdGFtcCkKIHsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsga0NNVGlt
ZUludmFsaWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZGVjb2RpbmdUaW1lU3RhbXB9OworICAg
IENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBw
cmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0YW1wfTsKIAogICAgIENNU2FtcGxl
QnVmZmVyUmVmIGJ1ZmZlciA9IE5VTEw7Ci0gICAgYXV0byBlcnJvciA9IENNU2FtcGxlQnVmZmVy
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIHRydWUsIE5VTEwsIE5VTEwsIE5VTEws
IDAsIDEsICZ0aW1pbmdJbmZvLCAwLCBOVUxMLCAmYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVl
LCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAxLCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7
CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgYXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVy
YXRpb25NYXJrZXIgZmFpbGVkIENNU2FtcGxlQnVmZmVyQ3JlYXRlIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENG
KGJ1ZmZlcik7CiAKLSAgICBDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBrQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uLCBrQ0ZC
b29sZWFuVHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKKyAgICBQQUw6
OkNNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIuZ2V0KCksIFBBTDo6a0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbiwga0NGQm9vbGVhblRydWUs
IGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CiAgICAgaWYgKCFbYXNzZXRXcml0
ZXJJbnB1dCBhcHBlbmRTYW1wbGVCdWZmZXI6c2FtcGxlQnVmZmVyLmdldCgpXSkKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ciBhcHBlbmRTYW1wbGVCdWZmZXIgdG8gd3JpdGVyIGlucHV0IGZhaWxlZCIpOwogfQpAQCAtMzgy
LDE4ICszODUsMTggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Zmx1c2hDb21w
cmVzc2VkU2FtcGxlQnVmZmVycyhGdW5jdGlvbjx2b2lkKCk+JiYKIHN0YXRpYyBpbmxpbmUgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1l
U3RhbXAoQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxCdWZmZXIsIENNVGltZSBzdGFydFRpbWUp
CiB7CiAgICAgQ01JdGVtQ291bnQgY291bnQgPSAwOwotICAgIENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCAwLCBuaWwsICZjb3VudCk7CisgICAg
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZl
ciwgMCwgbmlsLCAmY291bnQpOwogCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGlt
ZUluZm8oY291bnQpOwotICAgIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5
KG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOworICAgIFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIs
IGNvdW50LCB0aW1lSW5mby5kYXRhKCksICZjb3VudCk7CiAKICAgICBmb3IgKGF1dG8gaSA9IDA7
IGkgPCBjb3VudDsgaSsrKSB7Ci0gICAgICAgIHRpbWVJbmZvW2ldLmRlY29kZVRpbWVTdGFtcCA9
IGtDTVRpbWVJbnZhbGlkOworICAgICAgICB0aW1lSW5mb1tpXS5kZWNvZGVUaW1lU3RhbXAgPSBQ
QUw6OmtDTVRpbWVJbnZhbGlkOwogICAgICAgICB0aW1lSW5mb1tpXS5wcmVzZW50YXRpb25UaW1l
U3RhbXAgPSBzdGFydFRpbWU7CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3QnVm
ZmVyID0gbnVsbHB0cjsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRl
Q29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgb3JpZ2luYWxCdWZmZXIsIGNv
dW50LCB0aW1lSW5mby5kYXRhKCksICZuZXdCdWZmZXIpKSB7CisgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgb3JpZ2luYWxCdWZmZXIsIGNvdW50LCB0aW1lSW5mby5kYXRhKCksICZuZXdCdWZm
ZXIpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXIgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpA
QCAtNDA0LDcgKzQwNyw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVu
ZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7CiAgICAgaWYgKCFtX2Zp
cnN0VmlkZW9GcmFtZSkgewogICAgICAgICBtX2ZpcnN0VmlkZW9GcmFtZSA9IHRydWU7Ci0gICAg
ICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGlt
ZUNsb2NrKCkpOworICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRU
aW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CiAgICAgICAgIGlmIChzYW1wbGUu
dmlkZW9Sb3RhdGlvbigpICE9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIHx8IHNh
bXBsZS52aWRlb01pcnJvcmVkKCkpIHsKICAgICAgICAgICAgIG1fdmlkZW9UcmFuc2Zvcm0gPSBD
R0FmZmluZVRyYW5zZm9ybU1ha2VSb3RhdGlvbihzdGF0aWNfY2FzdDxpbnQ+KHNhbXBsZS52aWRl
b1JvdGF0aW9uKCkpICogTV9QSSAvIDE4MCk7CiAgICAgICAgICAgICBpZiAoc2FtcGxlLnZpZGVv
TWlycm9yZWQoKSkKQEAgLTQxMiw4ICs0MTUsOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAg
ICAgICB9CiAgICAgfQogCi0gICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3QoQ01D
bG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGlt
ZSk7Ci0gICAgc2FtcGxlVGltZSA9IENNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRl
b0R1cmF0aW9uKTsKKyAgICBhdXRvIHNhbXBsZVRpbWUgPSBQQUw6OkNNVGltZVN1YnRyYWN0KFBB
TDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1
bWVkVmlkZW9UaW1lKTsKKyAgICBzYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVBZGQoc2FtcGxlVGlt
ZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CiAgICAgaWYgKGF1dG8gYnVmZmVyV2l0aEN1cnJl
bnRUaW1lID0gY29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKHNhbXBsZS5wbGF0
Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwgc2FtcGxlVGltZSkpCiAgICAgICAg
IG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRUaW1l
LmdldCgpKTsKIH0KQEAgLTQyMiw3ICs0MjUsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjphcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YQog
ewogICAgIGlmIChhdXRvIHNhbXBsZUJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRh
dGEsIGRlc2NyaXB0aW9uLCBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIHNhbXBsZUNvdW50KSkK
ICAgICAgICAgbV9hdWRpb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihzYW1wbGVCdWZmZXIu
Z2V0KCkpOwotICAgIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSA9IENNVGltZUFkZChtX2N1cnJl
bnRBdWRpb1NhbXBsZVRpbWUsIHRvQ01UaW1lKE1lZGlhVGltZShzYW1wbGVDb3VudCwgZGVzY3Jp
cHRpb24uc2FtcGxlUmF0ZSgpKSkpOworICAgIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSA9IFBB
TDo6Q01UaW1lQWRkKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgUEFMOjp0b0NNVGltZShNZWRp
YVRpbWUoc2FtcGxlQ291bnQsIGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSkpKTsKIH0KIAogdm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6ZmluaXNoZWRGbHVzaGluZ1NhbXBsZXMoKQpA
QCAtNTIzLDEwICs1MjYsMTAgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y29t
cGxldGVGZXRjaERhdGEoKQogewogICAgIGF1dG8gY3VycmVudFRpbWVDb2RlID0gbV90aW1lQ29k
ZTsKICAgICBpZiAobV9oYXNBdWRpbykKLSAgICAgICAgbV90aW1lQ29kZSA9IENNVGltZUdldFNl
Y29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKTsKKyAgICAgICAgbV90aW1lQ29kZSA9IFBB
TDo6Q01UaW1lR2V0U2Vjb25kcyhtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUpOwogICAgIGVsc2Ug
ewotICAgICAgICBhdXRvIHNhbXBsZVRpbWUgPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGlt
ZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICAg
ICAgbV90aW1lQ29kZSA9IENNVGltZUdldFNlY29uZHMoQ01UaW1lQWRkKHNhbXBsZVRpbWUsIG1f
Y3VycmVudFZpZGVvRHVyYXRpb24pKTsKKyAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gUEFMOjpD
TVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1l
Q2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgICAgIG1fdGltZUNvZGUgPSBQQUw6
OkNNVGltZUdldFNlY29uZHMoUEFMOjpDTVRpbWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50Vmlk
ZW9EdXJhdGlvbikpOwogICAgIH0KICAgICBtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVyKHRh
a2VEYXRhKCksIGN1cnJlbnRUaW1lQ29kZSk7CiB9CkBAIC01NTAsMTMgKzU1MywxMyBAQCBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6dGFrZURhdGEoKQog
CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwYXVzZSgpCiB7Ci0gICAgYXV0byBy
ZWNvcmRpbmdEdXJhdGlvbiA9IENNVGltZVN1YnRyYWN0KENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tH
ZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOwotICAgIG1fY3VycmVudFZp
ZGVvRHVyYXRpb24gPSBDTVRpbWVBZGQocmVjb3JkaW5nRHVyYXRpb24sIG1fY3VycmVudFZpZGVv
RHVyYXRpb24pOworICAgIGF1dG8gcmVjb3JkaW5nRHVyYXRpb24gPSBQQUw6OkNNVGltZVN1YnRy
YWN0KFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwg
bV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uID0gUEFMOjpD
TVRpbWVBZGQocmVjb3JkaW5nRHVyYXRpb24sIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOwogfQog
CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpyZXN1bWUoKQogewotICAgIG1fcmVz
dW1lZFZpZGVvVGltZSA9IENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkp
OworICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNs
b2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKIH0KIAogY29uc3QgU3RyaW5nJiBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6bWltZVR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA3NmQ1NmQ3YjhkMTNjNzJlYTM5ZmMzNDk5
ZDE3OTg5OTcxN2YwZTc4Li5kMDc2MGYwN2UzNzA4MTI3ZjlkZTJlZmFmOTJmMGUwNzcyZmQzOGU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpA
QCAtMzQsMTIgKzM0LDExIEBACiAjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVlRDb21wcmVzc2lvblNl
c3Npb24uaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCisjaW1wb3J0IDxwYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGlu
ay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0
ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IFZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Y3JlYXRlKFN0cmluZyBtaW1lVHlwZSwgQ01CdWZmZXJRdWV1ZVRyaWdn
ZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgYXV0byBw
cm9maWxlID0gUHJvZmlsZTo6QmFzZWxpbmU7CkBAIC02OSw3ICs2OCw3IEBAIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKENNVmlkZW9Db2Rl
Y1R5cGUgb3V0cHV0CiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IoKQogewogICAgIGlmIChtX3Z0U2Vzc2lvbikgewotICAgICAgICBWVENv
bXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24uZ2V0KCkpOworICAgICAgICBQ
QUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShtX3Z0U2Vzc2lvbi5nZXQoKSk7CiAg
ICAgICAgIG1fdnRTZXNzaW9uID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC03NywxMiArNzYsMTIg
QEAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yKCkKIGJvb2wgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVm
ZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQog
ewogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVm
ZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1
ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNr
c0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIHVuYWJsZSB0byBjcmVhdGUgYnVmZmVyIHF1ZXVlICVkIiwgZXJyb3IpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1fb3V0cHV0QnVmZmVyUXVldWUgPSBvdXRwdXRC
dWZmZXJRdWV1ZTsKLSAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRy
aWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVaZXJvLCBOVUxMKTsKKyAgICBQQUw6
OkNNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBj
YWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0YUJl
Y29tZXNSZWFkeSwgUEFMOjprQ01UaW1lWmVybywgTlVMTCk7CiAKICAgICBtX2lzRW5jb2Rpbmcg
PSB0cnVlOwogICAgIHJldHVybiB0cnVlOwpAQCAtOTYsMTAgKzk1LDEwIEBAIHZvaWQgVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpzZXRCaXRzUGVyU2Vjb25kKHVuc2lnbmVkIGJpdFJhdGUp
CiB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKCkKIHsKICAgICBtX3Nl
cmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10gewotICAgICAgICBhdXRvIGVy
cm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQo
KSwga0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNz
aW9uU2Vzc2lvbkNvbXBsZXRlRnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtDTVRpbWVJ
bnZhbGlkKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFt
LCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxl
dGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKLSAgICAgICAgZXJyb3IgPSBDTUJ1
ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKKyAgICAg
ICAgZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVy
UXVldWUuZ2V0KCkpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFT
dHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZU1hcmtFbmRP
ZkRhdGEgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAgICAgICAgbV9pc0VuY29kaW5nID0g
ZmFsc2U7CkBAIC0xMTQsNyArMTEzLDcgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OnZpZGVvQ29tcHJlc3Npb25DYWxsYmFjayh2b2lkICpyZWZDb24sIHZvaWQqLAogCiAgICAg
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yICpjb21wcmVzc29yID0gc3RhdGljX2Nhc3Q8Vmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKj4ocmVmQ29uKTsKIAotICAgIGF1dG8gZXJyb3IgPSBD
TUJ1ZmZlclF1ZXVlRW5xdWV1ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
LCBidWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVFbnF1ZXVlKGNv
bXByZXNzb3ItPm1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CiAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQnVmZmVyUXVldWVFbnF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogfQog
CkBAIC0xMzAsNTMgKzEyOSw1MyBAQCBDRlN0cmluZ1JlZiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OnZ0UHJvZmlsZUxldmVsKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fcHJvZmlsZSkg
ewogICAgIGNhc2UgUHJvZmlsZTo6QmFzZWxpbmU6Ci0gICAgICAgIHJldHVybiBrVlRQcm9maWxl
TGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBQQUw6OmtWVFBy
b2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbDsKICAgICBjYXNlIFByb2ZpbGU6Okhp
Z2g6Ci0gICAgICAgIHJldHVybiBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbDsK
KyAgICAgICAgcmV0dXJuIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWw7
CiAgICAgY2FzZSBQcm9maWxlOjpNYWluOgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVs
X0gyNjRfTWFpbl9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZl
bF9IMjY0X01haW5fQXV0b0xldmVsOwogICAgIH0KIH0KIAogYm9vbCBWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uKQogewotICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVu
c2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdERlc2Ny
aXB0aW9uKTsKKyAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uKTsKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVyU3BlY2lmaWNhdGlvbnMgPSBu
aWw7CiAjZWxzZQotICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gQHso
X19icmlkZ2UgTlNTdHJpbmcgKilrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhh
cmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXI6QFlFU307CisgICAgTlNEaWN0aW9uYXJ5ICpl
bmNvZGVyU3BlY2lmaWNhdGlvbnMgPSBAeyhfX2JyaWRnZSBOU1N0cmluZyAqKVBBTDo6a1ZUVmlk
ZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNv
ZGVyOkBZRVN9OwogI2VuZGlmCiAKICAgICBWVENvbXByZXNzaW9uU2Vzc2lvblJlZiB2dFNlc3Np
b247Ci0gICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0LCBtX291dHB1
dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZillbmNvZGVyU3BlY2lmaWNhdGlv
bnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFjaywgdGhpcywgJnZ0U2Vzc2lv
bik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQsIG1f
b3V0cHV0Q29kZWNUeXBlLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKWVuY29kZXJTcGVjaWZp
Y2F0aW9ucywgTlVMTCwgTlVMTCwgdmlkZW9Db21wcmVzc2lvbkNhbGxiYWNrLCB0aGlzLCAmdnRT
ZXNzaW9uKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Np
b25DcmVhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBOTzsKICAg
ICB9CiAgICAgbV92dFNlc3Npb24gPSBhZG9wdENGKHZ0U2Vzc2lvbik7CiAKLSAgICBlcnJvciA9
IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblBy
b3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgZXJyb3IgPSBWVFNlc3Np
b25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vz
c2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7Ci0gICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9w
ZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlG
cmFtZUludGVydmFsRHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uKTsKKyAg
ICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0
aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbik7CiAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZU
U2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJ
bnRlcnZhbER1cmF0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0
Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUsIG1fZXhwZWN0ZWRGcmFtZVJhdGUpOwor
ICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0
KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSwgbV9l
eHBlY3RlZEZyYW1lUmF0ZSk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlh
U3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAKLSAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNz
aW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgdnRQcm9m
aWxlTGV2ZWwoKSk7CisgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lv
bi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgdnRQ
cm9maWxlTGV2ZWwoKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNl
dFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsIGZhaWxlZCB3
aXRoICVkIGZvciBwcm9maWxlICVkIiwgZXJyb3IsIG1fcHJvZmlsZSk7CiAgICAgICAgIGlmICht
X3Byb2ZpbGUgIT0gUHJvZmlsZTo6QmFzZWxpbmUpIHsKLSAgICAgICAgICAgIGVycm9yID0gVlRT
ZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVy
dHlLZXlfUHJvZmlsZUxldmVsLCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2
ZWwpOworICAgICAgICAgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lv
bi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgUEFM
OjprVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwpOwogICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfUHJvZmlsZUxldmVsIGZhaWxlZCB3aXRoICVkIGZvciBkZWZhdWx0IHByb2ZpbGUiLCBlcnJv
cik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobV9vdXRwdXRCaXRSYXRlKSB7Ci0gICAg
ICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0
KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsICptX291dHB1dEJp
dFJhdGUpOworICAgICAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1f
dnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJp
dFJhdGUsICptX291dHB1dEJpdFJhdGUpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihl
cnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9u
U2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICB9CiAKLSAgICBlcnJvciA9IFZUQ29tcHJlc3Npb25T
ZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpKTsKKyAgICBlcnJv
ciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMobV92dFNl
c3Npb24uZ2V0KCkpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVh
bSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBh
cmVUb0VuY29kZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAogICAgIHJldHVybiBZ
RVM7CkBAIC0xODUsMTQgKzE4NCwxNCBAQCBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVZpZGVvRm9ybWF0RGVzY3JpcHRpbwogdm9pZCBW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVC
dWZmZXJSZWYgYnVmZmVyKQogewogICAgIGlmICghbV92dFNlc3Npb24pIHsKLSAgICAgICAgaWYg
KCFpbml0Q29tcHJlc3Npb25TZXNzaW9uKENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRp
b24oYnVmZmVyKSkpCisgICAgICAgIGlmICghaW5pdENvbXByZXNzaW9uU2Vzc2lvbihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oYnVmZmVyKSkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBpbWFnZUJ1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoYnVmZmVyKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblRpbWVTdGFtcCA9IENN
U2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7Ci0gICAgYXV0byBk
dXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oYnVmZmVyKTsKLSAgICBhdXRvIGVy
cm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZShtX3Z0U2Vzc2lvbi5nZXQoKSwg
aW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24sIE5VTEwsIHRoaXMs
IE5VTEwpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1h
Z2VCdWZmZXIoYnVmZmVyKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvblRpbWVTdGFtcCA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBhdXRv
IGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7CisgICAg
YXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZShtX3Z0U2Vz
c2lvbi5nZXQoKSwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24s
IE5VTEwsIHRoaXMsIE5VTEwpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRp
YVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lv
bkVuY29kZUZyYW1lIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogfQogCkBAIC0yMDgsMTIgKzIw
NywxMiBAQCB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YWRkU2FtcGxlQnVmZmVy
KENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIAogQ01TYW1wbGVCdWZmZXJSZWYgVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIoKQogewotICAgIHJldHVy
biAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVHZXRI
ZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CisgICAgcmV0dXJuIChDTVNhbXBsZUJ1
ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291
dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOwogfQogCiBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcigp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZv
aWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdl
dCgpKSkpKTsKKyAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSkpKSk7CiB9CiAKIHVuc2lnbmVkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6Yml0UmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKaW5kZXggYzNmZTgyMWI5
YzUyMGM5MjI0ZTVkZTg4OGU1MThjMzE5NmYzMWNiNS4uYTAyNDA4NGMyNGU2ZDM2Mzk2MDhhNjQ2
NTJlY2M1ZDZkOWVmYWM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcApAQCAtNDIsNiArNDIsNyBA
QAogI2luY2x1ZGUgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjZW5kaWYKIAor
I2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHBhbC9j
Zi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjMsOSAr
MTI0LDkgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0OjpzdGFydCgpCiAgICAgaWYgKCFtX3JlbW90ZUlPVW5pdCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX3JlbW90ZUlPVW5p
dCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9y
ZW1vdGVJT1VuaXQpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCBBdWRpb091dHB1dFVu
aXRTdGFydCBmYWlsZWQsIGVycm9yID0gJWQiLCBlcnJvcik7Ci0gICAgICAgIEF1ZGlvQ29tcG9u
ZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0Nv
bXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CiAgICAgICAgIG1fcmVtb3Rl
SU9Vbml0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEzOSwxMSArMTQw
LDExIEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dDo6c3RvcCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2lzU3RhcnRlZCkgewotICAg
ICAgICBBdWRpb091dHB1dFVuaXRTdG9wKG1fcmVtb3RlSU9Vbml0KTsKKyAgICAgICAgUEFMOjpB
dWRpb091dHB1dFVuaXRTdG9wKG1fcmVtb3RlSU9Vbml0KTsKICAgICAgICAgbV9pc1N0YXJ0ZWQg
PSBmYWxzZTsKICAgICB9CiAKLSAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3Jl
bW90ZUlPVW5pdCk7CisgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3Jl
bW90ZUlPVW5pdCk7CiAgICAgbV9yZW1vdGVJT1VuaXQgPSBudWxscHRyOwogfQogCkBAIC0xNjMs
MTQgKzE2NCwxNCBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKICAgICBpb1VuaXREZXNjcmlwdGlv
bi5jb21wb25lbnRTdWJUeXBlID0ga0F1ZGlvVW5pdFN1YlR5cGVfRGVmYXVsdE91dHB1dDsKICNl
bmRpZgogCi0gICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25lbnQgPSBBdWRpb0NvbXBvbmVudEZp
bmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7CisgICAgQXVkaW9Db21wb25lbnQg
aW9Db21wb25lbnQgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5p
dERlc2NyaXB0aW9uKTsKICAgICBBU1NFUlQoaW9Db21wb25lbnQpOwogICAgIGlmICghaW9Db21w
b25lbnQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8g
ZmluZCByZW1vdGUgSU8gdW5pdCBjb21wb25lbnQiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlvQ29tcG9uZW50
LCAmcmVtb3RlSU9Vbml0KTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbXBvbmVudElu
c3RhbmNlTmV3KGlvQ29tcG9uZW50LCAmcmVtb3RlSU9Vbml0KTsKICAgICBpZiAoZXJyb3IpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gb3BlbiB2cGlv
IHVuaXQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKQEAgLTE3OCw3ICsx
NzksNyBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgVUludDMyIHBhcmFtID0gMTsKLSAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5
KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9V
bml0U2NvcGVfT3V0cHV0LCAwLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgIGVycm9yID0g
UEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQ
cm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXpl
b2YocGFyYW0pKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdCB1bmFibGUgdG8gZW5hYmxlIHZwaW8gdW5pdCBvdXRwdXQsIGVycm9yID0gJWQi
LCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lkIExvY2Fs
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5p
dElmTmVlZGVkKCkKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAobV9kZXZpY2VJRCkgewot
ICAgICAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlv
T3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWws
IDAsICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOworICAgICAgICBlcnJvciA9IFBB
TDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJv
cGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNl
SUQsIHNpemVvZihtX2RldmljZUlEKSk7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IHVuaXQgZGV2aWNl
IElEICVkLCBlcnJvciAlZCAoJS40cykiLCAoaW50KW1fZGV2aWNlSUQsIChpbnQpZXJyb3IsIChj
aGFyKikmZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTk2LDE0ICsxOTcsMTQgQEAg
dm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVh
dGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAjZW5kaWYKIAogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1
Y3QgY2FsbGJhY2sgPSB7IExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXQ6OnJlbmRlcmluZ0NhbGxiYWNrLCB0aGlzIH07Ci0gICAgZXJyb3IgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxs
YmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJh
Y2spKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9H
bG9iYWwsIDAsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycm9yKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCB2cGlv
IHVuaXQgc3BlYWtlciBwcm9jLCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2Yob3V0cHV0RGVzY3JpcHRpb24uc3Ry
ZWFtRGVzY3JpcHRpb24oKSk7Ci0gICAgZXJyb3IgID0gQXVkaW9Vbml0R2V0UHJvcGVydHkocmVt
b3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCAmc2l6
ZSk7CisgICAgZXJyb3IgID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQs
IGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwg
MCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksICZzaXplKTsKICAgICBp
ZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUg
dG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAg
IHJldHVybjsKQEAgLTIxMSwxMyArMjEyLDEzIEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAg
ICAgb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKS5tU2FtcGxlUmF0ZSA9IEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKTsKIAotICAgIGVycm9yID0g
QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3Ry
ZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5z
dHJlYW1EZXNjcmlwdGlvbigpLCBzaXplb2Yob3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3Jp
cHRpb24oKSkpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJ
T1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9J
bnB1dCwgMCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIHNpemVvZihv
dXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKSk7CiAgICAgaWYgKGVycm9yKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCBpbnB1
dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgZXJyb3IgPSBBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlPVW5pdCk7Cisg
ICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUocmVtb3RlSU9Vbml0KTsKICAgICBp
ZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCBBdWRpb1Vu
aXRJbml0aWFsaXplKCkgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggNGI3ODhhZTVhYTg3YjcyOWU1
YmRjZjljZjcxMzgxMmM2NzcwYTMyNS4uNDg1ZTRjZTRjNmQ4YzMyNDViNzc5ZDYxYTY3NmNiYmI5
N2JhZDkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtNTEsNyArNTEsNiBA
QAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogQGludGVyZmFjZSBXZWJDb3JlQVZW
aWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciA6IE5TT2JqZWN0PEFWQ2FwdHVyZVZpZGVvRGF0YU91
dHB1dFNhbXBsZUJ1ZmZlckRlbGVnYXRlPiB7CiAgICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UqIG1f
Y2FsbGJhY2s7CkBAIC0zNTEsMTAgKzM1MCwxMCBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNl
OjpzZXRTZXNzaW9uU2l6ZUFuZEZyYW1lUmF0ZSgpCiAgICAgICAgICAgICBpZiAoZnJhbWVSYXRl
UmFuZ2UpIHsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRGcmFtZVJhdGUgPSBjbGFtcFRvKG1f
Y3VycmVudEZyYW1lUmF0ZSwgZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVSYXRlLCBmcmFtZVJhdGVS
YW5nZS5tYXhGcmFtZVJhdGUpOwogCi0gICAgICAgICAgICAgICAgYXV0byBmcmFtZUR1cmF0aW9u
ID0gQ01UaW1lTWFrZSgxLCBtX2N1cnJlbnRGcmFtZVJhdGUpOwotICAgICAgICAgICAgICAgIGlm
IChDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lRHVy
YXRpb24pIDwgMCkKKyAgICAgICAgICAgICAgICBhdXRvIGZyYW1lRHVyYXRpb24gPSBQQUw6OkNN
VGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKKyAgICAgICAgICAgICAgICBpZiAoUEFM
OjpDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lRHVy
YXRpb24pIDwgMCkKICAgICAgICAgICAgICAgICAgICAgZnJhbWVEdXJhdGlvbiA9IGZyYW1lUmF0
ZVJhbmdlLm1pbkZyYW1lRHVyYXRpb247Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoQ01UaW1l
Q29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uKSA+
IDApCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKGZyYW1lRHVy
YXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lRHVyYXRpb24pID4gMCkKICAgICAgICAgICAg
ICAgICAgICAgZnJhbWVEdXJhdGlvbiA9IGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lRHVyYXRpb247
CiAKICAgICAgICAgICAgICAgICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElG
SUVSLCAic2V0dGluZyBmcmFtZSByYXRlIHRvICIsIG1fY3VycmVudEZyYW1lUmF0ZSwgIiwgZHVy
YXRpb24gIiwgUEFMOjp0b01lZGlhVGltZShmcmFtZUR1cmF0aW9uKSk7CkBAIC00MTgsNyArNDE3
LDcgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBTZXNzaW9uKCkKIAogICAgIG1f
c2Vzc2lvbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkNhcHR1cmVTZXNzaW9uSW5zdGFuY2UoKSBp
bml0XSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBBVkNhcHR1cmVTZXNzaW9uU2V0
QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQobV9zZXNz
aW9uLmdldCgpKTsKKyAgICBQQUw6OkFWQ2FwdHVyZVNlc3Npb25TZXRBdXRob3JpemVkVG9Vc2VD
YW1lcmFJbk11bHRpcGxlRm9yZWdyb3VuZEFwcExheW91dChtX3Nlc3Npb24uZ2V0KCkpOwogI2Vu
ZGlmCiAgICAgW21fc2Vzc2lvbiBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JL
ZXlQYXRoOkAicnVubmluZyIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNv
bnRleHQ6KHZvaWQgKiluaWxdOwogCkBAIC00MzQsNiArNDMzLDggQEAgYm9vbCBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6c2V0dXBTZXNzaW9uKCkKIAogQVZGcmFtZVJhdGVSYW5nZSogQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OmZyYW1lRHVyYXRpb25Gb3JGcmFtZVJhdGUoZG91YmxlIHJhdGUpCiB7Cisg
ICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRV9DT01QQVJFX0lOTElORQorCiAg
ICAgQVZGcmFtZVJhdGVSYW5nZSAqYmVzdEZyYW1lUmF0ZVJhbmdlID0gbmlsOwogICAgIGZvciAo
QVZGcmFtZVJhdGVSYW5nZSAqZnJhbWVSYXRlUmFuZ2UgaW4gW1tkZXZpY2UoKSBhY3RpdmVGb3Jt
YXRdIHZpZGVvU3VwcG9ydGVkRnJhbWVSYXRlUmFuZ2VzXSkgewogICAgICAgICBpZiAoZnJhbWVS
YXRlUmFuZ2VJbmNsdWRlc1JhdGUoeyBbZnJhbWVSYXRlUmFuZ2UgbWluRnJhbWVSYXRlXSwgW2Zy
YW1lUmF0ZVJhbmdlIG1heEZyYW1lUmF0ZV0gfSwgcmF0ZSkpIHsKQEAgLTU5OCw3ICs1OTksNyBA
QCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMoKQogICAgIFZlY3Rv
cjxSZWY8VmlkZW9QcmVzZXQ+PiBwcmVzZXRzOwogICAgIGZvciAoQVZDYXB0dXJlRGV2aWNlRm9y
bWF0KiBmb3JtYXQgaW4gW2RldmljZSgpIGZvcm1hdHNdKSB7CiAKLSAgICAgICAgQ01WaWRlb0Rp
bWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lv
bnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICAgICAgQ01WaWRlb0RpbWVuc2lvbnMg
ZGltZW5zaW9ucyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhm
b3JtYXQuZm9ybWF0RGVzY3JpcHRpb24pOwogICAgICAgICBJbnRTaXplIHNpemUgPSB7IGRpbWVu
c2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0IH07CiAgICAgICAgIGF1dG8gaW5kZXggPSBw
cmVzZXRzLmZpbmRNYXRjaGluZyhbJnNpemVdKGF1dG8mIHByZXNldCkgewogICAgICAgICAgICAg
cmV0dXJuIHNpemUgPT0gcHJlc2V0LT5zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuY3BwCmluZGV4IDZlMjZjOGZhNGVjZDMwYWMxZTUyZmVjMzhhZjU3ZDBlMzNkOWJjMjQuLmUx
NTU0NjJmNTE4MTU4OGJhM2JjOTQ1NmM2YjZhZTlhZmUyMWI1YzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZURldmljZS5jcHAKQEAgLTE5LDcgKzE5LDcgQEAKICAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgogICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIChJTkNMVURJTkcgTkVHTElH
RVBBTDo6TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBvcnQgPHBhbC9j
Zi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1l
c3BhY2UgUEFMOwogCiBzdGF0aWMgYm9vbCBnZXREZXZpY2VJbmZvKHVpbnQzMl90IGRldmljZUlE
LCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIFN0cmluZyYgcGVyc2lzdGVudElELCBT
dHJpbmcmIGxhYmVsKQogewpAQCAtMjA1LDcgKzIwNCw3IEBAIFJldGFpblB0cjxDTUNsb2NrUmVm
PiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpkZXZpY2VDbG9jaygpCiAgICAgICAgIHJldHVybiBt
X2RldmljZUNsb2NrOwogCiAgICAgQ01DbG9ja1JlZiBjbG9jazsKLSAgICBhdXRvIGVyciA9IENN
QXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwZXJzaXN0ZW50SWQo
KS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAmY2xvY2spOworICAgIGF1dG8gZXJyID0gUEFMOjpD
TUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGVyc2lzdGVudElk
KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmNsb2NrKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OkNN
QXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSglcCkgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIGZhaWxl
ZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
CmluZGV4IDAzZjNlNjJhMjYzN2MzZTkwMWJhZjY5NGQzYzUyNjVlZmE3NGFlYjIuLmY0YjM2NTg5
NGQzN2NkOTRmZjIxYjdmYjU0ZmRiMjY0MWYzNmZlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHAKQEAgLTQ4LDYgKzQ4LDggQEAKICNpbmNsdWRlIDx3dGYvQWxnb3JpdGht
cy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNp
bmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCkBAIC01Nyw3ICs1OSw2IEBACiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI2lmIFBMQVRGT1JNKE1BQykKIENvcmVBdWRpb0NhcHR1
cmVTb3VyY2VGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9u
KCkKQEAgLTIwMyw3ICsyMDQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1
cEF1ZGlvVW5pdCgpCiAgICAgbV9EVFNDb252ZXJzaW9uUmF0aW8gPSAxZS05ICogc3RhdGljX2Nh
c3Q8ZG91YmxlPih0aW1lYmFzZUluZm8ubnVtZXIpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPih0aW1l
YmFzZUluZm8uZGVub20pOwogCiAgICAgQXVkaW9Db21wb25lbnREZXNjcmlwdGlvbiBpb1VuaXRE
ZXNjcmlwdGlvbiA9IHsga0F1ZGlvVW5pdFR5cGVfT3V0cHV0LCBrQXVkaW9Vbml0U3ViVHlwZV9W
b2ljZVByb2Nlc3NpbmdJTywga0F1ZGlvVW5pdE1hbnVmYWN0dXJlcl9BcHBsZSwgMCwgMCB9Owot
ICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dChu
dWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9u
ZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlw
dGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAgICBpZiAoIWlvQ29tcG9uZW50KSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6
OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gZmluZCB2cGlvIHVuaXQgY29tcG9uZW50Iiwg
dGhpcyk7CkBAIC0yMTIsNyArMjEzLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c2V0dXBBdWRpb1VuaXQoKQogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIENGU3RyaW5nUmVmIG5h
bWUgPSBudWxscHRyOwotICAgIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUoaW9Db21wb25lbnQsICZu
YW1lKTsKKyAgICBQQUw6OkF1ZGlvQ29tcG9uZW50Q29weU5hbWUoaW9Db21wb25lbnQsICZuYW1l
KTsKICAgICBpZiAobmFtZSkgewogICAgICAgICBtX2lvVW5pdE5hbWUgPSBuYW1lOwogICAgICAg
ICBDRlJlbGVhc2UobmFtZSk7CkBAIC0yMjAsNyArMjIxLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlv
U2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIH0KICNlbmRpZgogCi0gICAgYXV0byBl
cnIgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlvQ29tcG9uZW50LCAmbV9pb1VuaXQpOwor
ICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlvQ29tcG9uZW50
LCAmbV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0
byBvcGVuIHZwaW8gdW5pdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTIyOCwxMyArMjI5LDEzIEBAIE9TU3Rh
dHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogICAgIGlmICghZW5h
YmxlRWNob0NhbmNlbGxhdGlvbigpKSB7CiAgICAgICAgIHVpbnQzMl90IHBhcmFtID0gMDsKLSAg
ICAgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9w
ZXJ0eV9Wb2ljZVByb2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlu
cHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlv
VW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNz
aW5nRW5hYmxlQUdDLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBz
aXplb2YocGFyYW0pKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXAp
IHVuYWJsZSB0byBzZXQgdnBpbyBhdXRvbWF0aWMgZ2FpbiBjb250cm9sLCBlcnJvciAlZCAoJS40
cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVy
cjsKICAgICAgICAgfQogICAgICAgICBwYXJhbSA9IDE7Ci0gICAgICAgIGVyciA9IEF1ZGlvVW5p
dFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfQnlwYXNzVm9pY2VQcm9j
ZXNzaW5nLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2Yo
cGFyYW0pKTsKKyAgICAgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5p
dCwga0FVVm9pY2VJT1Byb3BlcnR5X0J5cGFzc1ZvaWNlUHJvY2Vzc2luZywga0F1ZGlvVW5pdFNj
b3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgICAgIGlm
IChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBl
Y2hvIGNhbmNlbGxhdGlvbiwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yNDMsNyArMjQ0LDcgQEAgT1NT
dGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICB1aW50MzJfdCBwYXJhbSA9IDE7Ci0gICAgZXJyID0gQXVkaW9V
bml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJ
Tywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0p
KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9P
dXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRC
dXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCglcCkgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgaW5wdXQsIGVycm9yICVkICglLjRzKSIs
IHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0y
NTUsNyArMjU2LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1Vu
aXQoKQogICAgICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKLSAgICBlcnIgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnRE
ZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmbV9jYXB0dXJlRGV2aWNl
SUQsIHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCkpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2
aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJm1fY2FwdHVyZURldmljZUlE
LCBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9V
bml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBjYXB0dXJlIGRldmljZSBJRCAlZCwgZXJy
b3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCltX2NhcHR1cmVEZXZpY2VJRCwgKGludCllcnIsIChj
aGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTI3MCw3ICsyNzEsNyBAQCBPU1N0
YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgaWYgKGVycikK
ICAgICAgICAgcmV0dXJuIGVycjsKIAotICAgIGVyciA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9p
b1VuaXQpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShtX2lvVW5pdCk7CiAg
ICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgQXVkaW9Vbml0SW5pdGlhbGl6ZSgpIGZh
aWxlZCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAg
ICAgICAgcmV0dXJuIGVycjsKQEAgLTI5Miw3ICsyOTMsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnVuZHVjaygpCiBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVN
aWNyb3Bob25lUHJvYygpCiB7CiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9
IHsgbWljcm9waG9uZUNhbGxiYWNrLCB0aGlzIH07Ci0gICAgYXV0byBlcnIgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X1NldElucHV0Q2Fs
bGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmY2FsbGJhY2ssIHNpemVv
ZihjYWxsYmFjaykpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X1NldElucHV0Q2FsbGJhY2ssIGtBdWRp
b1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykp
OwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXApIHVuYWJsZSB0byBz
ZXQgdnBpbyB1bml0IG1pYyBwcm9jLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwg
KGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMzAxLDE0ICszMDIsMTQgQEAg
T1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQog
ICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBtaWNyb3Bob25lUHJvY0Zvcm1hdCA9IHsg
fTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1pY3JvcGhvbmVQcm9jRm9ybWF0KTsKLSAg
ICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bo
b25lUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVy
dHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRT
Y29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZzaXplKTsKICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IG91
dHB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAogICAgIG1pY3JvcGhvbmVQ
cm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOwotICAgIGVyciA9IEF1ZGlvVW5p
dFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBr
QXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCBz
aXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVk
aW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1
dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCBzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZp
Z3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gc2V0IG91dHB1dCBzdHJlYW0gZm9ybWF0
LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAg
ICByZXR1cm4gZXJyOwpAQCAtMzIzLDcgKzMyNCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCkKIHsKICAgICBBVVJlbmRlckNhbGxiYWNrU3Ry
dWN0IGNhbGxiYWNrID0geyBzcGVha2VyQ2FsbGJhY2ssIHRoaXMgfTsKLSAgICBhdXRvIGVyciA9
IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVu
ZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmY2FsbGJhY2ss
IHNpemVvZihjYWxsYmFjaykpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9w
ZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2sp
KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gc2V0
IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJy
LCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0zMzIsMTQgKzMzMywxNCBA
QCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYygpCiAg
ICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHNwZWFrZXJQcm9jRm9ybWF0ID0geyB9Owog
CiAgICAgVUludDMyIHNpemUgPSBzaXplb2Yoc3BlYWtlclByb2NGb3JtYXQpOwotICAgIGVyciA9
IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9y
bWF0LCAmc2l6ZSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5p
dCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0
LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgJnNpemUpOwogICAgIGlmIChlcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1h
dCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAg
ICAgcmV0dXJuIGVycjsKICAgICB9CiAKICAgICBzcGVha2VyUHJvY0Zvcm1hdC5tU2FtcGxlUmF0
ZSA9IHNhbXBsZVJhdGUoKTsKLSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5p
dCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0
LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJyID0gUEFMOjpB
dWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1h
dCwgc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJS
VEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxl
IHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50
KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtNDU5LDcgKzQ2MCw3
IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y2xlYW51cEF1ZGlvVW5pdCgpCiAgICAgfQog
CiAgICAgaWYgKG1faW9Vbml0KSB7Ci0gICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNw
b3NlKG1faW9Vbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9z
ZShtX2lvVW5pdCk7CiAgICAgICAgIG1faW9Vbml0ID0gbnVsbHB0cjsKICAgICB9CiAKQEAgLTQ3
Nyw3ICs0NzgsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1
ZGlvVW5pdCgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKG1faW9Vbml0U3RhcnRlZCkg
ewotICAgICAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKKyAgICAgICAg
ZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKICAgICAgICAgaWYgKGVy
cikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0b3AgZmFp
bGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsK
ICAgICAgICAgICAgIHJldHVybiBlcnI7CkBAIC00OTAsNyArNDkxLDcgQEAgT1NTdGF0dXMgQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoKQogICAgICAgICByZXR1cm4g
ZXJyOwogCiAgICAgaWYgKG1faW9Vbml0U3RhcnRlZCkgewotICAgICAgICBlcnIgPSBBdWRpb091
dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRV
bml0U3RhcnQobV9pb1VuaXQpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1
ZGlvVW5pdCglcCkgQXVkaW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUu
NHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBl
cnI7CkBAIC01MTQsNyArNTE1LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3Rh
cnRJbnRlcm5hbCgpCiAKICAgICB1bmR1Y2soKTsKIAotICAgIGVyciA9IEF1ZGlvT3V0cHV0VW5p
dFN0YXJ0KG1faW9Vbml0KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1f
aW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0KCVwKSBBdWRpb091dHB1dFVuaXRTdGFydCBm
YWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIp
OwogICAgICAgICBjbGVhbnVwQXVkaW9Vbml0KCk7CkBAIC01NTEsNyArNTUyLDcgQEAgdm9pZCBD
b3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wSW50ZXJuYWwoKQogICAgIGlmICghbV9pb1VuaXQgfHwg
IW1faW9Vbml0U3RhcnRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBlcnIgPSBBdWRp
b091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9PdXRw
dXRVbml0U3RvcChtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wKCVwKSBBdWRpb091dHB1
dFVuaXRTdG9wIGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgIHJldHVybjsKQEAgLTU2NSw3ICs1NjYsNyBAQCBPU1N0YXR1
cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpkZWZhdWx0SW5wdXREZXZpY2UodWludDMyX3QqIGRldmlj
ZUlEKQogICAgIEFTU0VSVChtX2lvVW5pdCk7CiAKICAgICBVSW50MzIgcHJvcGVydHlTaXplID0g
c2l6ZW9mKCpkZXZpY2VJRCk7Ci0gICAgYXV0byBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1Vu
aXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCBkZXZpY2VJRCwgJnByb3BlcnR5U2l6ZSk7CisgICAg
YXV0byBlcnIgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRw
dXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5w
dXRCdXMsIGRldmljZUlELCAmcHJvcGVydHlTaXplKTsKICAgICBpZiAoZXJyKQogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpkZWZhdWx0SW5w
dXREZXZpY2UoJXApIHVuYWJsZSB0byBnZXQgZGVmYXVsdCBpbnB1dCBkZXZpY2UgSUQsIGVycm9y
ICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRleCAzZjRlNGRjZjQyYzBmYTkzZWY5YWI2
MmRkMjJhOTdjNTEzODcwNjYzLi41ODJmNGIyNmNmMTE4YzQ5NzFhY2Q3ZDE4MzA5MjE5N2UxZTc2
ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC01Niw3
ICs1Niw2IEBACiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5p
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9T
aGFyZWRVbml0Lm1tCmluZGV4IGFhN2ZmMDg3NTA1NDI1ODJmMWVmOTE2N2E4MWU2ZmI1YTU0OGYx
NTIuLmI4NmIwNWU4YzY2NWJjMmU4MDVmMjdiMzhiMWE0ZmQzMzEzZjkyYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRV
bml0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
QXVkaW9TaGFyZWRVbml0Lm1tCkBAIC00NCwxNCArNDQsMTAgQEAKICNpbXBvcnQgPEF1ZGlvVG9v
bGJveC9BdWRpb0NvbnZlcnRlci5oPgogI2ltcG9ydCA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVz
Lmg+CiAKKyNpbXBvcnQgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9U
b29sYm94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NT
dGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0
LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQs
IEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwg
aW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBhbGln
blRvMTZCeXRlcyhzaXplX3Qgc2l6ZSkKIHsKQEAgLTIyMSw3ICsyMTcsNyBAQCB2b2lkIE1vY2tB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlKCkKICAgICBtX2F1ZGlvQnVmZmVyTGlzdCA9IG1h
a2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX3N0cmVhbUZvcm1hdCwgbV9tYXhpbWl1bUZy
YW1lQ291bnQpOwogCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
bjsKLSAgICBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoTlVMTCwgJm1fc3RyZWFtRm9y
bWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIFBB
TDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKE5VTEwsICZtX3N0cmVhbUZvcm1hdCwg
MCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBtX2Zvcm1h
dERlc2NyaXB0aW9uID0gYWRvcHRDRihmb3JtYXREZXNjcmlwdGlvbik7CiAKICAgICBzaXplX3Qg
c2FtcGxlQ291bnQgPSAyICogcmF0ZTsKQEAgLTI0Myw3ICsyMzksNyBAQCB2b2lkIE1vY2tBdWRp
b1NoYXJlZFVuaXQ6OmVtaXRTYW1wbGVCdWZmZXJzKHVpbnQzMl90IGZyYW1lQ291bnQpCiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fZm9ybWF0RGVzY3JpcHRpb24p
OwogCi0gICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9zYW1wbGVzRW1pdHRlZCwg
c2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVNYWtlKG1f
c2FtcGxlc0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7CiAgICAgbV9zYW1wbGVzRW1pdHRlZCArPSBm
cmFtZUNvdW50OwogCiAgICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKFBBTDo6dG9NZWRpYVRpbWUo
c3RhcnRUaW1lKSwgKm1fYXVkaW9CdWZmZXJMaXN0LCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24o
bV9zdHJlYW1Gb3JtYXQpLCBmcmFtZUNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYy5tbQppbmRleCBiMDU5YTMyNTFkOGI5NjU3YmE5MDE0YzQ0ZjgwNjNhZjgyN2Ix
ZDQzLi5iNjBiODg2NmZiYjgwNDg4YzIzZmUyYjU3NjkyYjMwZjg3ZTM4NjkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01MSw3ICs1MSw2IEBACiAjaW1w
b3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5k
ZXggNTgwOTRiMzQyMGYzOWM4ZjI2YzE3NzdhMmFlZDAxMjNkYmVhMjYyOC4uYWE2OTZhZGRmN2Y3
NzkyNTkxNTI5NTgzYzIxNjBjMTI0OTExZDU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29h
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U+IFJl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJy
dGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+JiYgYXVkaW9UcmFjaywgU3RyaW5nJiYgYXVkaW9UcmFj
a0lkKQogewpAQCAtMTMxLDcgKzEzMCw3IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlQ29jb2E6Ok9uRGF0YShjb25zdCB2b2lkKiBhdWRpb0RhdGEsIGludCBiaXRzUGVyCiAgICAg
ICAgICAgICBtX251bWJlck9mRnJhbWVzID0gMDsKICAgICB9CiAKLSAgICBDTVRpbWUgc3RhcnRU
aW1lID0gQ01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICBDTVRp
bWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVNYWtlKG1fbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJh
dGUpOwogICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpOwog
ICAgIG1fbnVtYmVyT2ZGcmFtZXMgKz0gbnVtYmVyT2ZGcmFtZXM7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQppbmRleCA4ZGY4ZjY4ZjZmNzI0
MDQ3NWRiZDQzMjMwNmFhM2E1NjlmNmU0OGNmLi4wYzcxZTFkYjEwZmE0MzdhN2MwMDQzZDM2NGY0
NGJmNzIzNzExYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hLm1tCkBAIC00Miw3ICs0Miw2IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VO
RAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2U+IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+JiYgdmlkZW9UcmFjaywgU3RyaW5nJiYg
dHJhY2tJZCkKIHsKQEAgLTE3MywxOSArMTcyLDE5IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSkK
ICAgICB9CiAKICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbzsKLSAgICB0aW1pbmdJ
bmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IENNVGltZU1ha2UoZnJhbWUudGltZXN0YW1wX3Vz
KCksIDEwMDAwMDApOwotICAgIHRpbWluZ0luZm8uZGVjb2RlVGltZVN0YW1wID0ga0NNVGltZUlu
dmFsaWQ7Ci0gICAgdGltaW5nSW5mby5kdXJhdGlvbiA9IGtDTVRpbWVJbnZhbGlkOworICAgIHRp
bWluZ0luZm8ucHJlc2VudGF0aW9uVGltZVN0YW1wID0gUEFMOjpDTVRpbWVNYWtlKGZyYW1lLnRp
bWVzdGFtcF91cygpLCAxMDAwMDAwKTsKKyAgICB0aW1pbmdJbmZvLmRlY29kZVRpbWVTdGFtcCA9
IFBBTDo6a0NNVGltZUludmFsaWQ7CisgICAgdGltaW5nSW5mby5kdXJhdGlvbiA9IFBBTDo6a0NN
VGltZUludmFsaWQ7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb247Ci0gICAgT1NTdGF0dXMgb3N0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVy
UmVmKXBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIE9TU3RhdHVzIG9zdGF0
dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCAmZm9ybWF0
RGVzY3JpcHRpb24pOwogICAgIGlmIChvc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIEVSUk9S
X0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUiwgIkZhaWxlZCB0byBpbml0aWFsaXpl
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbiB3aXRoIGVycm9yICIsIHN0YXRpY19jYXN0PGludD4o
b3N0YXR1cykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlQnVmZmVyOwotICAgIG9zdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5
V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBp
eGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIp
OworICAgIG9zdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIs
IGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7CiAgICAgQ0ZS
ZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAob3N0YXR1cyAhPSBub0Vycikgewog
ICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJGYWlsZWQg
dG8gY3JlYXRlIHRoZSBzYW1wbGUgYnVmZmVyIHdpdGggZXJyb3IgIiwgc3RhdGljX2Nhc3Q8aW50
Pihvc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLmNwcAppbmRleCA2YmYwY2E0ODdkZDY0ZGJlZjUzOWQ5NDg4MGY2MjhjN2ZhMTYxYmYx
Li5lMzNiYjZkYTlkZGRkMDFhMDBkOTk2ZmQ5ZWYwMmFjOTgxNGExZWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTQ1LDcgKzQ1
LDYgQEAgQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAjaW5jbHVkZSAiQ29yZVZpZGVvU29m
dExpbmsuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAog
UmVmPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZT4gUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlOjpjcmVhdGUoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIHZpZGVvU291cmNlKQog
ewpAQCAtODUsNyArODQsNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29h
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgIH0KIAogICAg
IEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpD
TVNhbXBsZUJ1ZmZlclR5cGUpOwotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxD
VlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0
Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOworICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVy
KSk7CiAgICAgYXV0byBwaXhlbEZvcm1hdFR5cGUgPSBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3Jt
YXRUeXBlKHBpeGVsQnVmZmVyKTsKIAogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBj
b252ZXJ0ZWRCdWZmZXIgPSBwaXhlbEJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1
cmVyTWFjLm1tCmluZGV4IDc4YmJjYWQxMzk5ODYyZjU1Yjk3MGJlNDc3ZjI1MTRjNGYzNDg0NTQu
LjEyOTNkYTU1OWY5MjlhN2FlZWM1NGQwN2FhOWFlNGY5OTRmOTViNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVy
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dp
bmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQpAQCAtNDYsNyArNDYsNiBAQAogV1RGX0RFQ0xBUkVf
Q0ZfVFlQRV9UUkFJVChDR0ltYWdlKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIAogc3RhdGljIGJvb2wgYW55T2ZDR1dpbmRvdyhjb25zdCBGdW5jdGlvbjxi
b29sKENGRGljdGlvbmFyeVJlZiBpbmZvLCB1bnNpZ25lZCBpZCwgY29uc3QgU3RyaW5nJiB0aXRs
ZSk+JiBwcmVkaWNhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
TWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKaW5kZXggYTE2
ZDI0MjU2NDFmMzdhMTlkMGMwOWU1NGJjM2VlZjRhYTI4MThlYS4uMGJhYzFlMjg5ZTc3NzJlYWU3
ZTZiMzY5ODEwODU5NGI3YTY4Njg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcApA
QCAtMzQsMTcgKzM0LDE3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIGNyZWF0ZVdyYXBw
ZXIoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFibGUqIGJhc2VWVGFi
bGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwgQ01CYXNlT2JqZWN0UmVmKiB3cmFwcGVyKQogewot
ICAgIHJldHVybiBDTURlcml2ZWRPYmplY3RDcmVhdGUoYWxsb2NhdG9yLCBiYXNlVlRhYmxlLCBj
bGFzc0lELCB3cmFwcGVyKSA9PSBub0VycjsKKyAgICByZXR1cm4gUEFMOjpDTURlcml2ZWRPYmpl
Y3RDcmVhdGUoYWxsb2NhdG9yLCBiYXNlVlRhYmxlLCBjbGFzc0lELCB3cmFwcGVyKSA9PSBub0Vy
cjsKIH0KIAogdm9pZCogd3JhcHBlclN0b3JhZ2UoQ01CYXNlT2JqZWN0UmVmIHdyYXBwZXIpCiB7
Ci0gICAgcmV0dXJuIENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOworICAg
IHJldHVybiBQQUw6OkNNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOwogfQog
CiBjb25zdCBDTUJhc2VWVGFibGUqIHdyYXBwZXJWVGFibGUoQ01CYXNlT2JqZWN0UmVmIHdyYXBw
ZXIpCiB7Ci0gICAgcmV0dXJuIENNQmFzZU9iamVjdEdldFZUYWJsZSh3cmFwcGVyKTsKKyAgICBy
ZXR1cm4gUEFMOjpDTUJhc2VPYmplY3RHZXRWVGFibGUod3JhcHBlcik7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlh
Rm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKaW5kZXggYzE4NGU0
NDdiMmNkNDQyYTg0N2VjMzE2MjMzNmI2ZmFmNzg3M2M3Yy4uNWU3NzhjYzBiN2JkYTc0ZTNmNzVj
OTliNThiYThiZmEyNTE3MjkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCkBA
IC00Nyw3ICs0Nyw2IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoTVRQbHVnaW5Gb3JtYXRS
ZWFkZXIpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50
aWZpZXIoKQpAQCAtMjQ1LDcgKzI0NCw3IEBAIE9TU3RhdHVzIE1lZGlhRm9ybWF0UmVhZGVyOjpj
b3B5UHJvcGVydHkoQ0ZTdHJpbmdSZWYga2V5LCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0CiAgICAg
aWYgKG1fZHVyYXRpb24uaXNJbmRlZmluaXRlKCkpCiAgICAgICAgIHJldHVybiBrQ01CYXNlT2Jq
ZWN0RXJyb3JfVmFsdWVOb3RBdmFpbGFibGU7CiAKLSAgICBpZiAoYXV0byBsZWFrZWREdXJhdGlv
biA9IGFkb3B0Q0YoQ01UaW1lQ29weUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1lKG1fZHVyYXRp
b24pLCBhbGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKKyAgICBpZiAoYXV0byBsZWFrZWREdXJhdGlv
biA9IGFkb3B0Q0YoUEFMOjpDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5KFBBTDo6dG9DTVRpbWUobV9k
dXJhdGlvbiksIGFsbG9jYXRvcikpLmxlYWtSZWYoKSkgewogICAgICAgICAqcmVpbnRlcnByZXRf
Y2FzdDxDRkRpY3Rpb25hcnlSZWYqPih2YWx1ZUNvcHkpID0gbGVha2VkRHVyYXRpb247CiAgICAg
ICAgIHJldHVybiBub0VycjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdl
LmNwcAppbmRleCBkODNlZmNmNDc3NWNlOTZiMTJhODc2MGY4ZDE3MjM0YWIwZjFlZTdkLi40ZGUx
ZDBlZDJhN2JlNDllM2NiYmI5NWUzNzdmNTQ1MDlmYWMwN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRp
YVNhbXBsZUJ5dGVSYW5nZS5jcHAKQEAgLTI1LDEyICsyNSwxMiBAQAogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVCeXRlUmFuZ2UuaCIKKyNpbmNsdWRlIDxwYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogI2lmIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIp
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVS
YW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJj
ZSwgdWludDY0X3QgdHJhY2tJRCkKQEAgLTUwLDcgKzUwLDcgQEAgTWVkaWFTYW1wbGVCeXRlUmFu
Z2U6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIE1UUGx1Z2luQnl0
ZVNvdXIKICAgICBhdXRvIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCk7
CiAgICAgc3dpdGNoIChwbGF0Zm9ybVNhbXBsZS50eXBlKSB7CiAgICAgY2FzZSBQbGF0Zm9ybVNh
bXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlOgotICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0g
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUu
Y21TYW1wbGVCdWZmZXIpOworICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNh
bXBsZUJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6OkJ5
dGVSYW5nZVNhbXBsZVR5cGU6CiAgICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBwbGF0Zm9y
bVNhbXBsZS5zYW1wbGUuYnl0ZVJhbmdlU2FtcGxlLnNlY29uZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1w
bGVDdXJzb3IuY3BwCmluZGV4IGNlMjkwNmRjNDQyOWI4NzUxNGE3YjAwYzMyMTczOTJkNTA3YjNm
OTUuLmZiZTQyMjczMDZmODBmNjFjMTI3YzMzOGM3MWVmYTU0YTJkMjBjODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1
cnNvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L01lZGlhU2FtcGxlQ3Vyc29yLmNwcApAQCAtNDMsNyArNDMsNiBAQCBXVEZfREVDTEFSRV9DRl9U
WVBFX1RSQUlUKE1UUGx1Z2luU2FtcGxlQ3Vyc29yKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGlj
IE1lZGlhVGltZSBhc3N1bWVkRGVjb2RlVGltZShjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlv
blRpbWUsIERlY29kZU9yZGVyU2FtcGxlTWFwJiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRl
ci5jcHAKaW5kZXggOTA4NjFjODRkZGU2YzY2ZGRiODc3OTNhYjIzMDZhNjZlNGRlYjczMS4uMWRj
MWNhZTAzMDA4ZTBhMjBhNDRhYzczZDFhYTM3MjUzNTdmMjBmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRy
YWNrUmVhZGVyLmNwcApAQCAtNDcsNyArNDcsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlU
KE1UUGx1Z2luVHJhY2tSZWFkZXIpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBDTUJhc2VDbGFzc0lEIE1l
ZGlhVHJhY2tSZWFkZXI6OndyYXBwZXJDbGFzc0lEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGlu
YXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9H
cm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbQppbmRleCAxN2Q3OWYxNjEwNTZhMDEwYTRlYWM1
ODJmZDI3ODY4ZjM4OGE2MjExLi4xZTM4ZGU1ZGJkYTllMTU3MTI4ZjFmNDBkYWFkMWM0OTE5MGUz
MDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2
aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9y
Lm1tCkBAIC0xMDIsOCArMTAyLDYgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNp
bmcgbmFtZXNwYWNlIFBBTDsKLQogUmVmPEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yPiBHcm91
cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6Y3JlYXRlKEdyb3VwQWN0aXZpdGllc1Nlc3Npb24mIHNl
c3Npb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR3JvdXBBY3Rpdml0aWVzQ29vcmRp
bmF0b3Ioc2Vzc2lvbikpOwpAQCAtMTU0LDcgKzE1Miw3IEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVz
Q29vcmRpbmF0b3I6OmxlYXZlKCkKIAogdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6
c2Vla1RvKGRvdWJsZSB0aW1lLCBDb29yZGluYXRvckNvbXBsZXRpb25IYW5kbGVyJiYgY2FsbGJh
Y2spCiB7Ci0gICAgW21fcGxheWJhY2tDb29yZGluYXRvciBjb29yZGluYXRlU2Vla1RvVGltZTpD
TVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgMTAwMCkgb3B0aW9uczowXTsKKyAgICBbbV9wbGF5
YmFja0Nvb3JkaW5hdG9yIGNvb3JkaW5hdGVTZWVrVG9UaW1lOlBBTDo6Q01UaW1lTWFrZVdpdGhT
ZWNvbmRzKHRpbWUsIDEwMDApIG9wdGlvbnM6MF07CiAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0
KTsKIH0KIApAQCAtMjExLDEwICsyMDksMTAgQEAgdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGlu
YXRvcjo6aXNzdWVQbGF5Q29tbWFuZChBVkRlbGVnYXRpbmdQbGF5YmFja0Nvb3JkaW5hdG8KIAog
ICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBpdGVtVGltZTsKICAgICBpZiAoQ01USU1FX0lTX05V
TUVSSUMocGxheUNvbW1hbmQuaXRlbVRpbWUpKQotICAgICAgICBpdGVtVGltZSA9IENNVGltZUdl
dFNlY29uZHMocGxheUNvbW1hbmQuaXRlbVRpbWUpOworICAgICAgICBpdGVtVGltZSA9IFBBTDo6
Q01UaW1lR2V0U2Vjb25kcyhwbGF5Q29tbWFuZC5pdGVtVGltZSk7CiAgICAgc3RkOjpvcHRpb25h
bDxNb25vdG9uaWNUaW1lPiBob3N0VGltZTsKICAgICBpZiAoQ01USU1FX0lTX05VTUVSSUMocGxh
eUNvbW1hbmQuaG9zdENsb2NrVGltZSkpCi0gICAgICAgIGhvc3RUaW1lID0gTW9ub3RvbmljVGlt
ZTo6ZnJvbU1hY2hBYnNvbHV0ZVRpbWUoQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5p
dHMocGxheUNvbW1hbmQuaG9zdENsb2NrVGltZSkpOworICAgICAgICBob3N0VGltZSA9IE1vbm90
b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKFBBTDo6Q01DbG9ja0NvbnZlcnRIb3N0VGlt
ZVRvU3lzdGVtVW5pdHMocGxheUNvbW1hbmQuaG9zdENsb2NrVGltZSkpOwogCiAgICAgY2xpZW50
KCktPnBsYXlTZXNzaW9uKGl0ZW1UaW1lLCBob3N0VGltZSwgW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldIChib29sKSB7CiAgICAgICAgIGNhbGxiYWNrKCk7CkBAIC0yNDYsNyArMjQ0LDcg
QEAgdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6aXNzdWVTZWVrQ29tbWFuZChBVkRl
bGVnYXRpbmdQbGF5YmFja0Nvb3JkaW5hdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGNsaWVudCgpLT5zZWVrU2Vzc2lvblRvVGltZShDTVRpbWVHZXRTZWNvbmRzKHNlZWtDb21tYW5k
Lml0ZW1UaW1lKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChib29sKSBtdXRhYmxl
IHsKKyAgICBjbGllbnQoKS0+c2Vla1Nlc3Npb25Ub1RpbWUoUEFMOjpDTVRpbWVHZXRTZWNvbmRz
KHNlZWtDb21tYW5kLml0ZW1UaW1lKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChi
b29sKSBtdXRhYmxlIHsKICAgICAgICAgY2FsbGJhY2soKTsKICAgICB9KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0K
aW5kZXggNDI3OTY5YzI4MjExOGFjM2MzZDc3MDgzZWFiODJkOTVmZDBhYmVmZi4uMTcxZDljYTQ4
NDkxNWQ3YWY0ZWVhZDY5NzA5OTkxZTUwNGQ0Mjc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTI2OSw3ICsy
NjksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0
aW9ucygpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAgIGlmICghaXNBdWRpb1Rv
b2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxvYWRfQXVkaW9Ub29sYm94Q29y
ZV9BdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucygpKQorICAgIGlmICghUEFM
Ojppc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhUEFMOjpjYW5Mb2Fk
X0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMo
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2ds
b2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2Nv
YS5tbQppbmRleCBmMzc4NGZjMjcxMmIwZGY2Mzg3MTIwNDdjZDcyZjg1MzBjNzc3MjM0Li4yYTgz
ZDk3MTBiZjcyNTVlNTkzODVjMWIxZjY1OTM0YzI2MzA1NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2Vy
Q29jb2EubW0KQEAgLTQyLDcgKzQyLDYgQEAgQGVuZAogTlNfQVNTVU1FX05PTk5VTExfRU5ECiAK
IG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBzdGF0aWMgYm9vbCB1c2FnZVRyYWNraW5nQXZhaWxhYmxlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcAppbmRleCBjMzIzYTZhNzhiNDUwMDViNjc3NDA4NjJiNjI5YjE2ZmJi
ODBmNDBiLi5mODkxYTUzMzE0NTBiZjE3ZWFmOTViMDBlMzE4ZGFlM2M3Mzg3NTRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3Bh
Y2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmlj
ZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2Vy
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHkuY3BwCmluZGV4IDk1YmJkNTQ4M2NmZWExN2M5MTJlZDViNWYxM2Y0MzFmYWUzNzEyNjcu
LjhhNTlhZTFhMjhmYTQzYTliMmYyMTU3NjIxMTg5YWU5NzZkMTAyZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlUHJveHkuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA2
NmExOWU3M2E5ZWI1NjRkY2NlMDc3N2RjMzIwMGU0YzBiYzkzYzYwLi44YWNjM2QwYThhYjFjY2Q0
YjNmZWNhZDYwYjNhNmJjM2FlNjQzMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEzOTIsNyArMTM5Miw3IEBAIHZvaWQg
V2ViUHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyhjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIGRhCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAgIGlm
ICghaXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxvYWRfQXVk
aW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucygpKQor
ICAgIGlmICghUEFMOjppc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAh
UEFMOjpjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJl
Z2lzdHJhdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZWdpc3RyYXRpb25z
ID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YS5kYXRhKCks
IGRhdGEuc2l6ZSgpKSk7Cg==
</data>
<flag name="commit-queue"
          id="454066"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432119</attachid>
            <date>2021-06-23 17:27:05 -0700</date>
            <delta_ts>2021-06-23 18:06:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210624102703.patch</filename>
            <type>text/plain</type>
            <size>314241</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxYWM3ZDA0MjEwOWQ2
MDlmMGU3ZTdjN2MyNjQ1MGE1ZWJkYjY0Ni4uNWM5ODEyOTYyMDNmMDdlMGFhMTM2MmY1YjRiYjZm
OTlhNjhmOTQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlIG9m
IEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgVW5pZnkgQXVkaW9Ub29sYm94LCBDb3JlTWVkaWEsIFZpZGVvVG9vbGJveCBhbmQg
TWVkaWFUb29sYm94J3MgbWV0aG9kCisgICAgICAgIGRlZmluaXRpb25zIGFuZCB0aGVpciB1c2Us
IGVuc3VyaW5nIHRoYXQgdGhleSBhcmUgYWx3YXlzIHNvZnQtbGlua2VkLgorICAgICAgICBVbmlm
aWVkIGJ1aWxkcyBhbmQgdGhlIGluY29uc2lzdGVudCB1c2Ugb2YgZXhwbGljaXRseSB1c2luZyB0
aGUgUEFMIG5hbWVzcGFjZQorICAgICAgICBjYXVzZWQgc29tZSBjYWxscyB0byBiZSBhbWJpZ3Vv
dXMgbGVhZGluZyB0byBjb21waWxhdGlvbiBlcnJvcnM7IHNvbWUKKyAgICAgICAgY29kZSB3b3Vs
ZCBhbHNvIHVzZSB0aGUgc29mdGxpbmtlZCBtZXRob2RzIHdoaWxlIG90aGVycyBjYWxsZWQgaW50
byB0aGUgZnJhbWV3b3JrcworICAgICAgICBkaXJlY3RseS4KKyAgICAgICAgVG8gZ2V0IGFyb3Vu
ZCB0aG9zZSB3ZSBlbnN1cmUgdGhhdCBhbnkgY2FsbHMgdG8gQXVkaW9Ub29sYm94IG9yIENvcmVN
ZWRpYSBpcyBhbHdheXMgdXNpbmcKKyAgICAgICAgdGhlIGZ1bGx5IHJlc29sdmVkIFBBTCBuYW1l
LgorICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgYHVzaW5nIG5hbWVzcGFjZSBQQUw7YCBzdGF0
ZW1lbnRzIHdoZXJldmVyIGFwcGxpY2FibGUuCisgICAgICAgIE5vIGNoYW5nZSBpbiBvYnNlcnZh
YmxlIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0ZpbGVSZWFkZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3ApOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW06CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3Vy
ZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlVmlkZW9T
YW1wbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnBy
ZXBhcmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2Vzc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
SW1hZ2VHZW5lcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwbGF0Zm9ybU1pblRpbWVTZWVrYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVy
Zm9ybVRhc2tBdE1lZGlhVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6c3RvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
aXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRD
aGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNlZWtJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRl
c3Ryb3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OnZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJl
Zj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0
ZUltYWdlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6cHJl
c2VudGF0aW9uVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmRlY29kZVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkdXJhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OnNpemVJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6dmlkZW9QaXhlbEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpkb2Vz
Q01TYW1wbGVCdWZmZXJIYXZlU3luY0luZm8pOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBs
ZUJ1ZmZlclJhbmRvbUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjppc0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudE5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpD
OjpwcmVzZW50YXRpb25TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6OmlzRGl2aXNhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6aXNIb21vZ2VuZW91cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZl
ckFuZFNldEFzRGlzcGxheUltbWVkaWF0ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhblNldE1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNr
RGF0YTo6Y29uc3VtZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1l
RnJhbWVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1
ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFRvQ01Db2xvclByaW1hcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VG9DTVRy
YW5zZmVyRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01ZQ2JDUk1hdHJp
eCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVj
Q29uZmlndXJhdGlvblJlY29yZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tOgorICAgICAgICAoV1RGOjpDRlR5cGVUcmFp
dDxDTVNhbXBsZUJ1ZmZlclJlZj46OnR5cGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29t
cHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0VmlkZW9G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1
dG9tYXRpY0RlcXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50YXRpb25UaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RHVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVmZmVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnVwZGF0
ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWth
YmxlUmFuZ2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0
dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dX
YXRlclRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm9jZXNzU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29t
cHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNz
ZXRXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjph
cHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXApOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRp
b1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y29tcGxldGVGZXRjaERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpyZXN1bWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZp
bmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZp
ZGVvQ29tcHJlc3Npb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OnZ0UHJvZmlsZUxldmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1w
bGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkxvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZyYW1lRHVyYXRpb25Gb3JGcmFtZVJhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJlc2V0cyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNl
Q2xvY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNl
dHVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNv
bmZpZ3VyZU1pY3JvcGhvbmVQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpD
b3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW06CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbToKKwogMjAyMS0wNi0yMSAgSmVhbi1Z
dmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbWV0
aG9kIGluIEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZGVmZDdiNzZlNzZh
MDA4M2I2ZjhiNTYzNjgyNzBkY2YyMzc5ZGVhNi4uZGJlNjY3YWNjMTBlMmZiZDkyNjQwNzYxNmVl
N2ZmOWQyMDBmN2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEt
MDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBOb3Qg
YWxsIHVzZSBvZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAg
ICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaDogQWRkIG1ldGhvZHMgd2hvc2Ug
ZGVmaW5pdGlvbnMgd2VyZSBzY2F0dGVyZWQgYWNyb3NzCisgICAgICAgIHRoZSBjb2RlLgorICAg
ICAgICAqIHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFs
L2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmg6IFNhbWUgYXMgYWJvdmUuCisgICAgICAgICog
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9U
b29sYm94U29mdExpbmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kcworICAgICAgICAqIHBhbC9jZi9D
b3JlTWVkaWFTb2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg6IEFkZCBtaXNzaW5nIG1ldGhvZHMKKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQg
bWlzc2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAg
ICAgICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBh
bC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIw
MjEtMDYtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0Nv
Y29hXSBNYWtlIHRoZSBob3N0VGltZSBwYXJhbWV0ZXIgdG8gcGxheVNlc3Npb24gYSBNb25vdG9u
aWMgdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA1N2RjYjU2ZmJhODAzZjZmYzEyZDE5NDRhNTBjYjVjY2ZiODFm
NjI0Li41OTc3NDNiNGNjOTAwZGZlYzE0MzE5ZWVlMzhhYjdjNDdiMjg2MTUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMzIEBACisyMDIxLTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBs
ZS5jb20+CisKKyAgICAgICAgTm90IGFsbCB1c2Ugb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1
c2Ugc29mdCBsaW5raW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjcyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NjA2MDkwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpjb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKFdlYktpdDo6d3JhcHBlclN0b3JhZ2Up
OgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyVlRhYmxlKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFGb3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eSk6CisgICAgICAgICogU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZSk6CisgICAg
ICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHA6
CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVy
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVn
aXN0cmF0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VN
YW5hZ2VyQ29jb2EubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVBdWRp
b0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorCiAyMDIxLTA2LTIzICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbaU9TIDE1IFJlZ3Jlc3Npb25dOiBz
Y3JvbGwgcG9zaXRpb24gcmVzZXRzIHdoZW4gdXNpbmcgc2Nyb2xsIHNuYXAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcAppbmRleCA2YTgyM2Q2MWFkMTAxMDMyYmJlMTk0YTYyYjViNjE1NmQyM2NhYjEy
Li4wOWMyZWEzMjljMmMwY2E2ZWU2ZjdiYTNhMmM0NGFkZjgzNDhlNWY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCkBAIC01Myw4ICs1Myw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogI2lmICFVU0UoTElCV0VCUlRDKQogc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxQZWVyQ29ubmVjdGlvbkJhY2tlbmQ+IGNyZWF0ZU5vUGVlckNvbm5lY3Rpb25C
YWNrZW5kKFJUQ1BlZXJDb25uZWN0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRl
eCA0MDBmOWI4ZDE2YjU5M2I0ODVlMDBjN2Y3OGY1OWRlOThkYzM3ZDlmLi43NDk5NGUyYzUxMDBl
Y2FiYTYxNTkwZmIxMTgwYWEwYmMzN2IwZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBA
IC01OCw3ICs1OCw2IEBACiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhWYWx1ZUluQ29u
dGV4dChpZCwgSlNDb250ZXh0ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4
IDViMTM1YjM5YTVhMGExZDgwMWJlNjg3OGZiZGZmNjc2NmMyZThhY2UuLmYxYzJhZjMzYzVmYTJh
YjZmYzUxNjY5OTgzZmE3MGU3Njk2NDAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5j
cHAKQEAgLTM3LDggKzM3LDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCi11c2luZyBuYW1lc3BhY2UgUEFM
OwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIHN0cmVhbURlc2NyaXB0aW9uKHNpemVfdCBzYW1wbGVSYXRlLCBzaXplX3QgY2hh
bm5lbENvdW50KQpAQCAtNzEsNyArNjksNyBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6
OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyYgYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFrZSht
X251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCkpOworICAgIENN
VGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9jdXJy
ZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9N
ZWRpYVRpbWUoc3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJh
bWVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJv
eFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuY3BwCmluZGV4IDY3Yjc4ZjQ2YTc4MTE3ODg4ZjAwZDA4OTdkYmE1N2U3YWM1Mzg1MDIu
LjMzM2FhMjI0YzcxYTc1MGNkOWEwZjY5Zjc4M2RkMDE1OTc1MTBhYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0yNiwy
MCArMjYsNDYgQEAKIAogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxBdWRpb1Rv
b2xib3gvQXVkaW9Db21wb25lbnQuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db252
ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8
QXVkaW9Ub29sYm94L0F1ZGlvRm9ybWF0Lmg+Ci0KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVk
aW9Vbml0Lmg+CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CiAj
aW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgUEFMX0VYUE9SVCkKIAor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHlJbmZvLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVk
aW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
Miogb3V0U2l6ZSwgQm9vbGVhbiogb3V0V3JpdGFibGUpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Q
cm9wZXJ0eUlELCBvdXRTaXplLCBvdXRXcml0YWJsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0
dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZp
ZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNp
emUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6
ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZl
cnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGlu
U291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGlu
YXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNv
dXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVy
dGVyRGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVy
KSwgKGluQXVkaW9Db252ZXJ0ZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVk
aW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Q
cm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5
RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywg
KEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQ
cm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5
RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciwg
T1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIgaW5O
dW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1ZGlv
QnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJlclBD
TUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhC
dWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVk
aW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGlu
SW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1
ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlv
biogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQ
cm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0
T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRpb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RvcCwgT1NTdGF0dXMsIChBdWRpb1Vu
aXQgY2kpLCAoY2kpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2UgaW5JbnN0YW5jZSksIChpbkluc3RhbmNlKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudENvcHlOYW1l
LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBDRlN0cmluZ1JlZiogb3V0
TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9D
b21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmKiBv
dXRCdW5kbGVSZWdpc3RyYXRpb25zKSwgKG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0
aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYgaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgKGluQnVu
ZGxlUmVnaXN0cmF0aW9ucyksIFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRp
b0ZpbGVJRCBpbkF1ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Ms
IE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFk
RnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQ
cm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBB
dWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUp
LCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywg
aW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9z
ZSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRp
b0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gs
IEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4
dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiAq
aW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0Zp
bGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlv
RmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBVSW50
MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSksIChpbkV4dEF1ZGlv
RmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVz
LCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCAqaW5Q
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURh
dGFTaXplLCBpblByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywg
KEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxl
UmVmICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVk
aW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRp
b0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKKwor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29t
cG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25l
bnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChpbkNvbXBvbmVu
dCwgaW5EZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50
IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5jZSksIChpbkNv
bXBvbmVudCwgb3V0SW5zdGFuY2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29w
ZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9E
YXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9E
YXRhU2l6ZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwgKGlu
VW5pdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9V
bml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVt
ZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChp
blVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKIAog
I2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKaW5kZXggNDllMzJlMTc5NDAzNjNiODQ5Nzc0NDM1
YmQyMDk1ZTY0YWI0ODgxYi4uZGRmMTNhMDI3YTQ1YTIyYjgzOThkMTM1ZThlMGIzZGZjNjg1NTJi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0
TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExp
bmsuaApAQCAtMjYsMjcgKzI2LDExNCBAQAogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAorI2lu
Y2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgogCiB0eXBlZGVmIFVJbnQzMiBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQ7CiB0eXBl
ZGVmIFVJbnQzMiBBdWRpb0Zvcm1hdFByb3BlcnR5SUQ7CiB0eXBlZGVmIHN0cnVjdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24gQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uOwogdHlwZWRl
ZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db252ZXJ0ZXIqIEF1ZGlvQ29udmVydGVyUmVmOwordHlwZWRl
ZiBzdHJ1Y3QgQXVkaW9CdWZmZXJMaXN0IEF1ZGlvQnVmZmVyTGlzdDsKK3R5cGVkZWYgT1NTdGF0
dXMgKCpBdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKShBdWRpb0NvbnZlcnRlclJl
ZiBpbkF1ZGlvQ29udmVydGVyLAorICAgIFVJbnQzMiogaW9OdW1iZXJEYXRhUGFja2V0cywKKyAg
ICBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSwKKyAgICBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0
aW9uKiogb3V0RGF0YVBhY2tldERlc2NyaXB0aW9uLAorICAgIHZvaWQqIGluVXNlckRhdGEpOwor
Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqIEV4dEF1ZGlvRmlsZVJlZjsKK3R5
cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvRmlsZUlEKiBBdWRpb0ZpbGVJRDsKK3R5cGVkZWYgVUlu
dDMyIEF1ZGlvRmlsZVR5cGVJRDsKK3R5cGVkZWYgVUludDMyIEV4dEF1ZGlvRmlsZVByb3BlcnR5
SUQ7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1JlYWRQcm9jKSgKKyAgICB2b2lkKiBp
bkNsaWVudERhdGEsCisgICAgU0ludDY0IGluUG9zaXRpb24sCisgICAgVUludDMyIHJlcXVlc3RD
b3VudCwKKyAgICB2b2lkKiBidWZmZXIsCisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7Cit0eXBl
ZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1dyaXRlUHJvYykoCisgICAgdm9pZCogaW5DbGllbnRE
YXRhLAorICAgIFNJbnQ2NCBpblBvc2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQsCisg
ICAgY29uc3Qgdm9pZCogYnVmZmVyLAorICAgIFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlwZWRl
ZiBTSW50NjQgKCpBdWRpb0ZpbGVfR2V0U2l6ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0
YSk7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1NldFNpemVQcm9jKSgKKyAgICB2b2lk
KiBpbkNsaWVudERhdGEsCisgICAgU0ludDY0IGluU2l6ZSk7Cit0eXBlZGVmIHN0cnVjdCBPcGFx
dWVBdWRpb0NvbXBvbmVudCogQXVkaW9Db21wb25lbnQ7CisKKyNpZiBUQVJHRVRfT1NfSVBIT05F
IHx8IChkZWZpbmVkKEFVRElPQ09NUE9ORU5UX05PQ0FSQk9OSU5TVEFOQ0VTKSAmJiBBVURJT0NP
TVBPTkVOVF9OT0NBUkJPTklOU1RBTkNFUykKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29t
cG9uZW50SW5zdGFuY2UqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7CisjZWxzZQordHlwZWRlZiBz
dHJ1Y3QgQ29tcG9uZW50SW5zdGFuY2VSZWNvcmQqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7Cisj
ZW5kaWYKK3R5cGVkZWYgQXVkaW9Db21wb25lbnRJbnN0YW5jZSBBdWRpb1VuaXQ7CisKK3R5cGVk
ZWYgc3RydWN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gQXVkaW9Db21wb25lbnREZXNjcmlw
dGlvbjsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdFByb3BlcnR5SUQ7Cit0eXBlZGVmIFVJbnQz
MiBBdWRpb1VuaXRTY29wZTsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdEVsZW1lbnQ7CiAKIFNP
RlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRfTElO
S19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUpCiAKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5SW5mbywgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVy
dGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIG91dFNp
emUsIEJvb2xlYW4qIG91dFdyaXRhYmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJ
RCwgb3V0U2l6ZSwgb3V0V3JpdGFibGUpKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFByb3Bl
cnR5SW5mbyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUlu
Zm8KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRp
b0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVk
aW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
MiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0Nv
bnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0
YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVy
dGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlv
bkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlck5ldyBz
b2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJOZXcKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2UsIE9T
U3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlvQ29u
dmVydGVyKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9BdWRpb0NvbnZlcnRlckRpc3Bvc2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5LCBPU1N0YXR1cywg
KEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQq
IGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW5Qcm9w
ZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyU2V0
UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Zv
cm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9ybWF0UHJvcGVydHlJRCBpblByb3Bl
cnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0IHZvaWQqIGluU3BlY2lmaWVyLCBV
SW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluUHJv
cGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmllciwgaW9Qcm9wZXJ0eURhdGFTaXpl
LCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5IHNvZnRM
aW5rX0F1ZGlvVG9vbGJveF9BdWRpb0Zvcm1hdEdldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29t
cGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVy
LCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1
dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVy
LCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorI2RlZmlu
ZSBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1
ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRp
b0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywgdm9pZCogaW5J
bnB1dERhdGFQcm9jVXNlckRhdGEsIFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgQXVk
aW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9u
KiBvdXRQYWNrZXREZXNjcmlwdGlvbiksIChpbkF1ZGlvQ29udmVydGVyLCBpbklucHV0RGF0YVBy
b2MsIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRTaXplLCBvdXRP
dXRwdXREYXRhLCBvdXRQYWNrZXREZXNjcmlwdGlvbikpCisjZGVmaW5lIEF1ZGlvQ29udmVydGVy
RmlsbENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyRmls
bENvbXBsZXhCdWZmZXIKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAo
Y2kpKQorI2RlZmluZSBBdWRpb091dHB1dFVuaXRTdGFydCBzb2Z0TGlua19BdWRpb1Rvb2xib3hf
QXVkaW9PdXRwdXRVbml0U3RhcnQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBj
aSksIChjaSkpCisjZGVmaW5lIEF1ZGlvT3V0cHV0VW5pdFN0b3Agc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvT3V0cHV0VW5pdFN0b3AKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSwgT1NTdGF0dXMs
IChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAoaW5JbnN0YW5jZSkpCisjZGVm
aW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9B
dWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUsIE9TU3RhdHVzLCAo
QXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXROYW1lKSwgKGluQ29t
cG9uZW50LCBvdXROYW1lKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRDb3B5TmFtZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRDb3B5TmFtZQorCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9u
ZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0QnVu
ZGxlUmVnaXN0cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSkKICNkZWZpbmUgQXVk
aW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExpbmtBdWRpb1Rvb2xib3hD
b3JlQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMKIFNPRlRfTElOS19GVU5D
VElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21w
b25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGluQnVu
ZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2RlZmluZSBBdWRp
b0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlvVG9vbGJveENv
cmVBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucwogCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3Rh
dHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQorI2RlZmluZSBB
dWRpb0ZpbGVDbG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxlQ2xvc2UKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVPcGVu
V2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkKiBpbkNsaWVudERhdGEsIEF1ZGlvRmlsZV9S
ZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBBdWRp
b0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9jIGlu
U2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxlSUQq
IG91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5jLCBp
bkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9GaWxl
KSkKKyNkZWZpbmUgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0F1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9zZSwgT1NTdGF0dXMsIChF
eHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRpb0ZpbGUpKQorI2RlZmlu
ZSBFeHRBdWRpb0ZpbGVEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVE
aXNwb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
RXh0QXVkaW9GaWxlR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0
QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBp
b1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmls
ZSwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCisj
ZGVmaW5lIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRB
dWRpb0ZpbGVHZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVm
IGluRXh0QXVkaW9GaWxlLCBVSW50MzIqIGlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3Qq
IGlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCisjZGVm
aW5lIEV4dEF1ZGlvRmlsZVJlYWQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZVJl
YWQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRB
dWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRp
b0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9w
ZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmls
ZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKKyNk
ZWZpbmUgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1
ZGlvRmlsZVNldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywgKEF1ZGlv
RmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxlUmVmKiBv
dXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVkaW9GaWxl
KSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9FeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywg
KENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVS
TCwgb3V0RXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlT3BlblVSTCBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlT3BlblVSTAorCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4dCwgQXVk
aW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVkaW9Db21w
b25lbnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQorI2RlZmlu
ZSBBdWRpb0NvbXBvbmVudEZpbmROZXh0IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbXBv
bmVudEZpbmROZXh0CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVu
dCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5D
b21wb25lbnQsIG91dEluc3RhbmNlKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldworU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFBy
b3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQg
aW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQs
IHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2Nv
cGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5pdEdl
dFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRHZXRQcm9wZXJ0eQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdElu
aXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorI2RlZmlu
ZSBBdWRpb1VuaXRJbml0aWFsaXplIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRJbml0
aWFsaXplCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9V
bml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVt
ZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChp
blVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKKyNk
ZWZpbmUgQXVkaW9Vbml0U2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5p
dFNldFByb3BlcnR5CisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAppbmRleCBjMTQzOTJiYTJj
OTE0MmQ1MWI0NzRlN2QyNDQ4MGI5NzE5ZjhhNGM2Li5kZjk4N2NmNzgwZjlkNDllOGQ1MGUxYWVh
M2Y2YTlkY2IwZGE0MDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNQnVm
ZmVyUXVldWUuaD4KICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAjZW5kaWYKIApA
QCAtNDcsNiArNDgsOCBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0
ZXMsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVTb3VyY2VCdWZmZXIsIHNpemVfdCBv
ZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCB2b2lkKiBkZXN0aW5hdGlvbiksICh0aGVT
b3VyY2VCdWZmZXIsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZGVzdGluYXRpb24pLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBD
TUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3Rp
bmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25CdWZm
ZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCksIFBBTF9FWFBPUlQpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
bG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYg
dGhlQnVmZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERh
dGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyLCBzaXplX3Qg
b2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXplX3QqIHRvdGFsTGVuZ3RoT3V0
LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBvZmZzZXQsIGxlbmd0aEF0T2Zm
c2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
Rm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZvcm1h
dERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJHZXRUeXBlSUQsIENGVHlwZUlELCAodm9pZCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCkBAIC0xMDQsOSArMTA3LDkgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0
RGVzY3JpcHRpb25HZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRl
ciwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01O
b3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNl
bnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxi
YWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVj
dCwgVUludDMyIGZsYWdzKSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRp
b24sIG9iamVjdCwgZmxhZ3MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVt
b3ZlTGlzdGVuZXIsIE9TU3RhdHVzLCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBj
b25zdCB2b2lkKiBsaXN0ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZT
dHJpbmdSZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBsaXN0
ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0KSwgUEFMX0VYUE9SVCkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENN
QmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVm
ZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFr
ZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50
cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVt
Q291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5
LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRh
dGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3Jt
YXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxl
VGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZP
dXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxl
QnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwg
UEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2lu
YWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNv
cHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2Nr
QnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1h
a2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRh
UmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENN
SXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50
IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01T
YW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVh
ZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVz
Y3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWlu
Z0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSwg
UEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZl
clJlZiogc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1
ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1p
bmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZDb3B5T3V0
KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1w
bGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2Ft
cGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdl
QnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9v
bGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0lu
Zm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChh
bGxvY2F0b3IsIGltYWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywg
bWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2Ft
cGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVT
dGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9S
VCkKQEAgLTExNiwxNCArMTE5LDE0IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFByZXNlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbiwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRh
dGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXksIENG
QXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVjZXNz
YXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5m
byAqdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRP
dXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJy
YXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0
ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nQXJy
YXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1Ziwg
dGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVl
ZGVkT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGlt
ZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9k
KSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziks
IChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXIsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01CbG9ja0J1ZmZlclJlZiBidWZmZXIpLCAo
c2J1ZiwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUdldEF0dGFjaG1lbnQsIENGVHlwZVJlZiwg
KENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ01BdHRhY2ht
ZW50TW9kZSogYXR0YWNobWVudE1vZGVPdXQpLCAodGFyZ2V0LCBrZXksIGF0dGFjaG1lbnRNb2Rl
T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRC
ZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENGVHlwZVJlZiB2YWx1ZSwgQ01BdHRh
Y2htZW50TW9kZSBhdHRhY2htZW50TW9kZSksICh0YXJnZXQsIGtleSwgdmFsdWUsIGF0dGFjaG1l
bnRNb2RlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFj
aG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFyZ2V0LCBrZXkpLCBQ
QUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWVi
YXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91
dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENN
VGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWVi
YXNlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1l
YmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdl
dFJhdGUsIEZsb2F0NjQsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWViYXNlU2V0UmF0ZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRp
bWViYXNlLCBGbG9hdDY0IHJhdGUpLCAodGltZWJhc2UsIHJhdGUpLCBQQUxfRVhQT1JUKQpAQCAt
MTQ0LDExICsxNDcsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVEZXF1ZXVlQW4KIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVl
RW5xdWV1ZSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclJlZiBi
dWZmZXIpLCAocXVldWUsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUlzRW1w
dHksIEJvb2xlYW4sIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlbUNvdW50LCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3Mg
KiwgKCksICgpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNv
cnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiwgKCksICgpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01U
aW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3Rh
bGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVl
dWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRy
aWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRyaWdn
ZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBjb25k
aXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2FsbGJh
Y2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIHRy
aWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVyUXVl
dWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxiYWNr
LCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0cmln
Z2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhLCBP
U1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQnVmZmVyUXVldWVHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1
ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90
RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtl
eV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE2OCw0MCArMTczLDQyIEBA
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZl
Y3RpdmVSYXRlQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VO
b3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
YyksIChkZXNjKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qLCAo
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1lbW9yeUJsb2NrLCBzaXplX3QgYmxvY2tM
ZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2NhdG9yLCBjb25zdCBDTUJsb2NrQnVmZmVy
Q3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291cmNlLCBzaXplX3Qgb2Zmc2V0VG9EYXRh
LCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZlckZsYWdzIGZsYWdzLCBDTUJsb2NrQnVm
ZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1cmVBbGxvY2F0b3IsIG1lbW9yeUJsb2Nr
LCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1c3RvbUJsb2NrU291cmNlLCBvZmZzZXRU
b0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXpl
TmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJM
aXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYg
KmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJM
aXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQs
IEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBD
RkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVt
b3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZm
ZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1
ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBm
bGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0TnVt
U2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
Q0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2Nh
dG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQsIENN
SXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJheUVu
dHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBP
UlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNh
bGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRp
b24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFr
ZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMs
IHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9j
YXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9C
dWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZN
ZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1l
IHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2Ny
aXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVm
ZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNv
biwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0
aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNl
bnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFj
a2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNl
bnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpLCBQ
QUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVy
TGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBi
YnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1
aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0KSwgKHNidWYs
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJM
aXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRp
bWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVRpbWUgb3V0cHV0
UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNidWYsIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFt
cCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01C
bG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERl
c2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5
LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVT
aXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9y
LCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGlt
aW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1w
bGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6
ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNp
emUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywg
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwg
bGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNp
b25zLCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRN
YWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVz
Yywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlv
Rm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRl
c2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNv
ZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0qLCAoQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RU
aW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dl
dFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzLCB1aW50NjRfdCwgKENNVGltZSBo
b3N0VGltZSksIChob3N0VGltZSksIFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxG
b3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVz
ICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoIENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQg
KnJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJS
ZWYgc2J1ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIp
KENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlciksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQ
RSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBp
bmRleCwgdm9pZCogcmVmY29uKSwgdm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZj
b24pLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNNU0FNUExFQlVG
RkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQp
KSwgKHNidWYsIGhhbmRsZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdS
ZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX3NSR0IsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9ja091
dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9j
a091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVt
LCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1l
IHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250YWlu
c1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFuZ2Us
IHRpbWUpLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSwgUEFMX0VY
UE9SVCkKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaWYgUExBVEZPUk0oTUFD
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAo
YWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2
aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0
cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2
aWNlVUlELCBjbG9ja091dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0
b3JhZ2UsIHZvaWQqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUq
LCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCksIFBBTF9FWFBPUlQp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgY29uc3QgQ01CYXNlVlRhYmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwg
Q01CYXNlT2JqZWN0UmVmKiBiYXNlT2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFzc0lE
LCBiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaAppbmRleCA3NTI1YjkxOWM2OTVkMzYwOTdiMTExMDMyYjk0Zjc0
N2YxNTFmMWYwLi45OGNjYjc5YWE0ZDkzZTU4M2ZlNTYzNTdhNjE5Y2I4MTdiZTBjYzY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC01MSw2
ICs1MSwxMCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdAogI2RlZmluZSBDTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFMZW5n
dGgKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2Nr
QnVmZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VCeXRl
cywgQ01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldEludG9E
ZXN0aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0aW9u
QnVmZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpKQogI2RlZmluZSBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZl
clJlcGxhY2VEYXRhQnl0ZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9j
a0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSkKKyNkZWZpbmUgQ01CbG9ja0J1ZmZl
ckFzc3VyZUJsb2NrTWVtb3J5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQXNzdXJl
QmxvY2tNZW1vcnkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJl
ZiB0aGVCdWZmZXIsIHNpemVfdCBvZmZzZXQsIHNpemVfdCogbGVuZ3RoQXRPZmZzZXRPdXQsIHNp
emVfdCogdG90YWxMZW5ndGhPdXQsIGNoYXIqKiBkYXRhUG9pbnRlck91dCksICh0aGVCdWZmZXIs
IG9mZnNldCwgbGVuZ3RoQXRPZmZzZXRPdXQsIHRvdGFsTGVuZ3RoT3V0LCBkYXRhUG9pbnRlck91
dCkpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBzb2Z0TGlua19Db3JlTWVk
aWFfQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMsIENG
RGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNk
ZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMgc29mdExpbmtfQ29yZU1lZGlh
X0NNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlE
LCAodm9pZCksICgpKQpAQCAtNjMsNiArNjcsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLAog
I2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8gc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbwogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHksIEJv
b2xlYW4sIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckRhdGFJc1JlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckRhdGFJ
c1JlYWR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBm
b3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVt
U2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1p
bmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCog
c2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNh
bXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmll
cywgc2FtcGxlU2l6ZUFycmF5LCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1l
Q29udmVydFNjYWxlLCBDTVRpbWUsIChDTVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2NhbGUs
IENNVGltZVJvdW5kaW5nTWV0aG9kIG1ldGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1ldGhv
ZCkpCiAjZGVmaW5lIENNVGltZUNvbnZlcnRTY2FsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
Q29udmVydFNjYWxlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01UaW1lQWRkLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1l
MSwgdGltZTIpKQpAQCAtODcsMjkgKzkzLDI5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUVxdWFsLCBCb29sZWFuLCAoQ01UaW1lCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcywgQ0ZTdHJp
bmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2Ny
aXB0aW9uRXh0ZW5zaW9uQXRvbXMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zKCkKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0
aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzIGdl
dF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
Q29sb3JQcmltYXJpZXNfRENJX1AzKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIw
MjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9r
Q01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1
LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NN
Rm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX1AzX0Q2NSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
UDNfRDY1IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19Q
M19ENjUoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvLCBDRlN0cmluZ1JlZikK
LSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRl
bygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVv
IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlk
ZW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikK
LSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRV
X1JfMjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9J
VFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hM
RywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKKyNkZWZpbmUga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIoKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4
NF9QUSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBU
RV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBU
RV9TVF80MjhfMSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80Mjhf
MSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgpCisjZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29yZU1l
ZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0
RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUg
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1h
dHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKKyNkZWZpbmUg
a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFf
a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19D
T05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3RyaW5n
UmVmKQogI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250
ZW50T3JpZ2luYWxGb3JtYXQgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQoKQogU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9zUkdCLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NS
R0IgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpCisjZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCwgQ0ZTdHJp
bmdSZWYpCiAjZGVmaW5lIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCBnZXRfQ29yZU1l
ZGlhX2tDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfTWlk
ZGxlLCBDRlN0cmluZ1JlZikKQEAgLTE1MSw3ICsxNTcsNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9M
ZWZ0LAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRp
bWVJbnZhbGlkLCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVJbnZhbGlkIGdldF9Db3JlTWVkaWFf
a0NNVGltZUludmFsaWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVaZXJvIFBBTDo6Z2V0
X0NvcmVNZWRpYV9rQ01UaW1lWmVybygpCisjZGVmaW5lIGtDTVRpbWVaZXJvIGdldF9Db3JlTWVk
aWFfa0NNVGltZVplcm8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5LCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVQ
b3NpdGl2ZUluZmluaXR5IGdldF9Db3JlTWVkaWFfa0NNVGltZVBvc2l0aXZlSW5maW5pdHkoKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5n
ZUludmFsaWQsIENNVGltZVJhbmdlKTsKQEAgLTE2OSwxMyArMTc1LDEzIEBAIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckFk
ZExpc3RlbmVyLCBPCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIgc29m
dExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRl
clJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRl
ciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ss
IENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0KSwgKGNlbnRlciwg
bGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCkpCiAjZGVmaW5lIENNTm90
aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZp
Y2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBk
YXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVh
ZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291
bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1w
bGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNp
emVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxv
Y2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtl
RGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBz
YW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRh
dGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFk
eUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBs
ZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6
ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9j
YXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VE
YXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNh
bXBsZVNpemVBcnJheSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZD
b3B5T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2J1ZkNvcHlP
dXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1p
bmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3Jp
Z2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1
ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRl
bUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyog
c2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChhbGxv
Y2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5n
QXJyYXksIHNCdWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0
aE5ld1RpbWluZyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0
aE5ld1RpbWluZwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxl
VGltaW5nSW5mbyAqc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChh
bGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBz
QnVmT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRp
bWluZ0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc0J1
Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZm
ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHks
IENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFj
aywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWlu
ZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGltYWdl
QnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJl
ZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2FtcGxlQnVmZmVyT3V0KSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlcgpAQCAtMTkzLDcgKzE5OSw3
IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0T3V0
cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
ckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3JlYXRl
SWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZOZWNlc3NhcnkpKQogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRp
bWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwgQ01J
dGVtQ291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJh
eUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZv
KiB0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91
dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJh
eUVudHJpZXNOZWVkZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvQXJyYXkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBs
ZVNpemUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXpl
CkBAIC0yMDUsNyArMjExLDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWUKICNkZWZpbmUgQ01T
ZXRBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNldEF0dGFjaG1lbnQKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQs
IHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAo
dGFyZ2V0LCBrZXkpKQogI2RlZmluZSBDTVJlbW92ZUF0dGFjaG1lbnQgc29mdExpbmtfQ29yZU1l
ZGlhX0NNUmVtb3ZlQXR0YWNobWVudAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWVi
YXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91
dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1l
YmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0
KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKICNkZWZpbmUgQ01UaW1l
YmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUNy
ZWF0ZVdpdGhNYXN0ZXJDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWVi
YXNlKSwgKHRpbWViYXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdldFRpbWUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNVGltZWJhc2VHZXRUaW1lCkBAIC0yMjcsNyArMjMzLDcgQEAgU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lckRpc3Bh
dGNoU291cmNlVG8KICNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0Zp
cmVJbW1lZGlhdGVseSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0
Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZUNvcHlBc0RpY3Rpb25hcnksIENGRGljdGlvbmFyeVJlZiwg
KENNVGltZSB0aW1lLCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAodGltZSwgYWxsb2NhdG9y
KSkKICNkZWZpbmUgQ01UaW1lQ29weUFzRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01U
aW1lQ29weUFzRGljdGlvbmFyeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFn
ZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmICpvdXREZXNjKSwgKGFsbG9jYXRv
ciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJl
ZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFs
bG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1l
bnNpb25zLCBDTVZpZGVvRGltZW5zaW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2
aWRlb0Rlc2MpLCAodmlkZW9EZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
R2V0RGltZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
R2V0RGltZW5zaW9ucwpAQCAtMjQ5LDE1ICsyNTUsMTggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwgQ01J
dGUKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50IHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1l
U3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmlu
ZSBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29y
ZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcAotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRD
YWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tz
ICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25z
dCBDTUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZm
ZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycwogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQcmVz
ZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVl
dWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1w
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENN
QnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZm
ZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJR
dWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVm
Y29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCkpCisjZGVmaW5lIENNQnVmZmVy
UXVldWVJbnN0YWxsVHJpZ2dlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUluc3Rh
bGxUcmlnZ2VyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVz
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0
cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQs
IENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJp
Z2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhy
ZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRy
aWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwgT1NT
dGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZm
ZXJRdWV1ZU1hcmtFbmRPZkRhdGEgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVNYXJr
RW5kT2ZEYXRhCi0KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVl
dWUpLCAocXVldWUpKQorI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24gc29mdExpbmtf
Q29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXREdXJhdGlvbgogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNw
bGF5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERp
c3BsYXkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZikKQEAgLTI5NSw0NiArMzA0LDQ4IEBA
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29yZU1l
ZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZSwg
Y29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6ZV90KiBz
aXplT3V0KSwgKGRlc2MsIHNpemVPdXQpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRNYWdpY0Nvb2tpZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uR2V0TWFnaWNDb29raWUKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVz
Y3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFfQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbgogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDcmVhdGVX
aXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0dXJlQWxsb2Nh
dG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFsbG9jYXRvclJl
ZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNlKiBj
dXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgs
IENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJP
dXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5ndGgsIGJsb2Nr
QWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBm
bGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2RlZmluZSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1l
bW9yeUJsb2NrIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NT
dGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXplTmVl
ZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0
U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYg
YmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYgKmJs
b2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0
T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9j
YXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhS
ZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNp
emVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlz
dE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxs
b2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFn
cywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNp
emVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxs
b2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2Rl
ZmluZSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVm
ZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdp
dGhSZXRhaW5lZEJsb2NrQnVmZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0ZW1Db3VudCwgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0
TnVtU2FtcGxlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVz
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3Jt
YXRMaXN0SXRlbSAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3Jt
YXRMaXN0SXRlbSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkK
ICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1h
dCBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERl
Y29kYWJsZUZvcm1hdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBz
YW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBzYnVm
LCBzYW1wbGVSYW5nZSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ29weVNhbXBs
ZUJ1ZmZlckZvclJhbmdlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNvcHlTYW1w
bGVCdWZmZXJGb3JSYW5nZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVfdCog
c2l6ZUFycmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIChz
YnVmLCBzaXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNOZWVk
ZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkKIAotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwg
Q01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNr
LCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywgY29u
c3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25zLCBDTVNh
bXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFk
eSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNj
cmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVmT3V0
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1l
IHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2Ny
aXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVm
ZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNv
biwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0
aW9ucywgc0J1Zk91dCkpCiAjZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFj
a2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZl
ckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYg
YmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwg
dWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVm
LCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVy
TGlzdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZl
ciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJl
YW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJl
Ziogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3Jp
cHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRp
b25zLCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVm
ZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVm
TWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBi
dWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0
b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVm
ZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJT
ZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBPU1N0YXR1
cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVm
ZmVyU2V0RGF0YVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERhdGFS
ZWFkeQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCAo
c2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSkKKyNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNU2Ft
cGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9D
aGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQq
IG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5
b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNjKSkK
ICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01DbG9ja1Jl
ZiwgKHZvaWQpLCAoKSkKLSNkZWZpbmUgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sgIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jaworI2RlZmluZSBDTUNsb2NrR2V0SG9z
dFRpbWVDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0VGlt
ZSwgQ01UaW1lLCAoQ01DbG9ja1JlZiBjbG9jayksIChjbG9jaykpCi0jZGVmaW5lIENNQ2xvY2tH
ZXRUaW1lICBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldFRpbWUKKyNkZWZpbmUgQ01DbG9j
a0dldFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRv
U3lzdGVtVW5pdHMsIHVpbnQ2NF90LCAoQ01UaW1lIGhvc3RUaW1lKSwgKGhvc3RUaW1lKSkKICNk
ZWZpbmUgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzCiAKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNo
U2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqIENN
U0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVmY29u
KSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNB
TExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01J
dGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxs
YmFjaywgcmVmY29uKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2Fs
bEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBP
U1N0YXR1cyAoXiBDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVC
dWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0Zv
ckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMg
KF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYs
IENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJD
YWxsQmxvY2tGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNh
bGxCbG9ja0ZvckVhY2hTYW1wbGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9D
bG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tS
ZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpKQogI2RlZmluZSBDTUF1ZGlvQ2xv
Y2tDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9DbG9ja0NyZWF0ZQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGlt
ZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiAjZGVmaW5l
IENNVGltZU1heGltdW0gc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1heGltdW0KQEAgLTM0Niwx
OCArMzU3LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogI2Rl
ZmluZSBrQ01UaW1lSW5kZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRlKCkK
IAotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KICNpZiBQTEFURk9STShNQUMpCiAK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2
aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0
cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2
aWNlVUlELCBjbG9ja091dCkpCi0jZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSAgc29m
dExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJ
RCwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0
KSkKKyNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCosIChDTUJh
c2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkKLSNkZWZpbmUgQ01CYXNlT2Jq
ZWN0R2V0RGVyaXZlZFN0b3JhZ2UgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0
R2V0RGVyaXZlZFN0b3JhZ2UKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Ug
c29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRh
YmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAo
YmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9iamVjdEdldFZUYWJsZSBQQUw6OnNvZnRMaW5r
X0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0
VlRhYmxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRPYmplY3RDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFi
bGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIGJhc2VP
YmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3QpKQotI2RlZmlu
ZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVk
T2JqZWN0Q3JlYXRlCisjZGVmaW5lIENNRGVyaXZlZE9iamVjdENyZWF0ZSBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExp
bmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5j
cHAKaW5kZXggZjUxY2JiYjE2NjYzYjgxZWNlMjAxZThhZDU3MjVjMjUxMjFmNTZmYi4uNzJmNDEx
NGVlYWFkZjYyMGNlMzcwMjMwOTk0NzY2YjQ4Yzc5NWIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTM0LDEzICszNCwx
OSBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBWaWRl
b1Rvb2xib3gsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUws
IFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0
ZSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVv
VG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVy
YXRpb24sIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBW
aWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5n
UmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsIENGU3RyaW5nUmVmKQorU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKIAogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVvRW5jb2RlclNwZWNp
ZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgQ0ZTdHJpbmdS
ZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZU
UHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKK1NPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2
ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9B
dXRvTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwg
Q01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lm
aWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZB
bGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRD
YWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29t
cHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3
aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFn
ZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFj
aywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNl
c3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBz
ZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzZXNz
aW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkVu
Y29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENW
SW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAs
IENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGllcywgdm9pZCog
c291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAoc2Vz
c2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24sIGZyYW1l
UHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24sIGluZm9GbGFnc091dCkpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Np
b25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25S
ZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUsIHZvaWQsIChW
VENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogCiBTT0ZUX0xJTktf
RlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJv
eCwgVlRSZXN0cmljdFZpZGVvRGVjb2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0
cmljdGlvbnMgcmVzdHJpY3Rpb25GbGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dl
ZENvZGVjVHlwZUxpc3QsIENNSXRlbUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0
cmljdGlvbkZsYWdzLCBhbGxvd2VkQ29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50
KSwgUEFMX0VYUE9SVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9W
aWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rv
b2xib3hTb2Z0TGluay5oCmluZGV4IGVjMGZmMDFjYzFmZTFhMjEwNmNjN2E3ZjAyZThjODRiN2Rk
MGRhODQuLjYwYThmZjM3NDJkNDk2MTA3YjE0ZmFjN2M0MTM3M2FiYzZkNjk0YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTM3
LDkgKzM3LDIwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29s
Ym94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtlCiAjZGVmaW5lIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uIGdldF9WaWRlb1Rvb2xi
b3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24o
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQogI2RlZmluZSBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0
UmF0ZSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZl
cmFnZUJpdFJhdGUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2
ZXJhZ2VCaXRSYXRlKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJpbmdS
ZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsIGdldF9W
aWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwoKQogCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9F
bmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVy
LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlk
ZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNv
ZGVyKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorI2Rl
ZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9v
bGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwoKQorU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9I
MjY0X0hpZ2hfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxldmVs
X0gyNjRfSGlnaF9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2
NF9IaWdoX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZp
ZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3RyaW5n
UmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCBnZXRfVmlk
ZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsKCkKKwogCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQz
Ml90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENG
RGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJj
ZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxv
Y2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCog
b3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lv
blNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29k
ZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWRE
YXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXBy
ZXNzaW9uU2Vzc2lvbk91dCkpCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlIHNv
ZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZQpAQCAtNDksNiAr
NjAsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwg
VlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZQogI2RlZmluZSBWVENvbXByZXNzaW9uU2Vz
c2lvbkVuY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lv
bkVuY29kZUZyYW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9v
bGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVz
LCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKICNkZWZpbmUg
VlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgc29mdExpbmtfVmlkZW9U
b29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNl
c3Npb25JbnZhbGlkYXRlLCB2b2lkLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiks
IChzZXNzaW9uKSkKKyNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlIHNvZnRM
aW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUKIAogU09GVF9M
SU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUUmVz
dHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlkZW9EZWNvZGVyUmVzdHJpY3Rpb25z
IHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2RlY1R5cGUqIGFsbG93ZWRDb2RlY1R5
cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCAocmVzdHJpY3Rpb25G
bGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRDb2RlY1R5cGVDb3VudCkpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGlu
ay5jcHAKaW5kZXggNjc0ZTY0OTRhMGE4YjU5NjkwM2UzY2E1Y2ZiNmEyM2RkYWMzNjM4Yy4uZDQ0
NDkzMWVmZDhhZTU1NjBiOGMxYjI3ZjIyYWQ5MmU3OTM0ODVlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKQEAgLTQx
LDYgKzQxLDEwIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91CiAKIFNPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBrTVRT
dXBwb3J0Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQsIENGU3RyaW5nUmVm
LCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlh
VG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Q
cm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8s
IE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1i
ZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01JdGVt
Q291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZyYW1lcywgYnVmZmVyTGlzdElu
T3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xi
b3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNr
cywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcFJlZiogdGFwT3V0KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0
KSwgUEFMX0VYUE9SVCkKKwogI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCiAKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94
LCBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYsIFBB
TF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlh
VG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9v
bGJveFNvZnRMaW5rLmgKaW5kZXggYzdkZTAyY2U2M2MyYzMwMGQ5NjU0ZjY2NzBiZmMxMjUwMjI5
MzQ0ZS4uMjU1YTc2N2I1NWVlZjRlOGVlZDE5ZGVmMjk3MTc4NDkwYmU5M2YxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaApA
QCAtNDEsNiArNDEsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIo
UEFMLCBNZWRpYVRvb2xib3gsIE1UX0dldFNob3VsZFBsYXlIRFJWaWQKIAogU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnRO
b3RpZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYpCiAKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFw
KSwgKHRhcCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSBzb2Z0TGlu
a19NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAs
IENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5P
dXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGlt
ZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJh
bWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1l
c091dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8gc29mdExp
bmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8KK1NPRlRf
TElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzKiBjYWxsYmFja3MsIE1UQXVk
aW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91dCkpCisjZGVm
aW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlIHNvZnRMaW5rX01lZGlhVG9vbGJveF9NVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZQorCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURF
UikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtN
VFBsdWdpbkZvcm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDU1MjRlZWM1NTg3ZDFlOTE3MGVmOWYxNDkyY2MwN2RlMjVj
ODBlYzcuLmM1NjJiZTc2MzVlYTZhMTU4NDA4MzNhYmMyZTE5MTAxMGNjMzE3NmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMzUwLDcgKzM1MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEb2N1bWVudCk7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdURjo6
VW5pY29kZTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRlcHRo
ID0gMjE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDlm
NTU2MDgwMmJhYzMyYmI0OTllYzk3YzliMGFlMzJlMTFjNjIxYzcuLjg1MGNkZTcyNzBmMGQ2MWRj
MjU0NDljMWRhODlhNDlhMWFmNDM2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTENhbnZhc0VsZW1lbnQpOwogCi11c2luZyBu
YW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogLy8gVGhlc2UgdmFs
dWVzIGNvbWUgZnJvbSB0aGUgV2hhdFdHL1czQyBIVE1MIHNwZWMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlMDUxNmE0YWYyNWQyYjVhNGQ0OTRjZTQzNTA5
Njg0MTQxYjY3ZDllLi42YWMyZGZiOWRkNjRmMGYzZmMwZDBlZjVmYzUxMTU5MWQyNWYwYmFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE5MCw4ICsxOTAs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChI
VE1MTWVkaWFFbGVtZW50KTsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIGNvbnN0
IFNlY29uZHMgU2Vla1JlcGVhdERlbGF5IHsgMTAwX21zIH07CiBzdGF0aWMgY29uc3QgZG91Ymxl
IFNlZWtUaW1lID0gMC4yOwogc3RhdGljIGNvbnN0IFNlY29uZHMgU2NhblJlcGVhdERlbGF5IHsg
MS41X3MgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcAppbmRleCBmZDNkM2UwM2EwM2YwODEwNTIx
Mjg2YmQwMjZhOTEwMTExZDNjYzg0Li41ZDU2YjllZTFhMGQzZDY3YTc5YzMwNzYxZDEzODE1ZDdj
MDY0NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCkBAIC0zNiwyNSArMzYsMTMgQEAKICNp
bmNsdWRlICJBdWRpb0ZpbGVSZWFkZXIuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVk
aW9GaWxlLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNp
bmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW5jbHVkZSA8
d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29sYm94KQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9G
aWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJv
eCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnRE
YXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBp
bldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmls
ZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhp
bnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5j
LCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhp
bnQsIG91dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVE
aXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4
dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9w
ZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlv
RmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwg
dm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlv
UHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xi
b3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVk
aW9GaWxlLCBVSW50MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSks
IChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCi1TT0ZUX0xJTksoQXVk
aW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0Zp
bGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlE
LCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0YSks
IChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJv
cGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRp
b0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldy
aXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZv
cldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRB
dWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVS
ZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gQXVkaW9C
dWZmZXJMaXN0KiB0cnlDcmVhdGVBdWRpb0J1ZmZlckxpc3Qoc2l6ZV90IG51bWJlck9mQnVmZmVy
cykKQEAgLTEwMywyMiArOTEsMjIgQEAgQXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIo
Y29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQogICAgIDogbV9kYXRhKGRhdGEpCiAg
ICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewotICAgIGlmIChBdWRpb0ZpbGVPcGVuV2l0aENh
bGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmls
ZUlEKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyh0
aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmlsZUlEKSAhPSBu
b0VycikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0Zp
bGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0QXVkaW9GaWxlUmVmKSAhPSBub0VycikK
KyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQobV9hdWRpb0ZpbGVJRCwg
ZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIpCiAgICAgICAgIG1fZXh0QXVkaW9G
aWxlUmVmID0gMDsKIH0KIAogQXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKCkKIHsK
ICAgICBpZiAobV9leHRBdWRpb0ZpbGVSZWYpCi0gICAgICAgIEV4dEF1ZGlvRmlsZURpc3Bvc2Uo
bV9leHRBdWRpb0ZpbGVSZWYpOworICAgICAgICBQQUw6OkV4dEF1ZGlvRmlsZURpc3Bvc2UobV9l
eHRBdWRpb0ZpbGVSZWYpOwogCiAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwogCiAgICAgaWYg
KG1fYXVkaW9GaWxlSUQpCi0gICAgICAgIEF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwor
ICAgICAgICBQQUw6OkF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwogCiAgICAgbV9hdWRp
b0ZpbGVJRCA9IDA7CiB9CkBAIC0xNTUsNyArMTQzLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRp
b0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykK
IAogICAgIC8vIEdldCBmaWxlJ3MgZGF0YSBmb3JtYXQKICAgICBVSW50MzIgc2l6ZSA9IHNpemVv
ZihtX2ZpbGVEYXRhRm9ybWF0KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9l
eHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlRGF0YUZvcm1hdCwgJnNp
emUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0Zp
bGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0Zp
bGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzID0gbV9maWxl
RGF0YUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKQEAgLTE2Myw3ICsxNTEsNyBAQCBSZWZQdHI8
QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJv
b2wgbWl4VG9Nb25vKQogICAgIC8vIE51bWJlciBvZiBmcmFtZXMKICAgICBTSW50NjQgbnVtYmVy
T2ZGcmFtZXM2NCA9IDA7CiAgICAgc2l6ZSA9IHNpemVvZihudW1iZXJPZkZyYW1lczY0KTsKLSAg
ICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRp
b0ZpbGVQcm9wZXJ0eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVzNjQp
ICE9IG5vRXJyIHx8IG51bWJlck9mRnJhbWVzNjQgPD0gMCkKKyAgICBpZiAoUEFMOjpFeHRBdWRp
b0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5
X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIgfHwg
bnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRv
dWJsZSBmaWxlU2FtcGxlUmF0ZSA9IG1fZmlsZURhdGFGb3JtYXQubVNhbXBsZVJhdGU7CkBAIC0x
ODUsNyArMTczLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1
cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKICAgICBpZiAoc2FtcGxlUmF0ZSkK
ICAgICAgICAgbV9jbGllbnREYXRhRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsKIAot
ICAgIGlmIChFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1
ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFM
OjpFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmls
ZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAvLyBDaGFuZ2UgbnVtYmVyT2ZGcmFtZXM2NCB0byBkZXN0aW5hdGlvbiBz
YW1wbGUtcmF0ZQpAQCAtMjQzLDcgKzIzMSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxl
UmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAKICAg
ICAvLyBSZWFkIGZyb20gdGhlIGZpbGUgKG9yIGluLW1lbW9yeSB2ZXJzaW9uKQogICAgIFVJbnQz
MiBmcmFtZXNUb1JlYWQgPSBudW1iZXJPZkZyYW1lczsKLSAgICBpZiAoRXh0QXVkaW9GaWxlUmVh
ZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZyYW1lc1RvUmVhZCwgYnVmZmVyTGlzdCkgIT0gbm9FcnIp
IHsKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAmZnJh
bWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgewogICAgICAgICBkZXN0cm95QXVkaW9C
dWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVS
ZWFkZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9G
aWxlUmVhZGVyQ29jb2EuaAppbmRleCBiN2I5MTYzYjU2ZTI2YzI5Y2FiODRlZTI0NzY5ZTI5NzE0
MTdhZmZjLi4wYmJiYmEyNzg1N2Q5NzllY2M2ODhmODdmMDMzOWY2NjVlZjQyNTI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJD
b2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmls
ZVJlYWRlckNvY29hLmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJ
TykKIAotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KLSNpbmNsdWRlIDxBdWRp
b1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1
ZGlvVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK3VzaW5nIEV4dEF1ZGlvRmls
ZVJlZiA9IHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqOwordXNpbmcgQXVkaW9GaWxlSUQgPSBz
dHJ1Y3QgT3BhcXVlQXVkaW9GaWxlSUQqOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEF1ZGlvQnVzOwpAQCAtNTgsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHZvaWQqIG1f
ZGF0YSA9IHsgbnVsbHB0ciB9OwogICAgIHNpemVfdCBtX2RhdGFTaXplID0geyAwIH07CiAKLSAg
ICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0geyAwIH07CisgICAgQXVkaW9GaWxlSUQgbV9h
dWRpb0ZpbGVJRCA9IHsgbnVsbHB0ciB9OwogICAgIEV4dEF1ZGlvRmlsZVJlZiBtX2V4dEF1ZGlv
RmlsZVJlZiA9IHsgbnVsbHB0ciB9OwogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
IG1fZmlsZURhdGFGb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCmluZGV4IDQ3ODc1
MDcyYTc4NmVkNjg2YzFkNDAxZTgyZTYyNTljYTIzYzU0YjYuLjE0OGIwNTVkYmVjODk0M2VhNWFh
YzY4ZTY4NThkZTdkMGI4MjMxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSA8cGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9P
dXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJl
ciYgcmVuZGVyZXIpCkBAIC0zOSwxMiArNDEsMTIgQEAgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6
QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCiBBdWRp
b091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcigpCiB7CiAgICAgaWYg
KG1fb3V0cHV0VW5pdCkKLSAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9v
dXRwdXRVbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSht
X291dHB1dFVuaXQpOwogfQogCiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFy
dCgpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1dFVu
aXQpOworICAgIGF1dG8gcmVzdWx0ID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1
dFVuaXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCiAgICAgICAgIFdURkxvZ0Fsd2F5cygi
RVJST1I6IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KCkgY2FsbCBmYWlsZWQgd2l0aCBlcnJvciBjb2Rl
OiAlbGQiLCBzdGF0aWNfY2FzdDxsb25nPihyZXN1bHQpKTsKICAgICByZXR1cm4gcmVzdWx0OwpA
QCAtNTIsNyArNTQsNyBAQCBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCgp
CiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3AoKQogewotICAgIHJldHVy
biBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgcmV0dXJuIFBBTDo6QXVk
aW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOwogfQogCiAvLyBEZWZhdWx0T3V0cHV0VW5p
dCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKaW5kZXggZmRmNjc3NTdkMWI0Nzc2
MDgwOGIxM2ZiNDM0ZTQwYjNkZmQzMGUwNC4uNGU5MDY0ZDBjNmU5MzA4OWFlMGVhYTZmOTk4ZWNk
NjUzNzM1ZDFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxlcmF0
ZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgorI2luY2x1ZGUg
PHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29w
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzIsNyArMjczLDcgQEAgT1NTdGF0dXMg
QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNv
dXJjZSwgc2l6ZV90IGYKIAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBpbnB1dEZv
cm1hdDsKICAgICBVSW50MzIgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihpbnB1dEZvcm1hdCk7
Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlucHV0
Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBr
QXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0
YVNpemUsICZpbnB1dEZvcm1hdCk7CiAgICAgQVNTRVJUKGZyYW1lQ291bnQgPD0gc291cmNlLm1C
dWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpOwog
CiAgICAgQXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ29udGV4dCBjb250ZXh0IHsgc291cmNlLCBmcmFt
ZUNvdW50LCBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgfTsKQEAgLTI4MCw3ICsyODEsNyBA
QCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVm
ZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2lmICFMT0dfRElTQUJMRUQKICAgICBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0Rm9ybWF0OwogICAgIHByb3BlcnR5RGF0YVNpemUg
PSBzaXplb2Yob3V0cHV0Rm9ybWF0KTsKLSAgICBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAm
cHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CisgICAgUEFMOjpBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVh
bURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CiAKICAgICBB
U1NFUlQoQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG91dHB1dEZvcm1hdCkubnVtYmVyT2ZDaGFu
bmVsU3RyZWFtcygpID09IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKSk7CiAgICAgZm9yICh1
aW50MzJfdCBpID0gMDsgaSA8IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKTsgKytpKSB7CkBA
IC0yOTAsNyArMjkxLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJv
bShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNlbmRpZgogCiAgICAg
VUludDMyIHNhbXBsZXNDb252ZXJ0ZWQgPSBtX3NhbXBsZUNhcGFjaXR5OwotICAgIE9TU3RhdHVz
IGVyciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRpb0Nv
bnZlcnRlckZyb21BQkxDYWxsYmFjaywgJmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBtX2J1
ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0cik7CisgICAgT1NTdGF0dXMgZXJyID0gUEFMOjpBdWRp
b0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJGcm9t
QUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0LT5s
aXN0KCksIG51bGxwdHIpOwogICAgIGlmICghZXJyIHx8IGVyciA9PSBrUmFuT3V0T2ZJbnB1dERh
dGFTdGF0dXMpIHsKICAgICAgICAgbV9zYW1wbGVDb3VudCA9IHNhbXBsZXNDb252ZXJ0ZWQ7CiAg
ICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IGU1ZWM0Nzc3ODU4
MWE3YWNmMGU3MjU1MzMzZjllMjY5NDFjNDcyZDEuLmQyYjVhYzQ1ZjMwZmQ0YTNhZjUxYjQyMGRl
Mzc2NDliMTE1MWMyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTQyLDcgKzQyLDYg
QEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogUmVm
PEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoc2l6
ZV90IG1heGltdW1TYW1wbGVDb3VudCwgTG9nZ2VySGVscGVyJiBsb2dnZXJIZWxwZXIsIHNpemVf
dCB3YWl0VG9TdGFydEZvclB1c2hDb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCmluZGV4IDg5ZWNl
ZWQ2MWNiMTliZmQ3ZDQyMGM3NzhhYWExMjBhYzM1NmRiZmQuLjMwZGViMmU0Yzc0MWRmNTQ4OGIz
OGY1ZWQ1OWVlYmU1YTAyODliZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApAQCAtMzIsNyArMzIs
NiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBXZWJBdWRpb0J1ZmZlckxpc3Q6Oldl
YkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCkK
ICAgICA6IG1fYnl0ZXNQZXJGcmFtZShmb3JtYXQuYnl0ZXNQZXJGcmFtZSgpKQpAQCAtMTE2LDcg
KzExNSw3IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBDCiAgICAgICAgIHJldHVybjsKIAogICAg
IENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9FcnIgPT0gQ01T
YW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1w
bGVCdWZmZXIsIG51bGxwdHIsIG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6
ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwg
a0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50
LCAmYnVmZmVyKSkKKyAgICBpZiAobm9FcnIgPT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEF1ZGlv
QnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwgbnVsbHB0ciwg
bV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JTeXN0
ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJGbGFn
X0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpKQogICAgICAg
ICBtX2Jsb2NrQnVmZmVyID0gYWRvcHRDRihidWZmZXIpOwogCiAgICAgcmVzZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRB
ZGFwdG9ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091
dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAppbmRleCAyZTk2MzBmYjYwZjIyYjNlZTU2ZDI0MmQ3MzA0
MzQ4NmI4N2I1NjJmLi5mODkxMDdmZmIxYzNmNTNiZTMxOWFhMzg2ODE0Nzc0YmI0ZDI3YTQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRV
bml0QWRhcHRvcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwCkBAIC0zMywxNSArMzMsNyBAQAogI2lmIEVO
QUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJBdWRp
b1Nlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQotU09GVF9MSU5LX0ZS
QU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBv
bmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50
LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uICppbkRlc2MpLCAoaW5Db21wb25lbnQs
IGluRGVzYykpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNl
TmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlICpvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQotU09G
VF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0QWRkUHJvcGVydHlMaXN0ZW5lciwgT1NTdGF0
dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5p
dFByb3BlcnR5TGlzdGVuZXJQcm9jIGluUHJvYywgdm9pZCAqaW5Qcm9jVXNlckRhdGEpLCAoaW5V
bml0LCBpbklELCBpblByb2MsIGluUHJvY1VzZXJEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xi
b3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1
ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0
RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQgKm91dERhdGEsIFVJbnQzMiAqaW9EYXRhU2l6ZSksIChp
blVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCi1T
T0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1
ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlv
VW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFBy
b3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBp
bkVsZW1lbnQsIGNvbnN0IHZvaWQgKmluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0
LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjaW5jbHVk
ZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNTgsMTUgKzUwLDE1IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmln
dXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5j
b21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAg
IGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0g
MDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAgY29t
cCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQo
Y29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3
KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9D
b21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJl
c3VsdCk7CiAKICAgICBVSW50MzIgZmxhZyA9IDE7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LAorICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJv
cGVydHkobV9vdXRwdXRVbml0LAogICAgICAgICBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5h
YmxlSU8sCiAgICAgICAgIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsCiAgICAgICAgIDAsCkBAIC03
NCwyMCArNjYsMjAgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxv
YXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICAgICAgc2l6ZW9mKGZs
YWcpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0
aWFsaXplKG1fb3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFs
aXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogICAgIC8vIFNldCByZW5k
ZXIgY2FsbGJhY2sKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlucHV0
LmlucHV0UHJvYyA9IGlucHV0UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlz
OwotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAs
ICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFj
aywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAg
IEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCBzdHJlYW0gZm9ybWF0CiAgICAgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbUZvcm1hdDsKIAogICAgIFVJbnQzMiBzaXplID0g
c2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbik7Ci0gICAgcmVzdWx0ID0gQXVkaW9V
bml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9y
bWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNp
emUpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0
LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOwogICAgIEFTU0VSVCghcmVzdWx0KTsK
IAogICAgIGNvbnN0ZXhwciBpbnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsKQEAg
LTEwMSw3ICs5Myw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZs
b2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgc3RyZWFtRm9ybWF0
Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKICAgICBzdHJlYW1G
b3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0OwogCi0g
ICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0
UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikm
c3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CisgICAg
cmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQq
KSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKICAg
ICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5z
ZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtQcmVmZXJyZWRCdWZmZXJTaXplKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9y
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVu
aXRBZGFwdG9yTWFjLmNwcAppbmRleCBjOGVkM2VmNzhjOGM2YTNiMWUwNzBjYjQ0MDU5NjlhZGE0
YWMzZGEyLi43MTRjY2U4ODYyNTc1MTg2MWQ1ZTJiODUxMzEzYTg5ZDA0MTJlYWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRh
cHRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlv
T3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJB
dWRpb0J1cy5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+CisjaW5jbHVk
ZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDgsMjEgKzQ5LDIxIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmln
dXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVzYy5j
b21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwogICAg
IGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNrID0g
MDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAgY29t
cCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NFUlQo
Y29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3
KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVkaW9D
b21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJl
c3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7
CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAg
ICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawogICAgIEFV
UmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0gaW5wdXRQ
cm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0ID0gQXVk
aW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVu
ZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlu
cHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3Bl
X0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7
CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdApAQCAtNzksNyArODAsNyBAQCB2b2lkIEF1ZGlv
T3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVu
c2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFtRm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9IGJp
dHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFBy
b3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBr
QXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKaW5k
ZXggYTUzMzMyY2Y3ZGJkNjQ2NmY0NGY1NzZkMWNkN2FkZTc2MTUwYWE0Zi4uNzg0NzRkOGU1YTVh
YzA3MDM1MzM1OTkwY2RkZjhhZmNkODA1NjE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMzMsMTMgKzMzLDExIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmV0YWluUHRyPENN
Rm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBtYWdpY0Nvb2tpZVNp
emUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llKQogewogICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlv
biA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CiAgICAgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlv
biwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwgJmZv
cm1hdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIG1h
Z2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZmb3JtYXQpOwogICAgIGlmIChl
cnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24g
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTUs
MTQgKzUzLDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1w
bGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAg
ICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlw
dGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxw
dHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZm
ZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRo
UGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBu
dWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRy
LCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJj
cmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVkIC0g
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBhdXRvIGJ1
ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKIAotICAgIGVycm9yID0gQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJT
ZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVy
TGlzdD4oZGF0YSkubGlzdCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9S
KCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxlZCAt
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAppbmRleCA1
N2NmMjlkMGQ3N2U2Nzg4OWJkY2VmZDQwNTg1MTI5ZWQxMmE0NTU1Li42NGUzMGJjMjkzY2E4Zjkz
ODg0ODhmMTQ4ODUwNmM1N2JlMGE1MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC00MSw3ICs0MSw2IEBA
CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIpCiB7CkBAIC05MCw3ICs4OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYgc2Ft
cGxlCiB7CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxhdGZv
cm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0g
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZTogQ01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlciByZXR1cm5lZCBudWxscHRyIik7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmlu
ZGV4IDk4MzliMzcwYTcxM2I3YzFkMjNkODQ3ZmE4NjUwNWQ1YWU5NzlhYjIuLmRmZjRmYTRlZGYy
NjRiNDUyYmY4ZGE3YWZhZWY0Y2JkN2EwMjdiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTQ2LDIyICs0NiwxMyBAQAogI2ltcG9y
dCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjZW5kaWYKIAorI2ltcG9ydCA8cGFsL2NmL0F1
ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgotCi1TT0ZUX0xJ
TktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29s
Ym94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21w
bGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIs
IFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0
RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIs
IGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi1TT0ZUX0xJ
TksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVm
KiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1h
dCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQotCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYg
dGFwKSwgKHRhcCkpCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cEdldFNvdXJjZUF1ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwg
Q01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91
dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1l
UmFuZ2VPdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFt
ZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVz
T3V0KSkKLVNPRlRfTElOS19NQVlfRkFJTChNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MgKmNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiAqdGFwT3V0KSwg
KGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNpbXBvcnQgPHBhbC9jb2Nv
YS9NZWRpYVRvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiBzdGF0aWMgY29uc3QgZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRpb24g
PSAxOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFwU3RvcmFnZSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFw
U3RvcmFnZT4gewpAQCAtNzMsNyArNjQsNyBAQCBwdWJsaWM6CiAKIFJlZlB0cjxBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShBVlBs
YXllckl0ZW0gKml0ZW0pCiB7Ci0gICAgaWYgKCFjYW5Mb2FkTVRBdWRpb1Byb2Nlc3NpbmdUYXBD
cmVhdGUoKSkKKyAgICBpZiAoIVBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nl
c3NpbmdUYXBDcmVhdGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoaXRlbSkpOwogfQpAQCAtMTUy
LDcgKzE0Myw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1
dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgbV9yZWFkQ291bnQgKz0g
ZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRpb0Nv
bnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1By
b2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgUEFMOjpBdWRpb0Nv
bnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1By
b2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKIH0KIAogdm9pZCBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIGNs
aWVudCkKQEAgLTIyNSw3ICsyMTYsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
OjpjcmVhdGVNaXhJZk5lZWRlZCgpCiAgICAgfTsKIAogICAgIE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmIHRhcCA9IG51bGxwdHI7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRBdWRpb1Byb2Nlc3Np
bmdUYXBDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwgJnRhcCk7Cisg
ICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKICAgICBpZiAoc3RhdHVzICE9
IG5vRXJyKSB7CiAgICAgICAgIGlmICh0YXApCiAgICAgICAgICAgICBDRlJlbGVhc2UodGFwKTsK
QEAgLTI1OCwxNCArMjQ5LDE0IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6Omlu
aXRDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIHZvaWQqCiB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpmaW5hbGl6ZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5n
VGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9y
YWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3Rv
cmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFw
U3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogICAg
IHRhcFN0b3JhZ2UtPmRlcmVmKCk7CiB9CiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNv
dW50IG1heEZyYW1lcywgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICpwcm9jZXNz
aW5nRm9ybWF0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3Jh
Z2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9y
YWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBT
dG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAg
ICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0yNzYsNyArMjY3LDcg
QEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxiYWNrKE1UQXVk
aW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ00KIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsKICAg
ICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8
VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBU
YXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRB
dWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7
IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjg3LDcgKzI3OCw3IEBAIHZvaWQgQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmIHRhcCkKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3NDYWxsYmFj
ayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyBmbGFncywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJM
aXN0SW5PdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwRmxhZ3MgKmZsYWdzT3V0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2Uq
IHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNf
Y2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFw
KSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0zMTcs
NyArMzA4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShDTUl0
ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEKIAogICAgIGlmICgqbV90YXBEZXNj
cmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZlcnRl
clJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5ldyht
X3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29u
dmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlck5ldyhtX3RhcERlc2NyaXB0aW9u
LmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsKICAgICAg
ICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0zNTcsNyArMzQ4LDcg
QEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2VzcyhNVEF1ZGlvUHJvY2Vz
c2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW4KICAgICAKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291
bnQgPSAwOwogICAgIENNVGltZVJhbmdlIHJhbmdlT3V0OwotICAgIE9TU3RhdHVzIHN0YXR1cyA9
IE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1lcywg
YnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKKyAgICBP
U1N0YXR1cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8o
dGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0
LCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8ICFpdGVtQ291bnQpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggMzA1YjNkMjdlMzQy
Zjk4NzIxMTJmMTE3NGMxNGZmNGYzYzYwODU1ZC4uZDJkYzc4MWIwODIzMjZlYmFlOTQ3MTJmMjE5
OTExMTExMTI1MDIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yMzIsNyArMjMyLDYg
QEAgc3RydWN0IExvZ0FyZ3VtZW50PEFWUGxheWVyVGltZUNvbnRyb2xTdGF0dXM+IHsKIH07IC8v
IG5hbWVzcGFjZSBXVEYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIAogc3RhdGljIE5TQXJyYXkgKmFzc2V0TWV0YWRhdGFLZXlOYW1lcygpOwogc3RhdGljIE5T
QXJyYXkgKml0ZW1LVk9Qcm9wZXJ0aWVzKCk7CkBAIC01ODIsOCArNTgxLDggQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCiAK
ICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVydHVyZU1vZGU6QVZBc3NldEltYWdl
R2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07CiAgICAgW21faW1hZ2VHZW5lcmF0
b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtOllFU107Ci0gICAgW21f
aW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUJlZm9yZTprQ01U
aW1lWmVyb107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRv
bGVyYW5jZUFmdGVyOmtDTVRpbWVaZXJvXTsKKyAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBz
ZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOlBBTDo6a0NNVGltZVplcm9dOworICAgIFtt
X2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjpQQUw6
OmtDTVRpbWVaZXJvXTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKQpAQCAtNjcxLDcgKzY3MCw3IEBAIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRTdGFydERhdGUo
KSBjb25zdAogICAgIGlmICghZGF0ZSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKTsKIAotICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IENNVGltZUdldFNlY29uZHMoW21f
YXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAwOworICAgIGRvdWJsZSBjdXJyZW50VGlt
ZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0ZW0gY3VycmVudFRpbWVdKSAq
IDEwMDA7CiAKICAgICAvLyBSb3VuZGluZyBkdWUgdG8gc2Vjb25kIG9mZnNldCBlcnJvciB3aGVu
IHN1YnRyYWN0aW5nLgogICAgIHJldHVybiBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUocm91
bmQoZGF0ZSAtIGN1cnJlbnRUaW1lKSk7CkBAIC0xMDg5LDcgKzEwODgsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKIAogICAgIEFT
U0VSVCghbV9jdXJyZW50VGltZU9ic2VydmVyKTsKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpOwotICAgIG1fY3VycmVudFRpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFk
ZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOlt3ZWFrVGhpc10gKENNVGltZSB0
aW1lKSB7CisgICAgbV9jdXJyZW50VGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkUGVyaW9k
aWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vha1RoaXNdIChDTVRpbWUgdGlt
ZSkgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+Y3VycmVu
dE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKHRpbWUpKTsKICAgICB9XTsKQEAg
LTE0MjMsNyArMTQyMiw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKICAgICAgICAgcmV0dXJuIE1lZGlhVGlt
ZTo6emVyb1RpbWUoKTsKIAogICAgIGlmICghbV93YWxsQ2xvY2tBdENhY2hlZEN1cnJlbnRUaW1l
KQotICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKHRvTWVkaWFUaW1lKFttX2F2UGxh
eWVySXRlbS5nZXQoKSBjdXJyZW50VGltZV0pKTsKKyAgICAgICAgY3VycmVudE1lZGlhVGltZURp
ZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKFttX2F2UGxheWVySXRlbS5nZXQoKSBjdXJyZW50VGlt
ZV0pKTsKICAgICBBU1NFUlQobV93YWxsQ2xvY2tBdENhY2hlZEN1cnJlbnRUaW1lKTsKIAogICAg
IGF1dG8gaXRlbVRpbWUgPSBtX2NhY2hlZEN1cnJlbnRNZWRpYVRpbWU7CkBAIC0xNDY4LDggKzE0
NjcsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNlZWtUb1Rp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAgIENNVGltZSBjbUFmdGVyID0gUEFM
Ojp0b0NNVGltZShwb3NpdGl2ZVRvbGVyYW5jZSk7CiAKICAgICAvLyBbQVZQbGF5ZXJJdGVtIHNl
ZWtUb1RpbWVdIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRvbGVyYW5jZUJlZm9yZSBpcyBu
ZWdhdGl2ZS4KLSAgICBpZiAoQ01UaW1lQ29tcGFyZShjbUJlZm9yZSwga0NNVGltZVplcm8pIDwg
MCkKLSAgICAgICAgY21CZWZvcmUgPSBrQ01UaW1lWmVybzsKKyAgICBpZiAoUEFMOjpDTVRpbWVD
b21wYXJlKGNtQmVmb3JlLCBQQUw6OmtDTVRpbWVaZXJvKSA8IDApCisgICAgICAgIGNtQmVmb3Jl
ID0gUEFMOjprQ01UaW1lWmVybzsKICAgICAKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpOwogCkBAIC0xNTg2LDYgKzE1ODUsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnNldFBpdGNoQ29ycmVjdGlvbkFsZ29yaXRobShNZWRpYVBsYXll
cgogCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcygpIGNvbnN0CiB7
CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGF1dG8gdGltZVJhbmdlcyA9IG1ha2VV
bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwogCiAgICAgaWYgKCFtX2F2UGxheWVySXRlbSkK
QEAgLTE1OTQsMTMgKzE1OTUsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdl
cz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm0KICAgICBmb3Ig
KE5TVmFsdWUgKnRoaXNSYW5nZVZhbHVlIGluIG1fY2FjaGVkTG9hZGVkUmFuZ2VzLmdldCgpKSB7
CiAgICAgICAgIENNVGltZVJhbmdlIHRpbWVSYW5nZSA9IFt0aGlzUmFuZ2VWYWx1ZSBDTVRpbWVS
YW5nZVZhbHVlXTsKICAgICAgICAgaWYgKENNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkg
JiYgIUNNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5nZSkpCi0gICAgICAgICAgICB0aW1lUmFu
Z2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRvTWVkaWFU
aW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKKyAgICAgICAgICAgIHRpbWVSYW5n
ZXMtPmFkZChQQUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CiAgICAgfQogICAgIHJldHVy
biB0aW1lUmFuZ2VzOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogeworICAgIHVzaW5nIG5h
bWVzcGFjZSBQQUw7CisKICAgICBpZiAoIW1fY2FjaGVkU2Vla2FibGVSYW5nZXMgfHwgIVttX2Nh
Y2hlZFNlZWthYmxlUmFuZ2VzIGNvdW50XSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVy
b1RpbWUoKTsKIApAQCAtMTYyMSw2ICsxNjI0LDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWluVGltZVNlZWthYmxlKCkgY29uc3QKIAog
TWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4
VGltZVNlZWthYmxlKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOworCiAgICAg
aWYgKCFtX2NhY2hlZFNlZWthYmxlUmFuZ2VzKQogICAgICAgICBtX2NhY2hlZFNlZWthYmxlUmFu
Z2VzID0gW21fYXZQbGF5ZXJJdGVtIHNlZWthYmxlVGltZVJhbmdlc107CiAKQEAgLTE2MzMsNyAr
MTYzOCw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpw
bGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0Vf
SVNfVkFMSUQodGltZVJhbmdlKSB8fCBDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZS
YW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7Cisg
ICAgICAgIE1lZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGlt
ZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpOwogICAgICAgICBpZiAobWF4VGltZVNlZWthYmxlIDwg
ZW5kT2ZSYW5nZSkKICAgICAgICAgICAgIG1heFRpbWVTZWVrYWJsZSA9IGVuZE9mUmFuZ2U7CiAg
ICAgfQpAQCAtMTY0Miw2ICsxNjQ3LDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKIAogTWVkaWFU
aW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxv
YWRlZCgpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGlmICghbV9j
YWNoZWRMb2FkZWRSYW5nZXMpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7
CiAKQEAgLTE2NTEsNyArMTY1OCw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgICAgICBpZiAo
IUNNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFko
dGltZVJhbmdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVk
aWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRp
bWVSYW5nZSkpOworICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRp
bWVMb2FkZWQgPCBlbmRPZlJhbmdlKQogICAgICAgICAgICAgbWF4VGltZUxvYWRlZCA9IGVuZE9m
UmFuZ2U7CiAgICAgfQpAQCAtMTgwMyw3ICsxODEwLDcgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUlu
UmUKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAg
ICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5zaXpl
KCkpXTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2lt
YWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25k
cyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOworICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiByYXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29w
eUNHSW1hZ2VBdFRpbWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1
YWxUaW1lOm5pbCBlcnJvcjpuaWxdKTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2Ug
PSBhZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCks
IHNSR0JDb2xvclNwYWNlUmVmKCkpKTsKIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJj
cmVhdGluZyBpbWFnZSB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNv
bmRzKCkpOwpAQCAtMTk4OSw3ICsxOTk2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpkaWRTdG9wTG9hZGluZ1JlcXVlc3QoQVZBc3NldFJlc291cmNlTG8KIAog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjppc0F2YWlsYWJsZSgpCiB7
Ci0gICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBp
c0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3Vu
ZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2
YWlsYWJsZSgpOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6bWVkaWFUaW1lRm9yVGltZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVlKSBj
b25zdApAQCAtMjkwMSw3ICsyOTA4LDcgQEAgc3RhdGljIE5TU3RyaW5nICpleGVybmFsRGV2aWNl
RGlzcGxheU5hbWVGb3JQbGF5ZXIoQVZQbGF5ZXIgKnBsYXllcikKICAgICBpZiAoIVBBTDo6aXNB
VkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIGlmIChhdXRvIGNvbnRleHQgPSBPdXRwdXRDb250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRh
dGlvbk91dHB1dENvbnRleHQoKSkKKyAgICBpZiAoYXV0byBjb250ZXh0ID0gUEFMOjpPdXRwdXRD
b250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQoKSkKICAgICAgICAg
cmV0dXJuIGNvbnRleHQtPmRldmljZU5hbWUoKTsKIAogICAgIGlmIChwbGF5ZXIuZXh0ZXJuYWxQ
bGF5YmFja1R5cGUgIT0gQVZQbGF5ZXJFeHRlcm5hbFBsYXliYWNrVHlwZUFpclBsYXkpCkBAIC0z
MjM1LDkgKzMyNDIsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPAogICAgICAgICBmb3IgKEFW
TWV0YWRhdGFJdGVtICppdGVtIGluIGdyb3VwLml0ZW1zKSB7CiAgICAgICAgICAgICBSZXRhaW5Q
dHI8QVZNdXRhYmxlTWV0YWRhdGFJdGVtPiBpdGVtQ29weSA9IGFkb3B0TlMoW2l0ZW0gbXV0YWJs
ZUNvcHldKTsKICAgICAgICAgICAgIGlmICghQ01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgp
LnRpbWUpKQotICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLnRpbWUgPSBDTVRpbWVNYWtl
V2l0aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUsIE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7
CisgICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdp
dGhTZWNvbmRzKGdyb3VwU3RhcnRUaW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwog
ICAgICAgICAgICAgaWYgKCFDTVRJTUVfSVNfVkFMSUQoaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24p
KQotICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3Jv
dXBEdXJhdGlvbik7CisgICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24gPSBQ
QUw6OnRvQ01UaW1lKGdyb3VwRHVyYXRpb24pOwogICAgICAgICAgICAgW2dyb3VwQ29weSBhZGRP
YmplY3Q6aXRlbUNvcHkuZ2V0KCldOwogICAgICAgICB9CiAKQEAgLTMyNzksNyArMzI4Niw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJp
dmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAKICAgICAgICAgTWVkaWFUaW1lIGVuZCA9IE1lZGlh
VGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGl0
ZW0uZHVyYXRpb247Ci0gICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIENN
VGltZUdldFNlY29uZHMoZHVyYXRpb24pID4gMC4wMDEpCisgICAgICAgIGlmIChDTVRJTUVfSVNf
VkFMSUQoZHVyYXRpb24pICYmIFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAw
MSkKICAgICAgICAgICAgIGVuZCA9IHN0YXJ0ICsgUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7
CiAKICAgICAgICAgQXRvbVN0cmluZyB0eXBlID0gbnVsbEF0b20oKTsKQEAgLTM0NTgsNyArMzQ2
NSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRh
c2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvCiAgICAgaWYgKG1fdGltZU9ic2VydmVyKQog
ICAgICAgICBbbV9hdlBsYXllciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV90aW1lT2JzZXJ2ZXIuZ2V0
KCldOwogCi0gICAgbV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVP
YnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUp
XV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAgbV90
aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVz
OkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7
CiAgICAgfV07CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5k
ZXggNWE2OWFhNjc5NTE4OWNiNGUwNzZkMzE5NDY5Zjk5NjUwNGZmOTQ2Yy4uNzNhZGViOWJiNzNh
NzgyOGRmNWEzZjQ4NGM1ZjkwZTMzM2QyNDFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bQpAQCAtNjYsNyArNjYsNiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0
b3J5QXRVUkw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKIEBlbmQKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0YXRl
IGVudW1lcmF0aW9uVmFsdWUpCiB7CkBAIC0xMTYsMTUgKzExNSwxNSBAQCBzdGF0aWMgdm9pZCBD
TVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRl
clJlZiwgY29ucwogCiB2b2lkIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3AoQ01U
aW1lYmFzZVJlZiB0aW1lYmFzZSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9
IENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3Rp
ZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2
ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJh
dGVDaGFuZ2VkLCB0aW1lYmFzZSk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQ
QUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFM
OjpDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNl
RWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlv
bl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UpOwogfQogCiBFZmZlY3RpdmVSYXRlQ2hh
bmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyKE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQyYgY2xpZW50LCBDTVRpbWViYXNlUmVmIHRpbWViYXNlKQog
ICAgIDogbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKIHsKLSAgICBDTU5vdGlmaWNhdGlv
bkNlbnRlclJlZiBuYyA9IENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVy
KCk7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1l
YmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9u
X0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSwgMCk7CisgICAgQ01Ob3RpZmljYXRpb25D
ZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2Vu
dGVyKCk7CisgICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0aGlz
LCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFz
ZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwogfQogCiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMTU3LDcgKzE1Niw3IEBA
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3lu
Y2hyb25pemVyIGZpcmVkIGZvciAiLCB0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIs
IG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CisgICAgICAgIERF
QlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFM
Ojp0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGlu
ZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CiAKICAgICAgICAgaWYgKG1fc2Vla2luZyAmJiAhbV9w
ZW5kaW5nU2VlaykgewogICAgICAgICAgICAgbV9zZWVraW5nID0gZmFsc2U7CkBAIC0yMzgsMTEg
KzIzNywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdAogYm9vbCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKICAgICByZXR1cm4gUEFMOjpp
c0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlh
RnJhbWV3b3JrQXZhaWxhYmxlKCkKLSAgICAgICAgJiYgZ2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xh
c3MoKQotICAgICAgICAmJiBnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCi0g
ICAgICAgICYmIGdldEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQotICAg
ICAgICAmJiBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXJDbGFzcygpLCBAc2VsZWN0b3Ioc2V0TXV0ZWQ6KSk7CisgICAgICAgICYmIFBBTDo6aXND
b3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQorICAgICAgICAmJiBQQUw6OmdldEFWU3RyZWFt
RGF0YVBhcnNlckNsYXNzKCkKKyAgICAgICAgJiYgUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlv
UmVuZGVyZXJDbGFzcygpCisgICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJT
eW5jaHJvbml6ZXJDbGFzcygpCisgICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFBB
TDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11
dGVkOikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4mIHR5cGVzKQpAQCAtNDE3LDcgKzQxNiw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmR1cmF0aW9uTWVkaWFUaW1lKCkgY29uc3QKIAogTWVkaWFU
aW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGlt
ZSgpIGNvbnN0CiB7Ci0gICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAg
ICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRp
bWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgaWYgKHN5bmNo
cm9uaXplclRpbWUgPCBNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgICAgIHJldHVybiBNZWRp
YVRpbWU6Onplcm9UaW1lKCk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBtX2xhc3RTZWVr
VGltZSkKQEAgLTQzMCw3ICs0MjksNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhNZWRpYQogICAgIG1f
Y3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAgICAg
aWYgKG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjaykgewotICAgICAgICBtX3RpbWVDaGFu
Z2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJ
bnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkgeworICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2
ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQ
QUw6OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNp
bmdCbG9jazpeKENNVGltZSB0aW1lKSB7CiAgICAgICAgICAgICBpZiAobV9jdXJyZW50VGltZURp
ZENoYW5nZUNhbGxiYWNrKQogICAgICAgICAgICAgICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VD
YWxsYmFjayhDTVRJTUVfSVNfTlVNRVJJQyh0aW1lKSA/IFBBTDo6dG9NZWRpYVRpbWUodGltZSkg
OiBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogICAgICAgICB9XTsKQEAgLTQ4Miw3ICs0ODEsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFs
KCkKICAgICBpZiAobV9sYXN0U2Vla1RpbWUuaGFzRG91YmxlVmFsdWUoKSkKICAgICAgICAgbV9s
YXN0U2Vla1RpbWUgPSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUobV9sYXN0U2Vla1RpbWUu
dG9Eb3VibGUoKSwgTWVkaWFUaW1lOjpEZWZhdWx0VGltZVNjYWxlKTsKIAotICAgIE1lZGlhVGlt
ZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShb
bV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRp
bWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25p
emVyIHRpbWViYXNlXSkpOwogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJzZWVrVGltZSA9
ICIsIG1fbGFzdFNlZWtUaW1lLCAiLCBzeW5jaHJvbml6ZXJUaW1lID0gIiwgc3luY2hyb25pemVy
VGltZSk7CiAKICAgICBib29sIGRvZXNOb3RSZXF1aXJlU2VlayA9IHN5bmNocm9uaXplclRpbWUg
PT0gbV9sYXN0U2Vla1RpbWU7CkBAIC01OTksNyArNTk4LDcgQEAgYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAgaWYg
KG1fdmlkZW9PdXRwdXQpIHsKICAgICAgICAgQ01UaW1lIG91dHB1dFRpbWU7CiAgICAgICAgIGlm
IChhdXRvIHBpeGVsQnVmZmVyID0gYWRvcHRDRihbbV92aWRlb091dHB1dCBjb3B5UGl4ZWxCdWZm
ZXJGb3JTb3VyY2VUaW1lOnRvQ01UaW1lKGN1cnJlbnRNZWRpYVRpbWUoKSkgc291cmNlVGltZUZv
ckRpc3BsYXk6Jm91dHB1dFRpbWVdKSkgewotICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJ
RklFUiwgIm5ldyBwaXhlbGJ1ZmZlciBmb3VuZCBmb3IgdGltZSAiLCB0b01lZGlhVGltZShvdXRw
dXRUaW1lKSk7CisgICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVs
YnVmZmVyIGZvdW5kIGZvciB0aW1lICIsIFBBTDo6dG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOwog
ICAgICAgICAgICAgbV9sYXN0UGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC04MDksNyArODA4LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigpCiAg
ICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVy
IHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0
VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIgcmVt
b3ZlUmVuZGVyZXI6bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkgYXRUaW1lOmN1cnJl
bnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4K
ICAgICB9XTsKQEAgLTEwMTgsNyArMTAxNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpmbHVzaFBlbmRpbmdTaXplQ2hhbmdlcygpCiAjaWYgSEFWRShBVlNU
UkVBTVNFU1NJT04pCiBBVlN0cmVhbVNlc3Npb24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbigpCiB7Ci0gICAgaWYgKCFnZXRBVlN0cmVhbVNlc3Np
b25DbGFzcygpIHx8ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jl
c3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDop
XSkKKyAgICBpZiAoIVBBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0
QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0
b3IoaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgIHJldHVybiBuaWw7
CiAKICAgICBpZiAoIW1fc3RyZWFtU2Vzc2lvbikgewpAQCAtMTIxNyw3ICsxMjE2LDcgQEAgQUxM
T1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGlt
ZSBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFz
ZV0pOworICAgIENNVGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21f
c3luY2hyb25pemVyIHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRl
cmVyOmF1ZGlvUmVuZGVyZXIgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxl
cjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAgLTEzMDEsNyArMTMwMCw3
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFz
a0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248CiAgICAgaWYgKG1fcGVyZm9ybVRhc2tPYnNlcnZl
cikKICAgICAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVRpbWVPYnNlcnZlcjptX3BlcmZvcm1U
YXNrT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAgbV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3lu
Y2hyb25pemVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1
ZVdpdGhDTVRpbWU6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpIHVzaW5nQmxvY2s6XnsKKyAgICBtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJv
bml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0
aENNVGltZTpQQUw6OnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSB1c2luZ0Jsb2NrOl57CiAgICAgICAgIHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGUxYWQxMDJiYjk4MWJmMzc0
ZTZiZDkzN2MwYzZlMmE4N2Y0MGYxNWYuLjU1YjUwMGM1N2U5M2ViYmE0OTZhZTc0MTZmZDVkZjc4
ZDdiOTQ1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1w
b3J0ICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorI2ltcG9ydCAiTWVkaWFQbGF5
ZXIuaCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiTWVk
aWFTdHJlYW1Qcml2YXRlLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCkBA
IC0xMjEsNyArMTIyLDYgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmlu
ZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KIEBlbmQKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNw
cmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMKQEAgLTIxMCw3
ICsyMTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdAogCiBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBpc0FW
Rm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZh
aWxhYmxlKCkgJiYgZ2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpOworICAgIHJl
dHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0Nv
cmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJDbGFzcygpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIHR5cGVzKQpAQCAtMjMwLDcgKzIzMCw3IEBAIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1R5
cGUoY29uCiBzdGF0aWMgaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3JtYXRp
b25NYXRyaXgoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZm
ZXI7Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4
ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7
CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxC
dWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIp
KTsKICAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIp
OwogICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVy
KTsKICAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpCkBAIC05NjAsNyArOTYwLDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUN1cnJlbnRGcmFtZUlt
YWdlKCkKICAgICBpZiAoIW1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhl
bEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5t
ZWRpYVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5w
bGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIG1faW1hZ2VQYWlu
dGVyLmNnSW1hZ2UgPSBOYXRpdmVJbWFnZTo6Y3JlYXRlKG1faW1hZ2VQYWludGVyLnBpeGVsQnVm
ZmVyQ29uZm9ybWVyLT5jcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXgg
MmY0OTgzODc2NWQzYzk0NDFiNjliYjk1MThiM2IxZjlhODc5NTA5Yi4uN2JmNDJkNGU3ZDdjY2Iy
OGFjYWYzOTA4MDg5ZTE1MWM0MjRkN2Y5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMzYsOSArMzYsMTEgQEAKICNpbXBvcnQgIkNvcmVWaWRl
b1NvZnRMaW5rLmgiCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotdXNp
bmcgbmFtZXNwYWNlIFBBTDsKLQotV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1
ZmZlcik7CisvLyBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKK3Rl
bXBsYXRlIDw+CitzdHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJlZj4gewor
ICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQgdHlwZUlEKHZvaWQpIHsgcmV0dXJuIFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsgfQorfTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC02NywzNSArNjksMzUgQEAgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZShQaXhlbEJ1ZmZlciYmIHAKICAgICBBU1NFUlRfVU5V
U0VEKHN0YXR1cywgIXN0YXR1cyk7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0RGVzY3JpcHRpb25SYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2
UGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvblJhdyk7CisgICAgc3RhdHVzID0g
UEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb25SYXcp
OwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIGZvcm1hdERlc2NyaXB0aW9uID0gYWRv
cHRDRihmb3JtYXREZXNjcmlwdGlvblJhdyk7CiAKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2Ft
cGxlVGltaW5nSW5mb3JtYXRpb24gPSB7IGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52YWxpZCwg
a0NNVGltZUludmFsaWQgfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2FtcGxlVGltaW5nSW5m
b3JtYXRpb24gPSB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6a0NNVGltZUludmFsaWQsIFBB
TDo6a0NNVGltZUludmFsaWQgfTsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJS
YXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRo
SW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgZm9y
bWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1
ZmZlclJhdyk7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZv
cm1hdERlc2NyaXB0aW9uLmdldCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVC
dWZmZXJSYXcpOwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9
IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyUmF3KTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNB
cnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZm
ZXIuZ2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQo
KSwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3Vu
dChhdHRhY2htZW50c0FycmF5KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxl
RGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0
aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsK
LSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFj
aG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgIENG
RGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogICAgIHJldHVy
biBjcmVhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxl
QVZGT2JqQzo6cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAg
PSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5n
ZXQoKSk7CisgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0
UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lT
X0lOVkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJH
ZXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOworICAgICAgICB0aW1lU3Rh
bXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxl
LmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApOwogfQogCiBN
ZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIHsKLSAgICBh
dXRvIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1fc2FtcGxl
LmdldCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNv
ZGVUaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0
aW1lU3RhbXApKQogICAgICAgICByZXR1cm4gcHJlc2VudGF0aW9uVGltZSgpOwogICAgIHJldHVy
biBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCk7CkBAIC0xMDMsMTUgKzEwNSwxNSBAQCBNZWRp
YVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1l
IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVyYXRpb24oKSBjb25zdAogewotICAgIGF1dG8gZHVyYXRp
b24gPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAg
ICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1f
c2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAg
ICAgICBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkp
OworICAgICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3Nh
bXBsZS5nZXQoKSk7CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUoZHVyYXRpb24pOwogfQog
CiBzaXplX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjpzaXplSW5CeXRlcygpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplKG1fc2FtcGxlLmdldCgpKTsK
KyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBs
ZS5nZXQoKSk7CiB9CiAKIFBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxhdGZv
cm1TYW1wbGUoKQpAQCAtMTIyLDIzICsxMjQsMjMgQEAgUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1w
bGVBVkZPYmpDOjpwbGF0Zm9ybVNhbXBsZSgpCiAKIHVpbnQzMl90IE1lZGlhU2FtcGxlQVZGT2Jq
Qzo6dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0CiB7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIo
bV9zYW1wbGUuZ2V0KCkpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQ
aXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxl
LmdldCgpKSk7CiAgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4
ZWxCdWZmZXIpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJh
bmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCiB7Ci0gICAgcmV0dXJu
ICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNo
bWVudEtleV9Ob3RTeW5jKTsKKyAgICByZXR1cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0
dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7CiB9CiAK
IHN0YXRpYyBib29sIGRvZXNDTVNhbXBsZUJ1ZmZlckhhdmVTeW5jSW5mbyhDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGUpCiB7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBi
b29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
KQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2ht
ZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBs
ZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIApAQCAtMTUxLDEyICsxNTMsMTIgQEAgc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJh
bmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiAKIHN0YXRpYyBib29sIGlzQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNo
bWVudERpY3QpCiB7Ci0gICAgcmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1l
bnREaWN0LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSk7CisgICAgcmV0dXJu
IENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0
dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1
ZmZlck5vbkRpc3BsYXlpbmcoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAgIENGQXJy
YXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJy
YXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAg
IGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTE4Niwx
MSArMTg4LDExIEBAIE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBNZWRpYVNhbXBsZUFWRk9iakM6
OmZsYWdzKCkgY29uc3QKIAogRmxvYXRTaXplIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0
aW9uU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9zYW1wbGUuZ2V0
KCkpOwotICAgIGlmIChDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2Ny
aXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVfVmlkZW8pCisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihtX3NhbXBsZS5nZXQoKSk7CisgICAgaWYgKFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdl
dE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQogICAg
ICAgICByZXR1cm4gRmxvYXRTaXplKCk7CiAgICAgCi0gICAgcmV0dXJuIEZsb2F0U2l6ZShDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2Ny
aXB0aW9uLCB0cnVlLCB0cnVlKSk7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRp
b24sIHRydWUsIHRydWUpKTsKIH0KIAogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKQEAgLTIwMSwxMiArMjAzLDEyIEBAIHZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB2b2lkIE1lZGlhU2FtcGxl
QVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogewog
ICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRy
LCAmaXRlbUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3Vu
dCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZv
PiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsK
LSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
bV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0
cikpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWlu
ZyA6IHRpbWluZ0luZm9BcnJheSkgewpAQCAtMjE1LDcgKzIxNyw3IEBAIHZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiAg
ICAgfQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAobm9F
cnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCAmbmV3U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0
ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBp
dGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0yMjQs
MTIgKzIyNiwxMiBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5
KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRp
bWVzdGFtcHMoY29uc3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGFtcCwgY29u
c3QgV1RGOjpNZWRpYVRpbWUgJmRlY29kZVRpbWVzdGFtcCkKIHsKICAgICBDTUl0ZW1Db3VudCBp
dGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisg
ICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5
OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBp
dGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0Vy
ciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxl
LmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAg
ICAgICByZXR1cm47CiAgICAgCiAgICAgZm9yIChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZvQXJy
YXkpIHsKQEAgLTIzOCw3ICsyNDAsNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGlt
ZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogICAgIH0K
ICAgICAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5vRXJyICE9
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5l
d1NhbXBsZSkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNv
dW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUpOwpAQCAtMjQ2LDEwICsy
NDgsMTAgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RG
OjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGEKIAogYm9vbCBNZWRpYVNhbXBsZUFWRk9i
akM6OmlzRGl2aXNhYmxlKCkgY29uc3QKIHsKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXROdW1T
YW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAxKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSkgPT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5KG1fc2FtcGxlLmdl
dCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVCdWZmZXJFcnJvcl9CdWZmZXJI
YXNOb1NhbXBsZVNpemVzKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6
ZUFycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVC
dWZmZXJFcnJvcl9CdWZmZXJIYXNOb1NhbXBsZVNpemVzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI2MiwxNyArMjY0LDE3IEBAIHN0ZDo6cGFpcjxSZWZQ
dHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6
OmRpdmlkZShjCiAKICAgICBDRkluZGV4IHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lID0g
MDsKIAotICAgIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5n
ZXQoKSwgWyZdIChDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAt
PiBPU1N0YXR1cyB7Ci0gICAgICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRP
dXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICBQQUw6OkNNU2Ft
cGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5nZXQoKSwgWyZdIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAtPiBPU1N0YXR1cyB7Cisg
ICAgICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNl
bnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogICAgICAgICBpZiAoQ01USU1FX0lTX0lO
VkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgICAgIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVy
R2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICB0aW1l
U3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBs
ZUJ1ZmZlcik7CiAKICAgICAgICAgaWYgKHVzZUVuZFRpbWUgPT0gVXNlRW5kVGltZTo6VXNlKSB7
Ci0gICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJh
dGlvbihzYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwogICAgICAgICAgICAg
aWYgKENNVElNRV9JU19JTlZBTElEKGR1cmF0aW9uKSkKLSAgICAgICAgICAgICAgICBkdXJhdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAg
ICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZm
ZXIpOwogCi0gICAgICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShDTVRpbWVBZGQodGltZVN0
YW1wLCBkdXJhdGlvbikpID4gcHJlc2VudGF0aW9uVGltZSkKKyAgICAgICAgICAgIGlmIChQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+IHByZXNl
bnRhdGlvblRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0gZWxzZSBp
ZiAoUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApID49IHByZXNlbnRhdGlvblRpbWUpCiAgICAg
ICAgICAgICByZXR1cm4gMTsKQEAgLTI4MywxOSArMjg1LDE5IEBAIHN0ZDo6cGFpcjxSZWZQdHI8
TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRp
dmlkZShjCiAgICAgaWYgKCFzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSkKICAgICAgICAg
cmV0dXJuIHsgbnVsbHB0ciwgdGhpcyB9OwogCi0gICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQg
PSBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpOworICAgIENNSXRl
bUNvdW50IHNhbXBsZUNvdW50ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9z
YW1wbGUuZ2V0KCkpOwogICAgIGlmIChzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSA+PSBz
YW1wbGVDb3VudCkKICAgICAgICAgcmV0dXJuIHsgdGhpcywgbnVsbHB0ciB9OwogCiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQmVmb3JlID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJh
bmdlQmVmb3JlID0gQ0ZSYW5nZU1ha2UoMCwgc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUp
OwotICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VCZWZvcmUsICZyYXdTYW1wbGVCZWZv
cmUpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9y
ZSwgJnJhd1NhbXBsZUJlZm9yZSkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIs
IG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJlZm9y
ZSA9IGFkb3B0Q0YocmF3U2FtcGxlQmVmb3JlKTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJh
d1NhbXBsZUFmdGVyID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdlQWZ0ZXIgPSBDRlJhbmdl
TWFrZShzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSwgc2FtcGxlQ291bnQgLSBzYW1wbGVz
QmVmb3JlUHJlc2VudGF0aW9uVGltZSk7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBs
ZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5n
ZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkNNU2FtcGxl
QnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2Ft
cGxlLmdldCgpLCByYW5nZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBzYW1wbGVBZnRlciA9IGFkb3B0Q0YocmF3U2FtcGxlQWZ0ZXIpOwogCkBAIC0zMDUs
MTMgKzMwNywxMyBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlh
U2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogUmVmPE1lZGlhU2FtcGxlPiBN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3QKIHsKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXIgPSAwOwotICAgIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1Nh
bXBsZUJ1ZmZlcik7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAgIEFTU0VS
VChuZXdTYW1wbGVCdWZmZXIpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG5ld1NhbXBsZUJ1ZmZlciwg
dHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsKICAg
ICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJh
eSk7ICsraSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0g
Y2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0
SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1
ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJv
b2xlYW5UcnVlKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBB
TDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xlYW5UcnVlKTsK
ICAgICB9CiAKICAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRvcHRDRihu
ZXdTYW1wbGVCdWZmZXIpLmdldCgpLCBtX2lkKTsKQEAgLTMyNiw3ICszMjgsNyBAQCBSZWZQdHI8
SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VE
YXRhKCkgY29uc3QKICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShjb25mb3JtZXJPcHRpb25zLmdl
dCgpLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgaW1hZ2VGb3JtYXROdW1iZXIu
Z2V0KCkpOwogICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgcGl4ZWxCdWZmZXJDb25mb3JtZXIo
Y29uZm9ybWVyT3B0aW9ucy5nZXQoKSk7CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3Nh
bXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVs
QnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0
KCkpKTsKICAgICBhdXRvIHJnYmFQaXhlbEJ1ZmZlciA9IHBpeGVsQnVmZmVyQ29uZm9ybWVyLmNv
bnZlcnQocGl4ZWxCdWZmZXIpOwogICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tC
YXNlQWRkcmVzcyhyZ2JhUGl4ZWxCdWZmZXIuZ2V0KCksIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFk
T25seSk7CiAgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CkBAIC0zNDMsMTAgKzM0NSwxMCBA
QCBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRS
R0JBSW1hZ2VEYXRhKCkgY29uc3QKIAogc3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZl
ckFzRGlzcGxheUltbWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsK
LSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShzYW1wbGVCdWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENG
QXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJs
ZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGlj
dGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7
Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRh
Y2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBD
RkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50
S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KIH0KIApAQCAt
MzU3LDcgKzM1OSw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1l
ZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiBib29sIE1lZGlhU2FtcGxlQVZGT2JqQzo6
aXNIb21vZ2VuZW91cygpIGNvbnN0CiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5
ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgp
LCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAg
ICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzg1
LDcgKzM4Nyw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiB7CiAgICAgdXNpbmcgU2FtcGxl
VmVjdG9yID0gVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PjsKIAotICAgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0Fy
cmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1w
bGUuZ2V0KCksIHRydWUpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkKICAgICAgICAgcmV0
dXJuIFNhbXBsZVZlY3Rvcjo6ZnJvbShtYWtlUmVmKCp0aGlzKSk7CiAKQEAgLTQxOCw3ICs0MjAs
NyBAQCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6
ZGl2aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcwogICAgIHNhbXBsZXMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShyYW5nZXMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIHJhbmdlIDogcmFuZ2VzKSB7
CiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZSA9IG51bGxwdHI7Ci0gICAgICAg
IGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2UsICZyYXdTYW1wbGUpICE9IG5vRXJyIHx8ICFy
YXdTYW1wbGUpCisgICAgICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJh
d1NhbXBsZSkgIT0gbm9FcnIgfHwgIXJhd1NhbXBsZSkKICAgICAgICAgICAgIHJldHVybiB7IH07
CiAgICAgICAgIHNhbXBsZXMudW5jaGVja2VkQXBwZW5kKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3Jl
YXRlKGFkb3B0Q0YocmF3U2FtcGxlKS5nZXQoKSwgbV9pZCkpOwogICAgIH0KQEAgLTQzMiwyNCAr
NDM0LDI0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpD
OjpjbG9uZVNhbXBsZUJ1ZmZlckFuZFNldEFzRGlzcGxhCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0g
bnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCAmZm9ybWF0
RGVzY3JpcHRpb24pOworICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZl
ciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBhdXRvIHJldGFpbmVkRm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZv
cm1hdERlc2NyaXB0aW9uKTsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAg
c3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAw
LCBudWxscHRyLCAmaXRlbUNvdW50KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCk7
CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBWZWN0b3I8
Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5
Lmdyb3coaXRlbUNvdW50KTsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwg
bnVsbHB0cik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVs
bHB0cik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVC
dWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhl
bEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdT
YW1wbGVCdWZmZXIpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgZm9ybWF0
RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGVCdWZmZXIpOwog
ICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDBi
OWJiNjQ4NWYzZTllMjUzNDVhYWQ0ZjRlNDcwOTJjNDI5YTVjYzguLjAyMTkyMTZkN2MyZDg4ZWY1
Nzc1MjZkODgyMzBjM2U1MDNmZDhjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yNTgsNyArMjU4LDYgQEAgLSAo
dm9pZClhdWRpb1JlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQ6KE5TTm90aWZpY2F0aW9u
Kilub3RlCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7
CiAKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMKQEAgLTI3Nyw3ICsyNzYsNyBAQCBzdGF0aWMgdWludDY0X3QgbmV4dE1hcElEKCkKIAogc3Rh
dGljIHZvaWQgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJl
ZiwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUsIGNv
bnN0IHZvaWQqLCBDRlR5cGVSZWYpCiB7Ci0gICAgaWYgKCFDRkVxdWFsKGtDTVNhbXBsZUJ1ZmZl
ckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkK
KyAgICBpZiAoIUNGRXF1YWwoUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlv
bl9CdWZmZXJDb25zdW1lZCwgbm90aWZpY2F0aW9uTmFtZSkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKQEAgLTMxNiw3ICszMTUsNyBAQCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQ
cml2YXRlQVZGT2JqQwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAo
IVtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNw
b25kVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhDb21wbGV0aW9uSGFuZGxl
cjopXSkKLSAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihDTU5vdGlmaWNh
dGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQq
PihtX21hcElEKSwgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywga0NNU2FtcGxlQnVmZmVyQ29u
c3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIsIDApOworICAgICAgICBQ
QUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNl
bnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQqPihtX21h
cElEKSwgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywgUEFMOjprQ01TYW1wbGVCdWZmZXJDb25z
dW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7CiAKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBtX3BhcnNlci0+c2V0TG9nZ2VyKG1fbG9nZ2VyLmdldCgp
LCBtX2xvZ0lkZW50aWZpZXIpOwpAQCAtMzU0LDcgKzM1Myw3IEBAIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQogICAgIGNsZWFyVHJhY2tz
KCk7CiAKICAgICBpZiAoIVtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3Mo
KSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhD
b21wbGV0aW9uSGFuZGxlcjopXSkKLSAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVM
aXN0ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCB0aGlz
LCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlm
aWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0cik7CisgICAgICAgIFBBTDo6Q01Ob3RpZmlj
YXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVm
YXVsdExvY2FsQ2VudGVyKCksIHRoaXMsIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIFBBTDo6
a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxw
dHIpOwogCiAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkKICAgICAgICAgbV9oYXNTZXNz
aW9uU2VtYXBob3JlLT5zaWduYWwoKTsKQEAgLTk5Myw3ICs5OTIsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcgogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlcldh
c0F1dG9tYXRpY2FsbHlGbHVzaGVkKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqcmVuZGVy
ZXIsIGNvbnN0IENNVGltZSYgdGltZSkKIHsKLSAgICBhdXRvIG1lZGlhVGltZSA9IHRvTWVkaWFU
aW1lKHRpbWUpOworICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZSh0aW1lKTsK
ICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgbWVkaWFUaW1lKTsKICAgICBBdG9tU3RyaW5n
IHRyYWNrSWQ7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9hdWRpb1JlbmRlcmVycykgewpAQCAt
MTEwMSwxMyArMTEwMCwxMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1
ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAgICAgYXV0byBsb2dT
aXRlSWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CiAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVu
dGlmaWVyLCAidHJhY2sgSUQgPSAiLCB0cmFja0lELCAiLCBzYW1wbGUgPSAiLCBzYW1wbGUuZ2V0
KCkpOwogCi0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNt
U2FtcGxlQnVmZmVyKTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2Ft
cGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiAgICAgQVNTRVJUKGZvcm1hdERlc2NyaXB0aW9u
KTsKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEVSUk9SX0xPRyhsb2dT
aXRlSWRlbnRpZmllciwgIlJlY2VpdmVkIHNhbXBsZSB3aXRoIGEgbnVsbCBmb3JtYXREZXNjcmlw
dGlvbi4gQmFpbGluZy4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBhdXRvIG1lZGlh
VHlwZSA9IENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24p
OworICAgIGF1dG8gbWVkaWFUeXBlID0gUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFU
eXBlKGZvcm1hdERlc2NyaXB0aW9uKTsKIAogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZp
ZGVvVHJhY2tJRCkgewogICAgICAgICAvLyBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciB3aWxs
IHRocm93IGFuIHVuLWRvY3VtZW50ZWQgZXhjZXB0aW9uIGlmIHBhc3NlZCBhIHNhbXBsZQpAQCAt
MTEyMCw3ICsxMTE5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1
ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAogICAgICAgICB9CiAKICAg
ICAgICAgYXV0byBwbGF5ZXIgPSB0aGlzLT5wbGF5ZXIoKTsKLSAgICAgICAgRmxvYXRTaXplIGZv
cm1hdFNpemUgPSBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0
aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgICAgICBG
bG9hdFNpemUgZm9ybWF0U2l6ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRy
dWUpKTsKICAgICAgICAgaWYgKCFtX2NhY2hlZFNpemUgfHwgZm9ybWF0U2l6ZSAhPSBtX2NhY2hl
ZFNpemUudmFsdWUoKSkgewogICAgICAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVy
LCAic2l6ZSBjaGFuZ2VkIHRvICIsIGZvcm1hdFNpemUpOwogICAgICAgICAgICAgYm9vbCBzaXpl
V2FzTnVsbCA9ICFtX2NhY2hlZFNpemU7CkBAIC0xMTQ2LDkgKzExNDUsOSBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBz
YW1wbGUsIGNvbnN0CiAKICAgICAgICAgICAgIGlmICghaGF2ZVByZXJvbGxEZWNvZGVXaXRoQ29t
cGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdT
YW1wbGVDb3B5OwotICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsICZy
YXdTYW1wbGVDb3B5KTsKKyAgICAgICAgICAgICAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRl
Q29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVC
dWZmZXIsICZyYXdTYW1wbGVDb3B5KTsKICAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUNvcHkg
PSBhZG9wdENGKHJhd1NhbXBsZUNvcHkpOwotICAgICAgICAgICAgICAgIENNU2V0QXR0YWNobWVu
dChzYW1wbGVDb3B5LmdldCgpLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3Rp
ZmljYXRpb25XaGVuQ29uc3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9fYnJp
ZGdlIE5TU3RyaW5nICopa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0
aW9uV2hlbkNvbnN1bWVkIDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9w
YWdhdGUpOworICAgICAgICAgICAgICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUNvcHku
Z2V0KCksIFBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9u
V2hlbkNvbnN1bWVkLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7IChfX2JyaWRnZSBOU1N0
cmluZyAqKVBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9u
V2hlbkNvbnN1bWVkIDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9wYWdh
dGUpOwogICAgICAgICAgICAgICAgIFttX2Rpc3BsYXlMYXllciBlbnF1ZXVlU2FtcGxlQnVmZmVy
OnNhbXBsZUNvcHkuZ2V0KCldOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgICAg
ICAgICAgcGxheWVyLT5zZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHRydWUpOwpAQCAtMTI5OCwx
NCArMTI5NywxNCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGll
bnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9tUwogYm9vbCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6Y2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25z
dCBBdG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nKSBjb25zdAogewogICAgIHJldHVybiBwYXJzZUlu
dGVnZXJBbGxvd2luZ1RyYWlsaW5nSnVuazx1aW50NjRfdD4odHJhY2tJRFN0cmluZykudmFsdWVf
b3IoMCkgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lECi0gICAgICAgICYmIFtnZXRBVlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVj
dG9yKGV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6KV07
CisgICAgICAgICYmIFtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBp
bnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoZXhwZWN0TWluaW11bVVwY29taW5n
U2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTopXTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6c2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBB
dG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nLCBjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRp
bWUpCiB7CiAgICAgQVNTRVJUKGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUo
dHJhY2tJRFN0cmluZykpOwogICAgIGlmIChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRp
b25UaW1lKHRyYWNrSURTdHJpbmcpKQotICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZXhwZWN0TWlu
aW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTp0b0NNVGltZShwcmVzZW50
YXRpb25UaW1lKV07CisgICAgICAgIFttX2Rpc3BsYXlMYXllciBleHBlY3RNaW5pbXVtVXBjb21p
bmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOlBBTDo6dG9DTVRpbWUocHJlc2VudGF0aW9u
VGltZSldOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjbGVhck1pbmlt
dW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRFN0cmlu
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1Nv
dXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5kZXggZTZkZmNiMzQ5NmY5MmQy
YWEyMWY4NzY4NDY0ODA4YjE2MWQ1Nzc2Yi4uYjVkOGY1MzZhMjA3OGY5NGU0NGRhYzcxODM1NzEz
NTg4ZGY0MzE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAgLTI1OCw4
ICsyNTgsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQYXJzZXJXZWJNOjpTdGF0ZT4gewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7Ci0KIHN0YXRpYyBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgeyBy
ZXR1cm4gTG9nTWVkaWE7IH0KIHN0YXRpYyBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJl
dHVybiAiU291cmNlQnVmZmVyUGFyc2VyV2ViTSI7IH0KIApAQCAtMTA1Nyw3ICsxMDU1LDcgQEAg
d2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJhbWUoY29uc3QgRnJhbWVN
ZXRhZGF0YSYgbWV0YWRhdGEsIFJlYWQKICAgICAgICAgcmV0dXJuIFNraXAocmVhZGVyLCBieXRl
c1JlbWFpbmluZyk7CiAgICAgfQogCi0gICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZyYW1l
RGF0YSgqcmVhZGVyLCBtZXRhZGF0YSwgYnl0ZXNSZW1haW5pbmcsIENNVGltZU1ha2UoYmxvY2st
PnRpbWVjb2RlICsgbV9jdXJyZW50VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9m
cmFtZXMpOworICAgIHJldHVybiB0cmFja0RhdGEtPmNvbnN1bWVGcmFtZURhdGEoKnJlYWRlciwg
bWV0YWRhdGEsIGJ5dGVzUmVtYWluaW5nLCBQQUw6OkNNVGltZU1ha2UoYmxvY2stPnRpbWVjb2Rl
ICsgbV9jdXJyZW50VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9mcmFtZXMpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnByb3ZpZGVNZWRpYURhdGEoUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzYW1wbGVCdWZmZXIsIHVpbnQ2NF90IHRyYWNrSUQsIHN0
ZDo6b3B0aW9uYWw8c2l6ZV90PiBieXRlUmFuZ2VPZmZzZXQpCkBAIC0xMDgxLDcgKzEwNzksNyBA
QCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNv
bnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgIENNQmxvY2tCdWZmZXJSZWYgcmF3QmxvY2tC
dWZmZXIgPSBudWxscHRyOwogCiAgICAgaWYgKCFtX2N1cnJlbnRCbG9ja0J1ZmZlcikgewotICAg
ICAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxs
b2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgMCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKKyAgICAg
ICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVm
YXVsdCwgbnVsbHB0ciwgMCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKICAg
ICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJM
RSgiQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCBlcnJvciIs
IGVycik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7
CkBAIC0xMDkwLDcgKzEwODgsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6VmlkZW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgICAgICBt
X2N1cnJlbnRCbG9ja0J1ZmZlciA9IGFkb3B0Q0YocmF3QmxvY2tCdWZmZXIpOwogICAgICAgICBt
X2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uID0gMDsKIAotICAgICAgICBlcnIgPSBDTUJsb2Nr
QnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOworICAg
ICAgICBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRC
bG9ja0J1ZmZlci5nZXQoKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFBBUlNF
Ul9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFj
a2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJl
dHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKQEAgLTExMDEsNyArMTA5OSw3IEBA
IHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29u
c3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgd2hpbGUgKGJ5dGVzVG9SZWFkKSB7CiAgICAg
ICAgIHNpemVfdCBzZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwogICAgICAgICB1aW50OF90KiBi
bG9ja0J1ZmZlckRhdGEgPSBudWxscHRyOwotICAgICAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZm
ZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50Qmxv
Y2tCdWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIq
KikmYmxvY2tCdWZmZXJEYXRhKTsKKyAgICAgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZm
ZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50Qmxv
Y2tCdWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIq
KikmYmxvY2tCdWZmZXJEYXRhKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFS
U0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyIGZh
aWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIs
IGJ5dGVzUmVtYWluaW5nKTsKQEAgLTExMzUsNyArMTEzMyw3IEBAIHZvaWQgU291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRp
bWUmIHByCiAjaWYgRU5BQkxFKFZQOSkKICAgICB1aW50OF90KiBibG9ja0J1ZmZlckRhdGEgPSBu
dWxscHRyOwogICAgIHNpemVfdCBzZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwotICAgIGF1dG8g
ZXJyID0gQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdl
dCgpLCAwLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioqKSZibG9ja0J1
ZmZlckRhdGEpOworICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50
ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIDAsICZzZWdtZW50U2l6ZUF0UG9zaXRpb24s
IG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0YSk7CiAgICAgaWYgKGVycikgewogICAg
ICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0RGF0YVBv
aW50ZXIgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICByZXR1cm47CkBAIC0xMTc5
LDkgKzExNzcsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRh
OjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogICAgICAgICBkdXJhdGlvbiA9
IHRyYWNrLmRlZmF1bHRfZHVyYXRpb24udmFsdWUoKSAqIHByZXNlbnRhdGlvblRpbWUudGltZXNj
YWxlIC8gMTAwMDAwMDAwMDsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZl
ciA9IG51bGxwdHI7Ci0gICAgc2l6ZV90IGZyYW1lU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRh
TGVuZ3RoKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKLSAgICBDTVNhbXBsZVRpbWluZ0lu
Zm8gdGltaW5nID0geyBDTVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRpbWVz
Y2FsZSksIHByZXNlbnRhdGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKLSAgICBlcnIgPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJs
b2NrQnVmZmVyLmdldCgpLCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVD
b3VudCwgMSwgJnRpbWluZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CisgICAg
c2l6ZV90IGZyYW1lU2l6ZSA9IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9jdXJy
ZW50QmxvY2tCdWZmZXIuZ2V0KCkpOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmcgPSB7
IFBBTDo6Q01UaW1lTWFrZShkdXJhdGlvbiwgcHJlc2VudGF0aW9uVGltZS50aW1lc2NhbGUpLCBw
cmVzZW50YXRpb25UaW1lLCBwcmVzZW50YXRpb25UaW1lIH07CisgICAgZXJyID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJsb2Nr
QnVmZmVyLmdldCgpLCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVDb3Vu
dCwgMSwgJnRpbWluZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYg
KGVycikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5IGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtMTE5MSw3ICsxMTg5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRl
b1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICBtX2N1
cnJlbnRCbG9ja0J1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3Np
dGlvbiA9IDA7CiAKLSAgICBhdXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKKyAgICBh
dXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOwogICAgIEFTU0VSVChhdHRhY2ht
ZW50c0FycmF5KTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpIHsKICAgICAgICAgUEFSU0VS
X0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50
c0FycmF5IHJldHVybmVkIE5VTEwiKTsKQEAgLTEyMDEsNyArMTE5OSw3IEBAIHZvaWQgU291cmNl
QnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25z
dCBDTVRpbWUmIHByCiAgICAgaWYgKCFpc0tleSkgewogICAgICAgICBmb3IgKENGSW5kZXggaSA9
IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7
ICsraSkgewogICAgICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9
IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgICAgIENGRGljdGlvbmFyeVNl
dFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMsIGtDRkJv
b2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRz
LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYywga0NGQm9vbGVhblRydWUpOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC0xMjgyLDEyICsxMjgwLDEyIEBAIHdlYm06OlN0YXR1cyBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3
ZWJtOjpSZWFkCiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmlu
Zyk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIHN0cmVhbURlc2NyaXB0aW9uID0gQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3JtYXREZXNjcmlw
dGlvbi5nZXQoKSk7CisgICAgICAgIGF1dG8gc3RyZWFtRGVzY3JpcHRpb24gPSBQQUw6OkNNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24oZm9ybWF0RGVzY3Jp
cHRpb24uZ2V0KCkpOwogICAgICAgICBpZiAoIXN0cmVhbURlc2NyaXB0aW9uKSB7CiAgICAgICAg
ICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGZhaWxlZCIpOwogICAgICAgICAgICAgcmV0dXJu
IFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwogICAgICAgICB9Ci0gICAgICAgIG1fcGFj
a2V0RHVyYXRpb24gPSBDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFj
a2V0LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOworICAgICAgICBtX3BhY2tldER1
cmF0aW9uID0gUEFMOjpDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFj
a2V0LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOwogCiAgICAgICAgIHNldEZvcm1h
dERlc2NyaXB0aW9uKFdURk1vdmUoZm9ybWF0RGVzY3JpcHRpb24pKTsKICAgICB9IGVsc2UgaWYg
KGNvZGVjKCkgPT0gQ29kZWNUeXBlOjpPcHVzKSB7CkBAIC0xMzA5LDcgKzEzMDcsNyBAQCB3ZWJt
OjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNvbnN1bWVG
cmFtZURhdGEod2VibTo6UmVhZAogICAgIG1fY3VycmVudFBhY2tldEJ5dGVPZmZzZXQgPSBzdGQ6
Om51bGxvcHQ7CiAgICAgbV9jdXJyZW50UGFja2V0U2l6ZSA9IHN0ZDo6bnVsbG9wdDsKIAotICAg
IGF1dG8gc2FtcGxlRHVyYXRpb24gPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZVN1YnRyYWN0KHBy
ZXNlbnRhdGlvblRpbWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgQ01UaW1lR2V0U2Vj
b25kcyhtX3BhY2tldER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OworICAgIGF1dG8gc2FtcGxlRHVy
YXRpb24gPSBQQUw6OkNNVGltZUdldFNlY29uZHMoUEFMOjpDTVRpbWVTdWJ0cmFjdChwcmVzZW50
YXRpb25UaW1lLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUpKSArIFBBTDo6Q01UaW1lR2V0U2Vj
b25kcyhtX3BhY2tldER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OwogICAgIGlmIChzYW1wbGVEdXJh
dGlvbiA+PSBtX21pbmltdW1TYW1wbGVEdXJhdGlvbikKICAgICAgICAgY3JlYXRlU2FtcGxlQnVm
ZmVyKG1ldGFkYXRhLnBvc2l0aW9uKTsKIApAQCAtMTMyNCwyMSArMTMyMiwyMSBAQCB2b2lkIFNv
dXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIo
c3RkOjpvcHRpb25hbDxzaQogICAgIEFTU0VSVCghbV9wYWNrZXREYXRhLmlzRW1wdHkoKSk7CiAK
ICAgICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVy
ciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1
bHQsIG51bGxwdHIsIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZl
ckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CisgICAgYXV0byBlcnIgPSBQQUw6
OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwg
bnVsbHB0ciwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZlckFz
c3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1l
bW9yeUJsb2NrIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgZXJyID0gQ01C
bG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMobV9wYWNrZXREYXRhLmRhdGEoKSwgYnVmZmVyLmdl
dCgpLCAwLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSk7CisgICAgZXJyID0gUEFMOjpDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhtX3BhY2tldERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0
KCksIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0
YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgZXJy
ID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0
KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1l
LCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOworICAgIGVy
ciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0
aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9u
KCkuZ2V0KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRp
b25UaW1lLCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOwog
ICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGgg
JWQiLCBlcnIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCmluZGV4IGU5
Zjg2ZGVhNDM4ZTg5NWU2M2RiZGUwN2M0ZDk1ZjliNWFlZjE4Y2MuLmFhNzM2Y2YxNDlhNDc0YmEy
NjNjYWFjZDY2NDJkZTc4Zjc3ODg3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCkBAIC00Nyw3
ICs0Nyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsK
IHVzaW5nIG5hbWVzcGFjZSB3ZWJtOwogCiBWUDlUZXN0aW5nT3ZlcnJpZGVzJiBWUDlUZXN0aW5n
T3ZlcnJpZGVzOjpzaW5nbGV0b24oKQpAQCAtMzYyLDExICszNjEsMTEgQEAgc3RhdGljIENGU3Ry
aW5nUmVmIGNvbnZlcnRUb0NNQ29sb3JQcmltYXJpZXModWludDhfdCBwcmltYXJpZXMpCiAgICAg
Y2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfU1RfMjQwOgogICAgICAg
ICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJDb2xvclByaW1hcmllc19TTVBURV9DOwogICAgIGNhc2Ug
VlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX1JQXzQzMV8yOgotICAgICAgICBy
ZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7CisgICAgICAg
IHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzOwog
ICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX0VHXzQzMl8xOgot
ICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjU7
CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
UDNfRDY1OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OkJUXzIwMjBf
Tm9uY29uc3RhbnRfTHVtaW5hbmNlOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRp
b25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CiAgICAgfQogCiAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC00MjAsMTggKzQxOSwxOCBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29u
dmVydFRvQ01UcmFuc2ZlckZ1bmN0aW9uKHVpbnQ4X3QgY2hhcmFjdGVyaXN0aWNzKQogICAgIGNh
c2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OlNNUFRFX1NUXzI0MDoK
ICAgICAgICAgcmV0dXJuIGtDVkltYWdlQnVmZmVyVHJhbnNmZXJGdW5jdGlvbl9TTVBURV8yNDBN
XzE5OTU7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6
U01QVEVfU1RfMjA4NDoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BROworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUTsKICAgICBjYXNl
IFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpCVF8yMDIwXzEwYml0Ogog
ICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBf
MTJiaXQ6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjA7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFu
c2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfNDI4XzE6Ci0gICAgICAgIHJldHVybiBrQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzE7CisgICAgICAg
IHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9T
VF80MjhfMTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNz
OjpCVF8yMTAwX0hMRzoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRzsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHOwogICAgIGNhc2UgVlBD
b25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OklFQ182MTk2Nl8yXzE6Ci0gICAg
ICAgIHJldHVybiBjYW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fc1JHQigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgOiBudWxscHRyOworICAgICAgICByZXR1cm4gUEFMOjpj
YW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JH
QigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9zUkdCKCkgOiBudWxscHRyOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJD
aGFyYWN0ZXJpc3RpY3M6OkxpbmVhcjoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CiAgICAgfQogCiAgICAgcmV0dXJu
IG51bGxwdHI7CkBAIC00NjcsNyArNDY2LDcgQEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZlcnRU
b0NNWUNiQ1JNYXRyaXgodWludDhfdCBjb2VmZmljaWVudHMpCiB7CiAgICAgc3dpdGNoIChjb2Vm
ZmljaWVudHMpIHsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6
QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXRE
ZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtD
TUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29u
ZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNDcwXzdfQkc6CiAgICAgY2FzZSBWUENv
bmZpZ3VyYXRpb25NYXRyaXhDb2VmZmljaWVudHM6OkJUXzYwMV83OgogICAgICAgICByZXR1cm4g
a0NWSW1hZ2VCdWZmZXJZQ2JDck1hdHJpeF9JVFVfUl82MDFfNDsKQEAgLTU0MywxMSArNTQyLDEx
IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlRm9ybWF0
RGVzY3JpcHRpb25Gcm9tVlBDb2RlY0NvbmZpCiAgICAgQ0ZUeXBlUmVmIGNvbmZpZ3VyYXRpb25W
YWx1ZXNbXSA9IHsgZGF0YS5nZXQoKSB9OwogICAgIGF1dG8gY29uZmlndXJhdGlvbkRpY3QgPSBh
ZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb25maWd1cmF0
aW9uS2V5cywgY29uZmlndXJhdGlvblZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChjb25maWd1cmF0
aW9uS2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9u
YXJ5VmFsdWVDYWxsQmFja3MpKTsKIAotICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNL
ZXlzIHsga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRl
bnNpb25BdG9tcyB9OworICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNLZXlzIHsgUEFM
OjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lv
bkF0b21zIH07CiAgICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc1ZhbHVlcyA9IHsgY29u
ZmlndXJhdGlvbkRpY3QuZ2V0KCkgfTsKIAogICAgIGlmIChyZWNvcmQudmlkZW9GdWxsUmFuZ2VG
bGFnID09IFZQQ29uZmlndXJhdGlvblJhbmdlOjpGdWxsUmFuZ2UpIHsKLSAgICAgICAgZXh0ZW5z
aW9uc0tleXMuYXBwZW5kKGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZp
ZGVvKTsKKyAgICAgICAgZXh0ZW5zaW9uc0tleXMuYXBwZW5kKFBBTDo6a0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOwogICAgICAgICBleHRlbnNpb25zVmFsdWVz
LmFwcGVuZChrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24u
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb24ubW0KaW5kZXggY2VhMTU2YWUyZmJlMjVhZGEwMDc2NjhlOTFkNTBlNTYx
YzY0MmU0ZS4uN2I1MzhiMWU5OGVmODk5NTVlZWU4Zjc5ODRhNTM3MDBlMTkzN2I3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQpAQCAtNDMsOSArNDMsMTEgQEAK
ICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJWaWRlb1Rvb2xib3hTb2Z0
TGluay5oIgogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCi1XVEZfREVDTEFSRV9DRl9UWVBFX1RS
QUlUKENNU2FtcGxlQnVmZmVyKTsKKy8vIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1w
bGVCdWZmZXIpOwordGVtcGxhdGUgPD4KK3N0cnVjdCBXVEY6OkNGVHlwZVRyYWl0PENNU2FtcGxl
QnVmZmVyUmVmPiB7CisgICAgc3RhdGljIGlubGluZSBDRlR5cGVJRCB0eXBlSUQodm9pZCkgeyBy
ZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCgpOyB9Cit9OwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTcyLDcgKzc0LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OnNldFRpbWViYXNlKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNlUmVtb3ZlVGltZXJE
aXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAg
ICAgICAgUEFMOjpDTVRpbWViYXNlUmVtb3ZlVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNl
LmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAgIG1fdGltZWJhc2UgPSB0aW1lYmFz
ZTsKIApAQCAtODQsNyArODYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
c2V0VGltZWJhc2UoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgZGlzcGF0Y2hfYWN0aXZhdGUobV90aW1lclNvdXJjZS5nZXQoKSk7CiAgICAgICAg
IH0KLSAgICAgICAgQ01UaW1lYmFzZUFkZFRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5n
ZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZUFkZFRp
bWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7
CiAgICAgfQogfQogCkBAIC0xMDQsMTIgKzEwNiwxMiBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6bWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKQogdm9pZCBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyLCBib29sIGRpc3BsYXlpbmcpCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNv
dW50ID0gMDsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkoc2FtcGxlQnVmZmVyLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKKyAgICBpZiAo
bm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1w
bGVCdWZmZXIsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5n
SW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWlu
Z0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgaXRlbUNvdW50
LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gQ01CdWZmZXJDYWxsYmFja3MgY29udGFpbnMgNjQtYml0IHBvaW50ZXJzIHRoYXQgYXJl
bid0IDgtYnl0ZSBhbGlnbmVkLiBUbyBzdXBwcmVzcyB0aGUgbGlua2VyCkBAIC0xMzQsNyArMTM2
LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLAogICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVv
ZihjYWxsYmFja3MuY2FsbGJhY2tzLnZlcnNpb24pID09IHNpemVvZih1aW50MzJfdCksICJWZXJz
aW9uIGZpZWxkIG11c3QgYmUgNCBieXRlcyIpOwogICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdu
b2YoQnVmZmVyQ2FsbGJhY2tzKSA9PSA0LCAiQ01CdWZmZXJDYWxsYmFja3Mgc3RydWN0IG11c3Qg
aGF2ZSA0IGJ5dGUgYWxpZ25tZW50Iik7CiAKLSAgICAgICAgQ01CdWZmZXJRdWV1ZUNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNr
cywgJm91dFF1ZXVlKTsKKyAgICAgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0
UXVldWUpOwogICAgICAgICBtX3Byb2R1Y2VyUXVldWUgPSBhZG9wdENGKG91dFF1ZXVlKTsKICAg
ICB9CiAKQEAgLTE1Niw3ICsxNTgsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6ZW5xdWV1ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsCiAgICAgICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKGNhbGxiYWNrcy5jYWxsYmFja3MudmVyc2lvbikgPT0gc2l6
ZW9mKHVpbnQzMl90KSwgIlZlcnNpb24gZmllbGQgbXVzdCBiZSA0IGJ5dGVzIik7CiAgICAgICAg
IHN0YXRpY19hc3NlcnQoYWxpZ25vZihCdWZmZXJDYWxsYmFja3MpID09IDQsICJDTUJ1ZmZlckNh
bGxiYWNrcyBzdHJ1Y3QgYWxpZ25tZW50IG11c3QgYmUgNCIpOwogCi0gICAgICAgIENNQnVmZmVy
UXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxi
YWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNh
bGxiYWNrcywgJm91dFF1ZXVlKTsKICAgICAgICAgbV9jb25zdW1lclF1ZXVlID0gYWRvcHRDRihv
dXRRdWV1ZSk7CiAgICAgfQogCkBAIC0xNzcsMjAgKzE3OSwyMCBAQCBib29sIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6c2hvdWxkRGVjb2RlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZSwgYgogICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBhdXRvIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSk7
Ci0gICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNl
bnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOwotICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1
ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7Ci0gICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0g
Q01UaW1lQWRkKHByZXNlbnRhdGlvblN0YXJ0VGltZSwgZHVyYXRpb24pOwotICAgIGlmIChDTVRp
bWVDb21wYXJlKHByZXNlbnRhdGlvbkVuZFRpbWUsIGN1cnJlbnRUaW1lKSA+PSAwKQorICAgIGF1
dG8gY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkp
OworICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKKyAgICBhdXRvIHByZXNlbnRhdGlv
bkVuZFRpbWUgPSBQQUw6OkNNVGltZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9u
KTsKKyAgICBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKHByZXNlbnRhdGlvbkVuZFRpbWUsIGN1cnJl
bnRUaW1lKSA+PSAwKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIENGQXJyYXlSZWYgYXR0
YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxl
LCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAgIGlmICghYXR0
YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgZm9yIChDRkluZGV4IGluZGV4
ID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHMpOyBpbmRleCA8IGNvdW50
OyArK2luZGV4KSB7CiAgICAgICAgIENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCA9IChD
RkRpY3Rpb25hcnlSZWYpQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50cywgaW5kZXgp
OwotICAgICAgICBDRkJvb2xlYW5SZWYgZGVwZW5kZWRPbiA9IChDRkJvb2xlYW5SZWYpQ0ZEaWN0
aW9uYXJ5R2V0VmFsdWUoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNE
ZXBlbmRlZE9uQnlPdGhlcnMpOworICAgICAgICBDRkJvb2xlYW5SZWYgZGVwZW5kZWRPbiA9IChD
RkJvb2xlYW5SZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0YWNobWVudERpY3QsIFBBTDo6a0NN
U2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycyk7CiAgICAgICAgIGlmIChk
ZXBlbmRlZE9uICYmICFDRkJvb2xlYW5HZXRWYWx1ZShkZXBlbmRlZE9uKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0yMDMsMTQgKzIwNSwxNCBAQCB2b2lkIFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5zdXJlRGVjb21wcmVzc2lvblNlc3Npb25Gb3JTYW1wbGUo
Q01TYW1wbGVCdQogICAgIGlmIChpc0ludmFsaWRhdGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0g
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOworICAgIENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZSk7CiAgICAgaWYgKG1fZGVjb21wcmVz
c2lvblNlc3Npb24gJiYgIVZURGVjb21wcmVzc2lvblNlc3Npb25DYW5BY2NlcHRGb3JtYXREZXNj
cmlwdGlvbihtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdldCgpLCB2aWRlb0Zvcm1hdERlc2NyaXB0
aW9uKSkgewogICAgICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91
c0ZyYW1lcyhtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdldCgpKTsKICAgICAgICAgbV9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKCFtX2RlY29tcHJlc3Np
b25TZXNzaW9uKSB7Ci0gICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zv
cm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1w
bGUpOworICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNj
cmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUp
OwogICAgICAgICBhdXRvIHZpZGVvRGVjb2RlclNwZWNpZmljYXRpb24gPSBAeyAoX19icmlkZ2Ug
TlNTdHJpbmcgKilrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNj
ZWxlcmF0ZWRWaWRlb0RlY29kZXI6IEAoIG1faGFyZHdhcmVEZWNvZGVyRW5hYmxlZCApIH07CiAK
ICAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzOwpAQCAtMjU2LDcgKzI1OCw3IEBAIHZv
aWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpkZWNvZGVTYW1wbGUoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlLCBib29sIGRpCiAKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSA9IE1v
bm90b25pY1RpbWU6Om5vdygpOwogICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFt
ZVdpdGhPdXRwdXRIYW5kbGVyKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCksIHNhbXBsZSwg
ZmxhZ3MsIG51bGxwdHIsIFt0aGlzLCBkaXNwbGF5aW5nLCBzdGFydFRpbWVdKE9TU3RhdHVzIHN0
YXR1cywgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLCBDVkltYWdlQnVmZmVyUmVmIGltYWdl
QnVmZmVyLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUgcHJlc2VudGF0aW9u
RHVyYXRpb24pIHsKLSAgICAgICAgZG91YmxlIGRlbHRhUmF0aW8gPSAoTW9ub3RvbmljVGltZTo6
bm93KCkgLSBzdGFydFRpbWUpLnNlY29uZHMoKSAvIENNVGltZUdldFNlY29uZHMocHJlc2VudGF0
aW9uRHVyYXRpb24pOworICAgICAgICBkb3VibGUgZGVsdGFSYXRpbyA9IChNb25vdG9uaWNUaW1l
Ojpub3coKSAtIHN0YXJ0VGltZSkuc2Vjb25kcygpIC8gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKHBy
ZXNlbnRhdGlvbkR1cmF0aW9uKTsKIAogICAgICAgICB1cGRhdGVRb3NXaXRoRGVjb2RlVGltZVN0
YXRpc3RpY3MoZGVsdGFSYXRpbyk7CiAgICAgICAgIGhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQo
ZGlzcGxheWluZywgc3RhdHVzLCBpbmZvRmxhZ3MsIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25U
aW1lU3RhbXAsIHByZXNlbnRhdGlvbkR1cmF0aW9uKTsKQEAgLTI4OSw3ICsyOTEsNyBAQCB2b2lk
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChi
b29sIGRpc3BsYXlpbmcsIE9TUwogICAgICAgICArK21fZHJvcHBlZFZpZGVvRnJhbWVzOwogCiAg
ICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24g
PSBudWxscHRyOwotICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgbm9FcnIgIT0gQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
cmF3SW1hZ2VCdWZmZXIsICZyYXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uKSkgeworICAgIGlmIChz
dGF0dXMgIT0gbm9FcnIgfHwgbm9FcnIgIT0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwg
JnJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24pKSB7CiAgICAgICAgICsrbV9jb3JydXB0ZWRWaWRl
b0ZyYW1lczsKICAgICAgICAgLS1tX2ZyYW1lc0JlaW5nRGVjb2RlZDsKICAgICAgICAgbWF5YmVC
ZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTMwNCw3ICszMDYsNyBAQCB2b2lkIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChib29s
IGRpc3BsYXlpbmcsIE9TUwogICAgIH07CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdJbWFn
ZVNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VC
dWZmZXIsIGltYWdlQnVmZmVyRGVzY3JpcHRpb24uZ2V0KCksICZpbWFnZUJ1ZmZlclRpbWluZywg
JnJhd0ltYWdlU2FtcGxlQnVmZmVyKSkgeworICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxl
QnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3
SW1hZ2VCdWZmZXIsIGltYWdlQnVmZmVyRGVzY3JpcHRpb24uZ2V0KCksICZpbWFnZUJ1ZmZlclRp
bWluZywgJnJhd0ltYWdlU2FtcGxlQnVmZmVyKSkgewogICAgICAgICArK21fY29ycnVwdGVkVmlk
ZW9GcmFtZXM7CiAgICAgICAgIC0tbV9mcmFtZXNCZWluZ0RlY29kZWQ7CiAgICAgICAgIG1heWJl
QmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMTgsMTEgKzMyMCwxMSBAQCB2b2lk
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChi
b29sIGRpc3BsYXlpbmcsIE9TUwogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVvRnJhbWUoKQogewotICAgIGlmICgh
bV9wcm9kdWNlclF1ZXVlIHx8IENNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpCisgICAgaWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgUEFMOjpDTUJ1ZmZlclF1ZXVlSXNF
bXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0Yo
Y2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFu
ZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpQ01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKKyAgICBSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNh
bXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKSk7CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdl
QnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVm
ZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOwogICAgIEFTU0VSVChDRkdldFR5cGVJRChpbWFnZUJ1
ZmZlci5nZXQoKSkgPT0gQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJRCgpKTsKIAogICAgIG1heWJlQmVj
b21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMzUsMjUgKzMzNywyNSBAQCB2b2lkIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSgpCiAgICAgaWYgKCFt
X3RpbWViYXNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKKyAgICBhdXRvIHRp
bWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5n
ZXQoKSkpOwogICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0
b21hdGljRGVxdWV1ZSglcCkgLSBwdXJnaW5nIGFsbCBzYW1wbGVzIGJlZm9yZSB0aW1lKCVzKSIs
IHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgTWVkaWFUaW1lIG5l
eHRGaXJlVGltZSA9IE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKICAgICBib29s
IHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gZmFsc2U7CiAKLSAgICB3aGlsZSAoQ01TYW1wbGVCdWZm
ZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENN
QnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1l
ZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxl
QnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1l
ZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJh
dGlvbihmaXJzdFNhbXBsZSkpOworICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNh
bXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUg
cHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlh
VGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1
cmF0aW9uKGZpcnN0U2FtcGxlKSk7CiAgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRU
aW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1lc3RhbXAgKyBkdXJhdGlvbjsKICAgICAgICAgaWYg
KHRpbWUgPiBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXApIHsKLSAgICAgICAgICAgIENGUmVsZWFz
ZShDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsK
KyAgICAgICAgICAgIENGUmVsZWFzZShQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWlu
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVsZWFzZWRJbWFnZUJ1ZmZl
cnMgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogI2lmICFMT0df
RElTQUJMRUQKLSAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJR
dWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkp
OwotICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVu
ZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAg
YXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgIGF1
dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50
YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgIExPRyhNZWRp
YSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSglcCkgLSBx
dWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9T
dHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCkBAIC0zNjUsNyArMzY3LDcgQEAg
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoKQogICAg
ICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwogCiAgICAgTE9HKE1lZGlh
LCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHF1
ZXVlIGVtcHR5IiwgdGhpcyk7Ci0gICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VO
ZXh0RmlyZVRpbWUobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0
b0NNVGltZShuZXh0RmlyZVRpbWUpLCAwKTsKKyAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRp
c3BhdGNoU291cmNlTmV4dEZpcmVUaW1lKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2Uu
Z2V0KCksIFBBTDo6dG9DTVRpbWUobmV4dEZpcmVUaW1lKSwgMCk7CiB9CiAKIHZvaWQgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGUsIGJvb2wgZGlzcGxheWluZykKQEAgLTM4MywxNyArMzg1LDE3IEBAIHZvaWQg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGUsCiAgICAgYm9vbCBzaG91bGROb3RpZnkgPSB0cnVlOwogCiAgICAg
aWYgKGRpc3BsYXlpbmcgJiYgbV90aW1lYmFzZSkgewotICAgICAgICBhdXRvIGN1cnJlbnRSYXRl
ID0gQ01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7Ci0gICAgICAgIGF1dG8gY3Vy
cmVudFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2Uu
Z2V0KCkpKTsKLSAgICAgICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOwot
ICAgICAgICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBwcmVzZW50YXRpb25TdGFydFRpbWUg
KyBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKSk7Cisg
ICAgICAgIGF1dG8gY3VycmVudFJhdGUgPSBQQUw6OkNNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJh
c2UuZ2V0KCkpOworICAgICAgICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQ
QUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBw
cmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7CisgICAgICAgIGF1dG8gcHJlc2Vu
dGF0aW9uRW5kVGltZSA9IHByZXNlbnRhdGlvblN0YXJ0VGltZSArIFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSkpOwogICAgICAgICBpZiAoY3Vy
cmVudFRpbWUgPCBwcmVzZW50YXRpb25TdGFydFRpbWUgfHwgY3VycmVudFRpbWUgPj0gcHJlc2Vu
dGF0aW9uRW5kVGltZSkKICAgICAgICAgICAgIHNob3VsZE5vdGlmeSA9IGZhbHNlOwogCiAgICAg
ICAgIGlmIChjdXJyZW50UmF0ZSA+IDAgJiYgcHJlc2VudGF0aW9uRW5kVGltZSA8IGN1cnJlbnRU
aW1lKSB7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6
dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgICAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVk
aWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKCVwKSAtIGRyb3BwaW5nIGZyYW1lIGxh
dGUgYnkgJXMsIGZyYW1lc0JlaW5nRGVjb2RlZCglZCksIHByb2R1Y2VyUXVldWUoJXMgLT4gJXMp
IiwgdGhpcywgdG9TdHJpbmcocHJlc2VudGF0aW9uRW5kVGltZSAtIGN1cnJlbnRUaW1lKS51dGY4
KCkuZGF0YSgpLCBtX2ZyYW1lc0JlaW5nRGVjb2RlZCwgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5k
YXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKICAgICAgICAgICAg
ICsrbV9kcm9wcGVkVmlkZW9GcmFtZXM7CkBAIC00MDEsMTcgKzQwMywxNyBAQCB2b2lkIFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlLAogICAgICAgICB9CiAgICAgfQogCi0gICAgQ01CdWZmZXJRdWV1ZUVucXVl
dWUobV9wcm9kdWNlclF1ZXVlLmdldCgpLCBzYW1wbGUpOworICAgIFBBTDo6Q01CdWZmZXJRdWV1
ZUVucXVldWUobV9wcm9kdWNlclF1ZXVlLmdldCgpLCBzYW1wbGUpOwogCiAjaWYgIUxPR19ESVNB
QkxFRAotICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRG
aXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBh
dXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBhdXRvIHByZXNlbnRhdGlv
blRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKHNhbXBsZSkpOworICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOworICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVy
UXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7
CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOwogICAgIExPRyhNZWRp
YSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoJXAp
IC0gcHJlc2VudGF0aW9uVGltZSglcyksIGZyYW1lc0JlaW5nRGVjb2RlZCglZCksIHByb2R1Y2Vy
UXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcocHJlc2VudGF0aW9uVGltZSkudXRmOCgp
LmRhdGEoKSwgbV9mcmFtZXNCZWluZ0RlY29kZWQsIHRvU3RyaW5nKGJlZ2luKS51dGY4KCkuZGF0
YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAKICAgICBpZiAobV90
aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJ
bW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAg
ICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5
KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgaWYgKCFtX2hh
c0F2YWlsYWJsZUZyYW1lQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKQEAgLTQyNiw3ICs0Mjgs
NyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1w
bGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLAogCiBib29sIFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6aXNSZWFkeUZvck1vcmVNZWRpYURhdGEoKSBjb25zdAogewotICAgIENNSXRlbUNv
dW50IHByb2R1Y2VyQ291bnQgPSBtX3Byb2R1Y2VyUXVldWUgPyBDTUJ1ZmZlclF1ZXVlR2V0QnVm
ZmVyQ291bnQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSA6IDA7CisgICAgQ01JdGVtQ291bnQgcHJv
ZHVjZXJDb3VudCA9IG1fcHJvZHVjZXJRdWV1ZSA/IFBBTDo6Q01CdWZmZXJRdWV1ZUdldEJ1ZmZl
ckNvdW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOwogICAgIHJldHVybiBtX2ZyYW1lc0Jl
aW5nRGVjb2RlZCArIHByb2R1Y2VyQ291bnQgPD0ga0hpZ2hXYXRlck1hcms7CiB9CiAKQEAgLTQ1
Miw3ICs0NTQsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c3RvcFJlcXVl
c3RpbmdNZWRpYURhdGEoKQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bm90
aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNhbGxi
YWNrKQogewotICAgIGlmIChjYWxsYmFjayAmJiBtX3Byb2R1Y2VyUXVldWUgJiYgIUNNQnVmZmVy
UXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKKyAgICBpZiAoY2FsbGJhY2sg
JiYgbV9wcm9kdWNlclF1ZXVlICYmICFQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpIHsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxs
YmFja10gewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSk7CkBAIC00NjMsNyAr
NDY1LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5IYXNB
dmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVuY3Rpb24KIAogUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1l
ZGlhVGltZSYgdGltZSwgSW1hZ2VGb3JUaW1lRmxhZ3MgZmxhZ3MpCiB7Ci0gICAgaWYgKENNQnVm
ZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKKyAgICBpZiAoUEFMOjpD
TUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CiAgICAgICAgIExP
RyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKCVwKSAt
IHRpbWUoJXMpLCBxdWV1ZSBlbXB0eSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRh
KCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC00NzEsOSArNDczLDkgQEAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKICAgICBib29sIGFsbG93RWFybGllciA9IGZsYWdzID09
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dFYXJsaWVyOwogICAgIGJvb2wgYWxs
b3dMYXRlciA9IGZsYWdzID09IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dMYXRl
cjsKIAotICAgIE1lZGlhVGltZSBzdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVy
UXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KTsKKyAgICBNZWRpYVRpbWUgc3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVm
ZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKTsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9k
dWNlclF1ZXVlLmdldCgpKSk7CisgICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBQQUw6OnRvTWVkaWFU
aW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKICNlbmRpZgogICAgIGlmICghYWxsb3dMYXRlciAmJiB0aW1lIDwg
c3RhcnRUaW1lKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6aW1hZ2VGb3JUaW1lKCVwKSAtIHRpbWUoJXMpIHRvbyBlYXJseSBmb3IgcXVldWUoJXMg
LT4gJXMpIiwgdGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoc3Rh
cnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmRUaW1lKS51dGY4KCkuZGF0YSgpKTsK
QEAgLTQ4MiwyNCArNDg0LDI0IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiAKICAgICBib29s
IHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gZmFsc2U7CiAKLSAgICB3aGlsZSAoQ01TYW1wbGVCdWZm
ZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENN
QnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Ci0gICAgICAgIE1l
ZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxl
QnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1l
ZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJh
dGlvbihmaXJzdFNhbXBsZSkpOworICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNh
bXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgeworICAgICAgICBNZWRpYVRpbWUg
cHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxlKSk7CisgICAgICAgIE1lZGlh
VGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1
cmF0aW9uKGZpcnN0U2FtcGxlKSk7CiAgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRU
aW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1lc3RhbXAgKyBkdXJhdGlvbjsKICAgICAgICAgaWYg
KCFhbGxvd0xhdGVyICYmIHByZXNlbnRhdGlvblRpbWVzdGFtcCA+IHRpbWUpCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgaWYgKCFhbGxvd0VhcmxpZXIgJiYgcHJlc2VudGF0
aW9uRW5kVGltZXN0YW1wIDwgdGltZSkgewotICAgICAgICAgICAgQ0ZSZWxlYXNlKENNQnVmZmVy
UXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAg
ICAgQ0ZSZWxlYXNlKFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAgICByZWxlYXNlZEltYWdlQnVmZmVycyA9IHRydWU7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIFJldGFpblB0cjxD
TVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0
PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKSk7Ci0gICAgICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBp
bWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKUNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZm
ZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CisgICAgICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVm
ZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpKTsKKyAgICAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVm
ZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KGN1cnJlbnRTYW1wbGUuZ2V0KCkpOwogICAgICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoaW1hZ2VC
dWZmZXIuZ2V0KCkpID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQoKSk7CiAKICAgICAgICAgaWYg
KG1fdGltZWJhc2UpCi0gICAgICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJj
ZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkp
OworICAgICAgICAgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmly
ZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAg
ICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CiAKQEAgLTUwOCw3ICs1
MTAsNyBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQogICAgIH0KIAogICAgIGlmIChtX3RpbWVi
YXNlKQotICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVk
aWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQ
QUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90
aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICBpZiAocmVsZWFzZWRJ
bWFnZUJ1ZmZlcnMpCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7
CkBAIC01MjAsOSArNTIyLDkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKIHZvaWQgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCgpCiB7CiAgICAgbV9kZWNvbXByZXNzaW9uUXVl
dWUtPmRpc3BhdGNoU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgp
IG11dGFibGUgewotICAgICAgICBDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9w
cm9kdWNlclF1ZXVlLmdldCgpKTsKKyAgICAgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlUmVzZXQocHJv
dGVjdGVkVGhpcy0+bV9wcm9kdWNlclF1ZXVlLmdldCgpKTsKICAgICAgICAgbV9lbnF1ZWluZ1F1
ZXVlLT5kaXNwYXRjaFN5bmMoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
XSB7Ci0gICAgICAgICAgICBDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25z
dW1lclF1ZXVlLmdldCgpKTsKKyAgICAgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZVJlc2V0KHBy
b3RlY3RlZFRoaXMtPm1fY29uc3VtZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5tX2ZyYW1lc1NpbmNlTGFzdFFvc0NoZWNrID0gMDsKICAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fY3VycmVudFFvc1RpZXIgPSAwOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+cmVzZXRRb3NUaWVyKCk7CkBAIC01MzMsMjQgKzUzNSwyNCBAQCB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6Z2V0RGVjb2RlVGltZShDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4o
YnVmKTsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoc2FtcGxl
KTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChzYW1w
bGUpOwogfQogCiBDTVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVzZW50
YXRpb25UaW1lKENNQnVmZmVyUmVmIGJ1Ziwgdm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAg
IHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOwor
ICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNh
bXBsZSk7CiB9CiAKIENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0
aW9uKENNQnVmZmVyUmVmIGJ1Ziwgdm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVy
biBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOwogfQogCiBDRkNvbXBhcmlzb25SZXN1bHQg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVmZmVycyhDTUJ1ZmZlclJlZiBi
dWYxLCBDTUJ1ZmZlclJlZiBidWYyLCB2b2lkKiByZWZjb24pCiB7Ci0gICAgcmV0dXJuIChDRkNv
bXBhcmlzb25SZXN1bHQpQ01UaW1lQ29tcGFyZShnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjEsIHJl
ZmNvbiksIGdldFByZXNlbnRhdGlvblRpbWUoYnVmMiwgcmVmY29uKSk7CisgICAgcmV0dXJuIChD
RkNvbXBhcmlzb25SZXN1bHQpUEFMOjpDTVRpbWVDb21wYXJlKGdldFByZXNlbnRhdGlvblRpbWUo
YnVmMSwgcmVmY29uKSwgZ2V0UHJlc2VudGF0aW9uVGltZShidWYyLCByZWZjb24pKTsKIH0KIAog
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnJlc2V0UW9zVGllcigpCkBAIC02MDIs
NyArNjA0LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnVwZGF0ZVFvc1dp
dGhEZWNvZGVUaW1lU3RhdGlzdGljcyhkb3VibGUgcmF0aW8KICAgICBpZiAoIW1fdGltZWJhc2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIGRvdWJsZSByYXRlID0gQ01UaW1lYmFzZUdldFJhdGUo
bV90aW1lYmFzZS5nZXQoKSk7CisgICAgZG91YmxlIHJhdGUgPSBQQUw6OkNNVGltZWJhc2VHZXRS
YXRlKG1fdGltZWJhc2UuZ2V0KCkpOwogICAgIGlmICghcmF0ZSkKICAgICAgICAgcmF0ZSA9IDE7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCmluZGV4IGUzZjA5MjcwMzQ4ZTdhNWFlZjcyNjZl
YjQ3MmRkYmFlNzNiYzM0MDcuLmYzMTY5YWJjMDI3NzA4MmYwY2ZjZTQ3MjY3OWUxMTA3OTdjOGM5
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdl
VHJhbnNmZXJTZXNzaW9uVlQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBpbmxpbmUgQ0ZTdHJpbmdSZWYgY3ZQaXhlbEZv
cm1hdE9wZW5HTEtleSgpCiB7CkBAIC0xMzgsNyArMTM3LDcgQEAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcihDVlBp
eGVsQnUKIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKENNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSwgc2l6ZSk7CisgICAgcmV0dXJu
IGNvbnZlcnRQaXhlbEJ1ZmZlcihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291
cmNlQnVmZmVyKSwgc2l6ZSk7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVy
UmVmIHNvdXJjZUJ1ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKQEAgLTE0Niw5ICsxNDUsOSBA
QCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNv
bnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIGlmICghc291cmNlQnVmZmVyKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gZGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZl
ckdldEZvcm1hdERlc2NyaXB0aW9uKHNvdXJjZUJ1ZmZlcik7Ci0gICAgYXV0byBzb3VyY2VTaXpl
ID0gRmxvYXRTaXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVu
c2lvbnMoZGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0g
c3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihzb3VyY2VCdWZmZXIpKTsKKyAgICBhdXRvIGRlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNvdXJjZUJ1ZmZlcik7CisgICAgYXV0byBzb3VyY2VT
aXplID0gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0
aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgIGF1dG8gcGl4ZWxC
dWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSk7CiAgICAgaWYgKHNpemUgPT0gZXhwYW5kZWRJ
bnRTaXplKHNvdXJjZVNpemUpICYmIG1fcGl4ZWxGb3JtYXQgPT0gQ1ZQaXhlbEJ1ZmZlckdldFBp
eGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikpCiAgICAgICAgIHJldHVybiByZXRhaW5QdHIoc291
cmNlQnVmZmVyKTsKIApAQCAtMTYwLDcgKzE1OSw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2Ft
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0g
MDsKLSAgICBhdXRvIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5KHNvdXJjZUJ1ZmZlciwgMSwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CisgICAgYXV0byBzdGF0
dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1
ZmZlciwgMSwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CiAgICAgaWYgKHN0YXR1cyAhPSBub0Vycikg
ewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNv
bnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykp
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE2OSw3ICsxNjgsNyBAQCBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBs
ZUJ1ZmZlcihDTVNhbQogICAgIENNU2FtcGxlVGltaW5nSW5mbyogdGltZWluZ0luZm9QdHIgPSBu
dWxscHRyOwogICAgIGlmIChpdGVtQ291bnQpIHsKICAgICAgICAgdGltaW5nSW5mb0FycmF5Lmdy
b3coaXRlbUNvdW50KTsKLSAgICAgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5k
YXRhKCksIG51bGxwdHIpOworICAgICAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZv
QXJyYXkuZGF0YSgpLCBudWxscHRyKTsKICAgICAgICAgaWYgKHN0YXR1cyAhPSBub0Vycikgewog
ICAgICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
b252ZXJ0Q01TYW1wbGVCdWZmZXI6IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5IGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMp
KTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTc4LDE0ICsxNzcsMTQgQEAgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0
Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICB9CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIHN0
YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXRE
ZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBSRUxFQVNF
X0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZl
cjogQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIgcmV0dXJuZWQ6
ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmVzaXplZFNhbXBsZUJ1ZmZlcjsKLSAg
ICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlw
dGlvbiwgdGltZWluZ0luZm9QdHIsICZyZXNpemVkU2FtcGxlQnVmZmVyKTsKKyAgICBzdGF0dXMg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9u
LCB0aW1laW5nSW5mb1B0ciwgJnJlc2l6ZWRTYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShm
b3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBs
ZUJ1ZmZlcjogZmFpbGVkIHRvIGNyZWF0ZSBDTVNhbXBsZUJ1ZmZlciB3aXRoIGVycm9yIGNvZGU6
ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKQEAgLTIzNywxNiArMjM2LDE2IEBAIFJl
dGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRl
Q01TYW1wbGVCdWZmZXIoQ1ZQaXhlCiAgICAgfQogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3Jp
cHRpb24pOworICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJl
ZilpbnB1dEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVz
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y29udmVydFBpeGVsQnVmZmVyOiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb24gd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlcjsKLSAgICBhdXRvIGNtVGltZSA9IHRvQ01UaW1lKHNhbXBsZVRpbWUpOwot
ICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgY21U
aW1lLCBjbVRpbWUgfTsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0
QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZm
ZXIpOworICAgIGF1dG8gY21UaW1lID0gUEFMOjp0b0NNVGltZShzYW1wbGVUaW1lKTsKKyAgICBD
TVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgY21U
aW1lLCBjbVRpbWUgfTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYp
aW5wdXRCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5mbywgJnNhbXBs
ZUJ1ZmZlcik7CiAgICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3Rh
dHVzKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y29udmVydFBpeGVsQnVmZmVyOiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVNhbXBsZUJ1ZmZl
ciB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VBVktpdC5tbQppbmRleCBlMGRhYWM4NWI4NzNhZDZhYTliNGFiMmRiN2EwMDljYzM3
ZDQ3ODk1Li4zMmEwNDQ5NmNmZjdkODQxMTEyMGZjZDEzM2U2ZDY3NDI1NGE4NmIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
QVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lv
bkludGVyZmFjZUFWS2l0Lm1tCkBAIC00Nyw3ICs0Nyw2IEBAIFNPRlRMSU5LX0FWS0lUX0ZSQU1F
V09SSygpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWVmFsdWVUaW1pbmcpCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZUFWS2l0OjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdChQbGF5YmFj
a1Nlc3Npb25Nb2RlbCYgbW9kZWwpCiAgICAgOiBtX3BsYXllckNvbnRyb2xsZXIoYWRvcHROUyhb
W1dlYkFWUGxheWVyQ29udHJvbGxlciBhbGxvY10gaW5pdF0pKQpAQCAtMTQ1LDcgKzE0NCw3IEBA
IHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWthYmxlUmFuZ2VzQ2hhbmdl
ZChjb25zdCBUaW1lUmFuZ2VzJiB0aW1lCiAgICAgICAgIGRvdWJsZSBzdGFydCA9IHRpbWVSYW5n
ZXMuc3RhcnQoaSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAgIGRvdWJsZSBlbmQgPSB0
aW1lUmFuZ2VzLmVuZChpKS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAotICAgICAgICBDTVRpbWVS
YW5nZSByYW5nZSA9IENNVGltZVJhbmdlTWFrZShDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQs
IDEwMDApLCBDTVRpbWVNYWtlV2l0aFNlY29uZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CisgICAgICAg
IENNVGltZVJhbmdlIHJhbmdlID0gUEFMOjpDTVRpbWVSYW5nZU1ha2UoUEFMOjpDTVRpbWVNYWtl
V2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhlbmQt
c3RhcnQsIDEwMDApKTsKICAgICAgICAgW3NlZWthYmxlUmFuZ2VzIGFkZE9iamVjdDpbTlNWYWx1
ZSB2YWx1ZVdpdGhDTVRpbWVSYW5nZTpyYW5nZV1dOwogICAgIH0KICNlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5tbQppbmRleCBlYTQyM2M3MTdjN2FlOTFiZDRlZTk5MDg3ZTA3YzRlNWMzN2U0YzNmLi41
ZGYzNDlmYzZmY2RmY2ZhZWE3NTU2MzIwZjNhZTZlNjY3NjM0ZTliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWMubW0KQEAgLTM3Myw3ICszNzMsNiBAQCAtICh2b2lkKXBpcEFjdGlvblN0b3A6KFBJUFZpZXdD
b250cm9sbGVyICopcGlwCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6VmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlTWFjKFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYyYgcGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlKQogICAgIDogbV9wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UocGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCmlu
ZGV4IDg4NDA5NDI5NzkyNmM4YWViZGVmNmYzZTk1Nzg0MmY4MzQyOGI4OTIuLmQ0MTllMGUxOTI1
NTVkNzM2MDg1ODUxZjU0Y2EwMDQwZDQ2YjY2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKIAogc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJl
YW0sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKQEAgLTg4
LDEyICs4NywxMiBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1w
bGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcgogewogICAgIGlmIChzaG91bGRN
dXRlVmlkZW8oKSkgewogICAgICAgICBpZiAoIW1fYmxhY2tGcmFtZSkgewotICAgICAgICAgICAg
bV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0
aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7
Ci0gICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpKTsKKyAgICAgICAgICAg
IG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERl
c2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1
ZmZlcik7CisgICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0KCkpOwog
ICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihkaW1lbnNp
b25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7CiAKICAgICAgICAgICAgIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAg
ICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERlc2Ny
aXB0aW9uKTsKKyAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNr
RnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgICAgICAgICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJN
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlIDo6dW5hYmxl
IHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lIGRlc2NyaXB0aW9uOiAlZCIsIHN0YXRpY19jYXN0PGlu
dD4oc3RhdHVzKSk7CiAgICAgICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gbnVsbHB0cjsKQEAg
LTEwMyw4ICsxMDIsOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9T
YW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcgogICAgICAgICB9CiAKICAg
ICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gbnVsbHB0cjsKLSAgICAgICAgQ01TYW1w
bGVUaW1pbmdJbmZvIHRpbWluZ0luZm8geyBrQ01UaW1lSW52YWxpZCwgdG9DTVRpbWUoc2FtcGxl
QnVmZmVyLnByZXNlbnRhdGlvblRpbWUoKSksIHRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5kZWNvZGVU
aW1lKCkpIH07Ci0gICAgICAgIGF1dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilt
X2JsYWNrRnJhbWUuZ2V0KCksIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5n
SW5mbywgJnNhbXBsZSk7CisgICAgICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvIHsg
UEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjp0b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0
aW9uVGltZSgpKSwgUEFMOjp0b0NNVGltZShzYW1wbGVCdWZmZXIuZGVjb2RlVGltZSgpKSB9Owor
ICAgICAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNr
RnJhbWUuZ2V0KCksIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5nSW5mbywg
JnNhbXBsZSk7CiAKICAgICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlIC0gdW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1l
OiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IDUxYTNlMThhMmNlZGQzY2Q1ZGE5M2Yz
NGViZjM3MTFlMDIwZjhiNjIuLjVlMTEwZWNkN2RlMzg0NjFiNDI5MDRhMGViNDg4MzQxODQzZTc1
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1t
CkBAIC0zNiwxMyArMzYsMTIgQEAKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogI2ltcG9ydCA8
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlh
U29mdExpbmsuaD4KIAogI2RlZmluZSBMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRTIDAuMQogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6Y3JlYXRlKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQq
IGNhbGxiYWNrT2JqZWN0KQogewogICAgIGF1dG8gY29tcHJlc3NvciA9IHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+KG5ldyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IoKSk7CkBAIC01MiwxNSArNTEsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUKIH0K
IAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IoKQotICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlIHsgV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IiKSB9Ci0gICAgLCBtX2xvd1dhdGVy
VGltZSB7IENNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRTLCAx
MDAwKSB9CisgICAgOiBtX3NlcmlhbERpc3BhdGNoUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IiKSkKKyAgICAsIG1fbG93V2F0ZXJU
aW1lKFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKExPV19XQVRFUl9USU1FX0lOX1NFQ09ORFMs
IDEwMDApKQogewogfQogCiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IoKQogewogICAgIGlmIChtX2NvbnZlcnRlcikgewotICAgICAgICBB
dWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBQQUw6OkF1ZGlvQ29u
dmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CiAgICAgICAgIG1fY29udmVydGVyID0gbnVsbHB0
cjsKICAgICB9CiB9CkBAIC02OCwxOSArNjcsMTkgQEAgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIGJvb2wgQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2Fs
bGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIENNQnVmZmVyUXVldWVSZWYgaW5w
dXRCdWZmZXJRdWV1ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29y
dGVkU2FtcGxlQnVmZmVycygpLCAmaW5wdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQ
QUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwg
JmlucHV0QnVmZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVhdGUgZm9y
IG1faW5wdXRCdWZmZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICAgICBtX2lucHV0QnVmZmVyUXVldWUgPSBhZG9wdENGKGlucHV0
QnVmZmVyUXVldWUpOwogCiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBvdXRwdXRCdWZmZXJRdWV1ZTsK
LSAgICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVy
cygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNN
QnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJR
dWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0ZSBmb3IgbV9vdXRwdXRCdWZm
ZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gYWRvcHRDRihvdXRwdXRCdWZmZXJRdWV1
ZSk7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUu
Z2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1do
ZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVMTCk7CisgICAgUEFMOjpDTUJ1ZmZl
clF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ss
IGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVh
ZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAgbV9pc0VuY29kaW5nID0gdHJ1ZTsK
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg5LDggKzg4LDggQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxs
YmEKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpmaW5pc2goKQogewogICAgIG1f
c2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzXSB7Ci0gICAgICAgIHByb2Nl
c3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoa0NNVGltZUludmFsaWQpOwotICAgICAg
ICBhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJR
dWV1ZS5nZXQoKSk7CisgICAgICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRp
bWUoUEFMOjprQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVm
ZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpOwogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEgZmFpbGVkICVkIiwgZXJy
b3IpOwogICAgICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKICAgICB9KTsKQEAgLTExMiw3ICsx
MTEsNyBAQCBVSW50MzIgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpkZWZhdWx0T3V0cHV0
Qml0UmF0ZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRAogCiBib29sIEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24o
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQXVkaW9Gb3JtYXRJRCBv
dXRwdXRGb3JtYXRJRCkKIHsKLSAgICBjb25zdCBhdXRvICphdWRpb0Zvcm1hdExpc3RJdGVtID0g
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdChmb3JtYXRE
ZXNjcmlwdGlvbik7CisgICAgY29uc3QgYXV0byAqYXVkaW9Gb3JtYXRMaXN0SXRlbSA9IFBBTDo6
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdChmb3JtYXRE
ZXNjcmlwdGlvbik7CiAgICAgbV9zb3VyY2VGb3JtYXQgPSBhdWRpb0Zvcm1hdExpc3RJdGVtLT5t
QVNCRDsKIAogICAgIG1lbXNldCgmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgc2l6ZW9mKEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwpAQCAtMTIxLDM0ICsxMjAsMzQgQEAgYm9vbCBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1h
dERlc2NyaXB0aW9uKEMKICAgICBtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1l
ID0gbV9zb3VyY2VGb3JtYXQubUNoYW5uZWxzUGVyRnJhbWU7CiAKICAgICBVSW50MzIgc2l6ZSA9
IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Rm9ybWF0R2V0UHJvcGVydHkoa0F1ZGlvRm9ybWF0UHJvcGVydHlfRm9ybWF0SW5mbywgMCwgTlVM
TCwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5X0Zvcm1hdElu
Zm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIEF1ZGlvQ29udmVydGVyUmVmIGNvbnZlcnRlcjsK
LSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyTmV3KCZtX3NvdXJjZUZvcm1hdCwg
Jm1fZGVzdGluYXRpb25Gb3JtYXQsICZjb252ZXJ0ZXIpKSB7CisgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkF1ZGlvQ29udmVydGVyTmV3KCZtX3NvdXJjZUZvcm1hdCwgJm1fZGVzdGluYXRpb25G
b3JtYXQsICZjb252ZXJ0ZXIpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1ZGlvQ29udmVydGVyTmV3IGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1f
Y29udmVydGVyID0gY29udmVydGVyOwogCiAgICAgYXV0byBjbGVhbnVwSW5DYXNlT2ZFcnJvciA9
IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29u
dmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIp
OwogICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7CiAgICAgfSk7CiAKICAgICBzaXplX3Qg
Y29va2llU2l6ZSA9IDA7Ci0gICAgY29uc3Qgdm9pZCAqY29va2llID0gQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRpb24sICZjb29raWVTaXplKTsK
KyAgICBjb25zdCB2b2lkICpjb29raWUgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdl
dE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7CiAgICAgaWYgKGNv
b2tpZVNpemUpIHsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFBy
b3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29r
aWUsIChVSW50MzIpY29va2llU2l6ZSwgY29va2llKSkgeworICAgICAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29u
dmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tp
ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lv
bk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX3NvdXJjZUZv
cm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1f
Y29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwg
JnNpemUsICZtX3NvdXJjZUZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVk
aW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVu
dElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9zb3VyY2VGb3JtYXQpKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRp
b24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CkBAIC0xNTksNyArMTU4LDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6Omlu
aXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICB9CiAKICAg
ICBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOwotICAgIGlmIChhdXRvIGVycm9y
ID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVy
Q3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3Jt
YXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlw
dGlvbiwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5n
IGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE2NywxNCAr
MTY2LDE0IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252
ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgaWYgKG1fZGVzdGluYXRpb25G
b3JtYXQubUZvcm1hdElEID09IGtBdWRpb0Zvcm1hdE1QRUc0QUFDKSB7CiAgICAgICAgIGJvb2wg
c2hvdWxkU2V0RGVmYXVsdE91dHB1dEJpdFJhdGUgPSB0cnVlOwogICAgICAgICBpZiAobV9vdXRw
dXRCaXRSYXRlKSB7Ci0gICAgICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZW9m
KCptX291dHB1dEJpdFJhdGUpLCAmbV9vdXRwdXRCaXRSYXRlLnZhbHVlKCkpOworICAgICAgICAg
ICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZW9mKCptX291dHB1dEJpdFJhdGUp
LCAmbV9vdXRwdXRCaXRSYXRlLnZhbHVlKCkpOwogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNl
dHRpbmcga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgICAgIHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gISFlcnJvcjsK
ICAgICAgICAgfQogICAgICAgICBpZiAoc2hvdWxkU2V0RGVmYXVsdE91dHB1dEJpdFJhdGUpIHsK
ICAgICAgICAgICAgIGF1dG8gb3V0cHV0Qml0UmF0ZSA9IGRlZmF1bHRPdXRwdXRCaXRSYXRlKG1f
ZGVzdGluYXRpb25Gb3JtYXQpOwogICAgICAgICAgICAgc2l6ZSA9IHNpemVvZihvdXRwdXRCaXRS
YXRlKTsKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9w
ZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZSwgJm91
dHB1dEJpdFJhdGUpKQorICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29u
dmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJh
dGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGRl
ZmF1bHQga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTE4Myw3ICsxODIsNyBAQCBib29sIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24oQwogICAgICAgICAvLyBJZiB0aGUgZGVzdGluYXRpb24gZm9ybWF0IGlzIFZCUiwgd2Ug
bmVlZCB0byBnZXQgbWF4IHNpemUgcGVyIHBhY2tldCBmcm9tIHRoZSBjb252ZXJ0ZXIuCiAgICAg
ICAgIHNpemUgPSBzaXplb2YobV9tYXhPdXRwdXRQYWNrZXRTaXplKTsKIAotICAgICAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRp
b0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhP
dXRwdXRQYWNrZXRTaXplKSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9D
b252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlN
YXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwgJnNpemUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91
dHB1dFBhY2tldFNpemUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTIxMSw2ICsyMTAsOCBAQCBzaXplX3QgQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjpjb21wdXRlQnVmZmVyU2l6ZUZvckF1ZGlvRm9ybWF0KEF1ZGlv
U3RyZWFtQgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YXR0YWNoUHJpbWlu
Z1RyaW1zSWZOZWVkZWQoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogeworICAgIHVzaW5nIG5h
bWVzcGFjZSBQQUw7CisKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQobV9yZW1haW5pbmdQcmlt
ZUR1cmF0aW9uKSkgewogICAgICAgICBBdWRpb0NvbnZlcnRlclByaW1lSW5mbyBwcmltZUluZm8g
eyAwLCAwIH07CiAgICAgICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKHByaW1lSW5mbyk7CkBAIC0y
MzYsMjUgKzIzNywyNSBAQCBSZXRhaW5QdHI8TlNOdW1iZXI+IEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQoKQogewogICAgIFVJbnQzMiBkZWxh
eVNpemUgPSBzaXplb2YodWludDMyX3QpOwogICAgIHVpbnQzMl90IG9yaWdpbmFsRGVsYXlNb2Rl
ID0gMDsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9j
b252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsICZkZWxheVNpemUsICZvcmln
aW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0
ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwg
JmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtB
dWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgdWludDMyX3Qgb3B0aW1hbERlbGF5TW9kZSA9
IGtBdWRpb0NvZGVjRGVsYXlNb2RlX09wdGltYWw7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRp
b0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVs
YXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlNb2RlKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgVUludDMy
IHByaW1lU2l6ZSA9IHNpemVvZihBdWRpb0NvZGVjUHJpbWVJbmZvKTsKICAgICBBdWRpb0NvZGVj
UHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlQcmlt
ZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQ
QUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJv
cGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdl
dHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbyBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1
ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlE
ZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRv
IGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkp
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KQEAgLTI2Nywx
OCArMjY4LDE4IEBAIENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tldHMoVUludDMyCiAgICAgaWYgKCFtX2Rlc3RpbmF0
aW9uRm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAgVUludDMyIGNvb2tpZVNpemUgPSAwOwog
Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbyhtX2Nv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNp
emUsIE5VTEwpOworICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFBy
b3BlcnR5SW5mbyhtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nv
b2tpZSwgJmNvb2tpZVNpemUsIE5VTEwpOwogICAgICAgICBpZiAoKGVycm9yID09IG5vRXJyKSAm
JiAhIWNvb2tpZVNpemUpIHsKICAgICAgICAgICAgIGNvb2tpZS5yZXNpemUoY29va2llU2l6ZSk7
CiAKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0
eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNv
b2tpZVNpemUsIGNvb2tpZS5kYXRhKCkpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9
IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVy
dGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCkpKSB7
CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1h
Z2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb247Ci0gICAgICAgIGlmIChhdXRv
IGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBOVUxMLCBjb29raWVTaXplLCBjb29raWUuZGF0
YSgpLCBOVUxMLCAmZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikpIHsKKyAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29va2llU2l6ZSwg
Y29va2llLmRhdGEoKSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pKSB7CiAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICB9CkBAIC0yOTAs
MjYgKzI5MSwyNiBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIHNpemVfdCBkYXRhU2l6
ZSA9IGZpbGxCdWZmZXJMaXN0Lm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemU7CiAKICAgICBDTUJs
b2NrQnVmZmVyUmVmIGJsb2NrQnVmZmVyOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1
ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBkYXRh
U2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgMCwgZGF0YVNpemUsIGtDTUJsb2NrQnVm
ZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKSkgeworICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIE5VTEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBk
YXRhU2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIp
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogICAgIGF1dG8g
YnVmZmVyID0gYWRvcHRDRihibG9ja0J1ZmZlcik7CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IENN
QmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzKGRhdGEsIGJ1ZmZlci5nZXQoKSwgMCwgZGF0YVNp
emUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0
YUJ5dGVzKGRhdGEsIGJ1ZmZlci5nZXQoKSwgMCwgZGF0YVNpemUpKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENN
QmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1
ZmZlcjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCB0cnVlLCBO
VUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksIG51bVBhY2tl
dHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCwgbV9kZXN0aW5hdGlvblBh
Y2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIpOworICAgIGF1dG8gZXJyb3Ig
PSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgdHJ1ZSwgTlVMTCwgTlVMTCwgbV9kZXN0
aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCBudW1QYWNrZXRzLCBtX2N1cnJlbnROYXRp
dmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMu
ZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgaWYgKFttX2dk
ckNvdW50TnVtIGludFZhbHVlXSkKLSAgICAgICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZl
ciwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9HcmFkdWFsRGVjb2RlclJlZnJlc2gsIChf
X2JyaWRnZSBDRlR5cGVSZWYpbV9nZHJDb3VudE51bS5nZXQoKSwga0NNQXR0YWNobWVudE1vZGVf
U2hvdWxkUHJvcGFnYXRlKTsKKyAgICAgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVm
ZmVyLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29kZXJSZWZy
ZXNoLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCksIGtDTUF0dGFjaG1l
bnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CiAKICAgICByZXR1cm4gc2FtcGxlQnVmZmVyOwogfQpA
QCAtMzQxLDI0ICszNDIsMjQgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAgICAgICAgICAg
ICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJR
dWV1ZS5nZXQoKSkpCisgICAgICAgICAgICAgICAgaWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1w
dHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAKLSAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxl
QnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFp
bihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwotICAgICAgICAgICAgICAgIG1fc2FtcGxl
QmxvY2tCdWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdl
dCgpKTsKKyAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2Ft
cGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVl
QW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgICAgICAgICAgICAg
bV9zYW1wbGVCbG9ja0J1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNh
bXBsZUJ1ZmZlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFtX3NhbXBsZUJsb2NrQnVm
ZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZl
ciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUg
PSAwOwogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVm
ZmVyID0gMDsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gQ01CbG9ja0J1ZmZl
ckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICAg
ICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhTGVu
Z3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIG1fY3VycmVu
dE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgIHNpemVfdCBu
dW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmID0gc3RkOjptaW4obnVtQnl0ZXNUb0NvcHksICht
X3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSAtIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZm
ZXIpKTsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5
RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2Ft
cGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChtX3NvdXJjZUJ1
ZmZlci5kYXRhKCkgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAg
ICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyht
X3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVm
ZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAobV9zb3VyY2VCdWZmZXIuZGF0YSgp
ICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKICAgICAgICAgICAgICAgICB9CkBAIC0z
OTMsMjggKzM5NCwyOCBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnBy
b3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyhVSW50MzIqCiAgICAgICAgICAgICAgICAg
bV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKKyAg
ICAgICAgICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1
ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIGF1dG8gc2Ft
cGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+
KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkp
KSk7Ci0gICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gYWRvcHRDRigoQ01CbG9ja0J1
ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ0ZSZXRhaW4oQ01TYW1wbGVCdWZmZXJHZXREYXRh
QnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSkpKSkpOworICAgICAgICAgICAgYXV0byBzYW1wbGVC
dWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFM
OjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkp
KSkpOworICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0Q0YoKENNQmxvY2tC
dWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXREYXRhQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSkpKSkpOwogICAgICAgICAgICAgaWYgKCFt
X3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01TYW1wbGVCdWZmZXJH
ZXREYXRhQnVmZmVyIGZhaWxlZCIpOwogICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZm
ZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2Nr
QnVmZmVyID0gMDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSkgLyAyOworICAgICAgICAgICAgbV9zYW1w
bGVCbG9ja0J1ZmZlclNpemUgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fc2Ft
cGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKICAgICAgICAgICAgIG1fY3VycmVudE9mZnNldElu
U2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fc2FtcGxl
QmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgIHNpemVfdCBudW1CeXRlc1RvQ29weUZyb21TYW1w
bGVCYnVmID0gc3RkOjptaW4obnVtQnl0ZXNUb0NvcHksIChtX3NhbXBsZUJsb2NrQnVmZmVyU2l6
ZSAtIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIpKTsKLSAgICAgICAgICAgIGlm
IChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1
ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNU
b0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKGZpcnN0Q2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJblNvdXJj
ZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1
ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zm
c2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKGZp
cnN0Q2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgZmlyc3QgY2hhbm5lbCBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0
YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxl
QmxvY2tCdWZmZXIgKyBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSwgbnVtQnl0ZXNUb0NvcHlGcm9t
U2FtcGxlQmJ1ZiwgKHNlY29uZENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIp
KSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJDb3B5
RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2Ft
cGxlQmxvY2tCdWZmZXIgKyBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSwgbnVtQnl0ZXNUb0NvcHlG
cm9tU2FtcGxlQmJ1ZiwgKHNlY29uZENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZm
ZXIpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIHNl
Y29uZCBjaGFubmVsIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBlcnJvcjsKICAgICAgICAgICAgIH0KQEAgLTQzOCw2ICs0MzksOCBAQCBPU1N0YXR1cyBB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFj
a2V0cyhVSW50MzIqCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNz
U2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENNVGltZSBsb3dXYXRlclRpbWUpCiB7Cisg
ICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRV9DT01QQVJFX0lOTElORQorCiAg
ICAgaWYgKCFtX2NvbnZlcnRlcikgewogICAgICAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHko
bV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTUwMSw3
ICs1MDQsNyBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBs
ZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbAogCiB2b2lkIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZm
ZXIpCiB7Ci0gICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVFbnF1ZXVlKG1faW5wdXRCdWZm
ZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1
ZXVlRW5xdWV1ZShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CiAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQnVmZmVyUXVldWVFbnF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAg
ICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShtX2xvd1dhdGVyVGltZSk7
CkBAIC01MjAsMTIgKzUyMywxMiBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
YWRkU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIAogQ01TYW1wbGVCdWZm
ZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIo
KQogewotICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENN
QnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CisgICAgcmV0
dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOwogfQogCiBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1
dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVm
KShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1
dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKKyAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZm
ZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRh
aW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CiB9CiAKIHVuc2lnbmVkIEF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6Yml0UmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCmluZGV4IGY1Zjg1NTg3MWZjNzA4
NTY2ZjdlZjhiOWExNjFlMjdiOGU1ZDg5ZWQuLmI3NTU4ZDI4MGMyZWY3OTYwNjhjYWMwY2M5NmI1
MDMzZGMzNzA5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oCkBAIC0xMjcsOCArMTI3LDggQEAgcHJpdmF0ZToKICAgICBSZXRhaW5Q
dHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IG1fdmlkZW9Db21w
cmVzc29yOwogICAgIFJldGFpblB0cjxBVkFzc2V0V3JpdGVySW5wdXQ+IG1fdmlkZW9Bc3NldFdy
aXRlcklucHV0OwotICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUgeyBrQ01U
aW1lSW52YWxpZCB9OwotICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSB7IGtDTVRp
bWVJbnZhbGlkIH07CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZTsKKyAg
ICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWU7CiAgICAgYm9vbCBtX2hhc0VuY29kZWRW
aWRlb1NhbXBsZXMgeyBmYWxzZSB9OwogCiAgICAgUmV0YWluUHRyPFdlYkFWQXNzZXRXcml0ZXJE
ZWxlZ2F0ZT4gbV93cml0ZXJEZWxlZ2F0ZTsKQEAgLTEzOSw5ICsxMzksOSBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9zaG91bGRTdG9wQWZ0ZXJGbHVzaGluZ1NhbXBsZXMgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9maXJzdFZpZGVvRnJhbWUgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8Q0dB
ZmZpbmVUcmFuc2Zvcm0+IG1fdmlkZW9UcmFuc2Zvcm07Ci0gICAgQ01UaW1lIG1fcmVzdW1lZFZp
ZGVvVGltZSB7IGtDTVRpbWVaZXJvIH07Ci0gICAgQ01UaW1lIG1fY3VycmVudFZpZGVvRHVyYXRp
b24geyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUg
eyBrQ01UaW1lWmVybyB9OworICAgIENNVGltZSBtX3Jlc3VtZWRWaWRlb1RpbWU7CisgICAgQ01U
aW1lIG1fY3VycmVudFZpZGVvRHVyYXRpb247CisgICAgQ01UaW1lIG1fY3VycmVudEF1ZGlvU2Ft
cGxlVGltZTsKICAgICBkb3VibGUgbV90aW1lQ29kZSB7IDAgfTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCA2M2Jk
NjU5OGQwMmE1YzcwMDZkYTkyOWZjOTRmMWY1ZjY2YTcxNmRhLi42YWQyMGJlOGNiNTc5MjNhMGU3
ODQyZTM3MDFkMzNhNmFhMDNhYjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05Myw4ICs5Myw2IEBAIEBlbmQKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBSZWZQdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUo
Ym9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgY29uc3QgTWVkaWFSZWNvcmRlclByaXZhdGVP
cHRpb25zJiBvcHRpb25zKQogewogICAgIGF1dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcihoYXNBdWRpbywgaGFzVmlkZW8pKTsKQEAgLTEyMiw2ICsx
MjAsMTEgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJlc3NlZEF1ZGlv
T3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9pZCAqbWVkaWEKIE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihib29sIGhhc0F1ZGlvLCBib29sIGhhc1Zp
ZGVvKQogICAgIDogbV9oYXNBdWRpbyhoYXNBdWRpbykKICAgICAsIG1faGFzVmlkZW8oaGFzVmlk
ZW8pCisgICAgLCBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUoUEFMOjprQ01UaW1lSW52YWxp
ZCkKKyAgICAsIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lKFBBTDo6a0NNVGltZUludmFsaWQpCisg
ICAgLCBtX3Jlc3VtZWRWaWRlb1RpbWUoUEFMOjprQ01UaW1lWmVybykKKyAgICAsIG1fY3VycmVu
dFZpZGVvRHVyYXRpb24oUEFMOjprQ01UaW1lWmVybykKKyAgICAsIG1fY3VycmVudEF1ZGlvU2Ft
cGxlVGltZShQQUw6OmtDTVRpbWVaZXJvKQogewogfQogCkBAIC0xNzksNyArMTgyLDcgQEAgdm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRWaWRlb1Nh
bXBsZUJ1ZmZlcnMoKQogewogICAgIEFTU0VSVChtX2hhc1ZpZGVvKTsKICAgICBpZiAoIW1fdmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbikgewotICAgICAgICBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24g
PSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1fdmlkZW9Db21wcmVzc29yLT5n
ZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CisgICAgICAgIG1fdmlkZW9Gb3JtYXREZXNjcmlwdGlv
biA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVvQ29tcHJl
c3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOwogCiAgICAgICAgIGlmIChtX2hhc0F1ZGlv
ICYmICFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pCiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
OTYsNyArMTk5LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05l
d0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMoKQogewogICAgIEFTU0VSVChtX2hhc0F1ZGlv
KTsKICAgICBpZiAoIW1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbikgewotICAgICAgICBtX2F1ZGlv
Rm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1f
YXVkaW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CisgICAgICAgIG1fYXVk
aW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihtX2F1ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOwogICAgICAg
ICBpZiAobV9oYXNWaWRlbyAmJiAhbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yMzgsNyArMjQxLDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcjo6c3RhcnRBc3NldFdyaXRlcigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBbbV93cml0ZXIuZ2V0KCkgc3RhcnRTZXNzaW9uQXRTb3VyY2VUaW1lOmtDTVRpbWVaZXJvXTsK
KyAgICBbbV93cml0ZXIuZ2V0KCkgc3RhcnRTZXNzaW9uQXRTb3VyY2VUaW1lOlBBTDo6a0NNVGlt
ZVplcm9dOwogCiAgICAgYXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKTsKIApAQCAtMzAw
LDggKzMwMyw4IEBAIGJvb2wgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXBy
ZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcklmUG9zc2libGUoKQogdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVm
ZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBBU1NFUlQoW21fdmlkZW9Bc3NldFdyaXRlcklucHV0IGlz
UmVhZHlGb3JNb3JlTWVkaWFEYXRhXSk7Ci0gICAgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1l
ID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKLSAgICBt
X2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1w
KGJ1ZmZlcik7CisgICAgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIpOworICAgIG1fbGFzdFZpZGVv
RGVjb2RpbmdUaW1lID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChidWZm
ZXIpOwogICAgIG1faGFzRW5jb2RlZFZpZGVvU2FtcGxlcyA9IHRydWU7CiAKICAgICBbbV92aWRl
b0Fzc2V0V3JpdGVySW5wdXQuZ2V0KCkgYXBwZW5kU2FtcGxlQnVmZmVyOmJ1ZmZlcl07CkBAIC0z
MTQsMTcgKzMxNywxNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRD
b21wcmVzc2VkU2FtcGxlQnVmZmVycygpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRFbmRz
UHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcihBVkFzc2V0V3JpdGVySW5wdXQgKmFzc2V0V3Jp
dGVySW5wdXQsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSBkZWNvZGluZ1Rp
bWVTdGFtcCkKIHsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsga0NNVGlt
ZUludmFsaWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZGVjb2RpbmdUaW1lU3RhbXB9OworICAg
IENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBw
cmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0YW1wfTsKIAogICAgIENNU2FtcGxl
QnVmZmVyUmVmIGJ1ZmZlciA9IE5VTEw7Ci0gICAgYXV0byBlcnJvciA9IENNU2FtcGxlQnVmZmVy
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIHRydWUsIE5VTEwsIE5VTEwsIE5VTEws
IDAsIDEsICZ0aW1pbmdJbmZvLCAwLCBOVUxMLCAmYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVl
LCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAxLCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7
CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgYXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVy
YXRpb25NYXJrZXIgZmFpbGVkIENNU2FtcGxlQnVmZmVyQ3JlYXRlIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENG
KGJ1ZmZlcik7CiAKLSAgICBDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBrQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uLCBrQ0ZC
b29sZWFuVHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKKyAgICBQQUw6
OkNNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIuZ2V0KCksIFBBTDo6a0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbiwga0NGQm9vbGVhblRydWUs
IGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CiAgICAgaWYgKCFbYXNzZXRXcml0
ZXJJbnB1dCBhcHBlbmRTYW1wbGVCdWZmZXI6c2FtcGxlQnVmZmVyLmdldCgpXSkKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ciBhcHBlbmRTYW1wbGVCdWZmZXIgdG8gd3JpdGVyIGlucHV0IGZhaWxlZCIpOwogfQpAQCAtMzgy
LDE4ICszODUsMTggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Zmx1c2hDb21w
cmVzc2VkU2FtcGxlQnVmZmVycyhGdW5jdGlvbjx2b2lkKCk+JiYKIHN0YXRpYyBpbmxpbmUgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1l
U3RhbXAoQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxCdWZmZXIsIENNVGltZSBzdGFydFRpbWUp
CiB7CiAgICAgQ01JdGVtQ291bnQgY291bnQgPSAwOwotICAgIENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCAwLCBuaWwsICZjb3VudCk7CisgICAg
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZl
ciwgMCwgbmlsLCAmY291bnQpOwogCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGlt
ZUluZm8oY291bnQpOwotICAgIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5
KG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOworICAgIFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIs
IGNvdW50LCB0aW1lSW5mby5kYXRhKCksICZjb3VudCk7CiAKICAgICBmb3IgKGF1dG8gaSA9IDA7
IGkgPCBjb3VudDsgaSsrKSB7Ci0gICAgICAgIHRpbWVJbmZvW2ldLmRlY29kZVRpbWVTdGFtcCA9
IGtDTVRpbWVJbnZhbGlkOworICAgICAgICB0aW1lSW5mb1tpXS5kZWNvZGVUaW1lU3RhbXAgPSBQ
QUw6OmtDTVRpbWVJbnZhbGlkOwogICAgICAgICB0aW1lSW5mb1tpXS5wcmVzZW50YXRpb25UaW1l
U3RhbXAgPSBzdGFydFRpbWU7CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3QnVm
ZmVyID0gbnVsbHB0cjsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRl
Q29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgb3JpZ2luYWxCdWZmZXIsIGNv
dW50LCB0aW1lSW5mby5kYXRhKCksICZuZXdCdWZmZXIpKSB7CisgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgb3JpZ2luYWxCdWZmZXIsIGNvdW50LCB0aW1lSW5mby5kYXRhKCksICZuZXdCdWZm
ZXIpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXIgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpA
QCAtNDA0LDcgKzQwNyw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVu
ZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7CiAgICAgaWYgKCFtX2Zp
cnN0VmlkZW9GcmFtZSkgewogICAgICAgICBtX2ZpcnN0VmlkZW9GcmFtZSA9IHRydWU7Ci0gICAg
ICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGlt
ZUNsb2NrKCkpOworICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRU
aW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CiAgICAgICAgIGlmIChzYW1wbGUu
dmlkZW9Sb3RhdGlvbigpICE9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIHx8IHNh
bXBsZS52aWRlb01pcnJvcmVkKCkpIHsKICAgICAgICAgICAgIG1fdmlkZW9UcmFuc2Zvcm0gPSBD
R0FmZmluZVRyYW5zZm9ybU1ha2VSb3RhdGlvbihzdGF0aWNfY2FzdDxpbnQ+KHNhbXBsZS52aWRl
b1JvdGF0aW9uKCkpICogTV9QSSAvIDE4MCk7CiAgICAgICAgICAgICBpZiAoc2FtcGxlLnZpZGVv
TWlycm9yZWQoKSkKQEAgLTQxMiw4ICs0MTUsOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAg
ICAgICB9CiAgICAgfQogCi0gICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3QoQ01D
bG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGlt
ZSk7Ci0gICAgc2FtcGxlVGltZSA9IENNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRl
b0R1cmF0aW9uKTsKKyAgICBhdXRvIHNhbXBsZVRpbWUgPSBQQUw6OkNNVGltZVN1YnRyYWN0KFBB
TDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1
bWVkVmlkZW9UaW1lKTsKKyAgICBzYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVBZGQoc2FtcGxlVGlt
ZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CiAgICAgaWYgKGF1dG8gYnVmZmVyV2l0aEN1cnJl
bnRUaW1lID0gY29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKHNhbXBsZS5wbGF0
Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwgc2FtcGxlVGltZSkpCiAgICAgICAg
IG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRUaW1l
LmdldCgpKTsKIH0KQEAgLTQyMiw3ICs0MjUsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjphcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YQog
ewogICAgIGlmIChhdXRvIHNhbXBsZUJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRh
dGEsIGRlc2NyaXB0aW9uLCBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIHNhbXBsZUNvdW50KSkK
ICAgICAgICAgbV9hdWRpb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihzYW1wbGVCdWZmZXIu
Z2V0KCkpOwotICAgIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSA9IENNVGltZUFkZChtX2N1cnJl
bnRBdWRpb1NhbXBsZVRpbWUsIHRvQ01UaW1lKE1lZGlhVGltZShzYW1wbGVDb3VudCwgZGVzY3Jp
cHRpb24uc2FtcGxlUmF0ZSgpKSkpOworICAgIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSA9IFBB
TDo6Q01UaW1lQWRkKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgUEFMOjp0b0NNVGltZShNZWRp
YVRpbWUoc2FtcGxlQ291bnQsIGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSkpKTsKIH0KIAogdm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6ZmluaXNoZWRGbHVzaGluZ1NhbXBsZXMoKQpA
QCAtNTIzLDEwICs1MjYsMTAgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y29t
cGxldGVGZXRjaERhdGEoKQogewogICAgIGF1dG8gY3VycmVudFRpbWVDb2RlID0gbV90aW1lQ29k
ZTsKICAgICBpZiAobV9oYXNBdWRpbykKLSAgICAgICAgbV90aW1lQ29kZSA9IENNVGltZUdldFNl
Y29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKTsKKyAgICAgICAgbV90aW1lQ29kZSA9IFBB
TDo6Q01UaW1lR2V0U2Vjb25kcyhtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUpOwogICAgIGVsc2Ug
ewotICAgICAgICBhdXRvIHNhbXBsZVRpbWUgPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGlt
ZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICAg
ICAgbV90aW1lQ29kZSA9IENNVGltZUdldFNlY29uZHMoQ01UaW1lQWRkKHNhbXBsZVRpbWUsIG1f
Y3VycmVudFZpZGVvRHVyYXRpb24pKTsKKyAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gUEFMOjpD
TVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1l
Q2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgICAgIG1fdGltZUNvZGUgPSBQQUw6
OkNNVGltZUdldFNlY29uZHMoUEFMOjpDTVRpbWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50Vmlk
ZW9EdXJhdGlvbikpOwogICAgIH0KICAgICBtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVyKHRh
a2VEYXRhKCksIGN1cnJlbnRUaW1lQ29kZSk7CiB9CkBAIC01NTAsMTMgKzU1MywxMyBAQCBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6dGFrZURhdGEoKQog
CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwYXVzZSgpCiB7Ci0gICAgYXV0byBy
ZWNvcmRpbmdEdXJhdGlvbiA9IENNVGltZVN1YnRyYWN0KENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tH
ZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOwotICAgIG1fY3VycmVudFZp
ZGVvRHVyYXRpb24gPSBDTVRpbWVBZGQocmVjb3JkaW5nRHVyYXRpb24sIG1fY3VycmVudFZpZGVv
RHVyYXRpb24pOworICAgIGF1dG8gcmVjb3JkaW5nRHVyYXRpb24gPSBQQUw6OkNNVGltZVN1YnRy
YWN0KFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwg
bV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uID0gUEFMOjpD
TVRpbWVBZGQocmVjb3JkaW5nRHVyYXRpb24sIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOwogfQog
CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpyZXN1bWUoKQogewotICAgIG1fcmVz
dW1lZFZpZGVvVGltZSA9IENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkp
OworICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNs
b2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKIH0KIAogY29uc3QgU3RyaW5nJiBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6bWltZVR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA3NmQ1NmQ3YjhkMTNjNzJlYTM5ZmMzNDk5
ZDE3OTg5OTcxN2YwZTc4Li5kMDc2MGYwN2UzNzA4MTI3ZjlkZTJlZmFmOTJmMGUwNzcyZmQzOGU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpA
QCAtMzQsMTIgKzM0LDExIEBACiAjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVlRDb21wcmVzc2lvblNl
c3Npb24uaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCisjaW1wb3J0IDxwYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGlu
ay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0
ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IFZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Y3JlYXRlKFN0cmluZyBtaW1lVHlwZSwgQ01CdWZmZXJRdWV1ZVRyaWdn
ZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgYXV0byBw
cm9maWxlID0gUHJvZmlsZTo6QmFzZWxpbmU7CkBAIC02OSw3ICs2OCw3IEBAIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKENNVmlkZW9Db2Rl
Y1R5cGUgb3V0cHV0CiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IoKQogewogICAgIGlmIChtX3Z0U2Vzc2lvbikgewotICAgICAgICBWVENv
bXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24uZ2V0KCkpOworICAgICAgICBQ
QUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShtX3Z0U2Vzc2lvbi5nZXQoKSk7CiAg
ICAgICAgIG1fdnRTZXNzaW9uID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC03NywxMiArNzYsMTIg
QEAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yKCkKIGJvb2wgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVm
ZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQog
ewogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVm
ZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1
ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNr
c0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIHVuYWJsZSB0byBjcmVhdGUgYnVmZmVyIHF1ZXVlICVkIiwgZXJyb3IpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1fb3V0cHV0QnVmZmVyUXVldWUgPSBvdXRwdXRC
dWZmZXJRdWV1ZTsKLSAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRy
aWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVaZXJvLCBOVUxMKTsKKyAgICBQQUw6
OkNNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBj
YWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0YUJl
Y29tZXNSZWFkeSwgUEFMOjprQ01UaW1lWmVybywgTlVMTCk7CiAKICAgICBtX2lzRW5jb2Rpbmcg
PSB0cnVlOwogICAgIHJldHVybiB0cnVlOwpAQCAtOTYsMTAgKzk1LDEwIEBAIHZvaWQgVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpzZXRCaXRzUGVyU2Vjb25kKHVuc2lnbmVkIGJpdFJhdGUp
CiB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKCkKIHsKICAgICBtX3Nl
cmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10gewotICAgICAgICBhdXRvIGVy
cm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQo
KSwga0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNz
aW9uU2Vzc2lvbkNvbXBsZXRlRnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtDTVRpbWVJ
bnZhbGlkKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFt
LCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxl
dGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKLSAgICAgICAgZXJyb3IgPSBDTUJ1
ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKKyAgICAg
ICAgZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVy
UXVldWUuZ2V0KCkpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFT
dHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZU1hcmtFbmRP
ZkRhdGEgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAgICAgICAgbV9pc0VuY29kaW5nID0g
ZmFsc2U7CkBAIC0xMTQsNyArMTEzLDcgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OnZpZGVvQ29tcHJlc3Npb25DYWxsYmFjayh2b2lkICpyZWZDb24sIHZvaWQqLAogCiAgICAg
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yICpjb21wcmVzc29yID0gc3RhdGljX2Nhc3Q8Vmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKj4ocmVmQ29uKTsKIAotICAgIGF1dG8gZXJyb3IgPSBD
TUJ1ZmZlclF1ZXVlRW5xdWV1ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
LCBidWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVFbnF1ZXVlKGNv
bXByZXNzb3ItPm1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CiAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQnVmZmVyUXVldWVFbnF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogfQog
CkBAIC0xMzAsNTMgKzEyOSw1MyBAQCBDRlN0cmluZ1JlZiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OnZ0UHJvZmlsZUxldmVsKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fcHJvZmlsZSkg
ewogICAgIGNhc2UgUHJvZmlsZTo6QmFzZWxpbmU6Ci0gICAgICAgIHJldHVybiBrVlRQcm9maWxl
TGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBQQUw6OmtWVFBy
b2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbDsKICAgICBjYXNlIFByb2ZpbGU6Okhp
Z2g6Ci0gICAgICAgIHJldHVybiBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbDsK
KyAgICAgICAgcmV0dXJuIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWw7
CiAgICAgY2FzZSBQcm9maWxlOjpNYWluOgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVs
X0gyNjRfTWFpbl9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZl
bF9IMjY0X01haW5fQXV0b0xldmVsOwogICAgIH0KIH0KIAogYm9vbCBWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uKQogewotICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVu
c2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdERlc2Ny
aXB0aW9uKTsKKyAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uKTsKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVyU3BlY2lmaWNhdGlvbnMgPSBu
aWw7CiAjZWxzZQotICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gQHso
X19icmlkZ2UgTlNTdHJpbmcgKilrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhh
cmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXI6QFlFU307CisgICAgTlNEaWN0aW9uYXJ5ICpl
bmNvZGVyU3BlY2lmaWNhdGlvbnMgPSBAeyhfX2JyaWRnZSBOU1N0cmluZyAqKVBBTDo6a1ZUVmlk
ZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNv
ZGVyOkBZRVN9OwogI2VuZGlmCiAKICAgICBWVENvbXByZXNzaW9uU2Vzc2lvblJlZiB2dFNlc3Np
b247Ci0gICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0LCBtX291dHB1
dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZillbmNvZGVyU3BlY2lmaWNhdGlv
bnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFjaywgdGhpcywgJnZ0U2Vzc2lv
bik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQsIG1f
b3V0cHV0Q29kZWNUeXBlLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKWVuY29kZXJTcGVjaWZp
Y2F0aW9ucywgTlVMTCwgTlVMTCwgdmlkZW9Db21wcmVzc2lvbkNhbGxiYWNrLCB0aGlzLCAmdnRT
ZXNzaW9uKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Np
b25DcmVhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBOTzsKICAg
ICB9CiAgICAgbV92dFNlc3Npb24gPSBhZG9wdENGKHZ0U2Vzc2lvbik7CiAKLSAgICBlcnJvciA9
IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblBy
b3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgZXJyb3IgPSBWVFNlc3Np
b25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vz
c2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7Ci0gICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9w
ZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlG
cmFtZUludGVydmFsRHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uKTsKKyAg
ICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0
aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbik7CiAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZU
U2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJ
bnRlcnZhbER1cmF0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0
Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUsIG1fZXhwZWN0ZWRGcmFtZVJhdGUpOwor
ICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0
KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSwgbV9l
eHBlY3RlZEZyYW1lUmF0ZSk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlh
U3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAKLSAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNz
aW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgdnRQcm9m
aWxlTGV2ZWwoKSk7CisgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lv
bi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgdnRQ
cm9maWxlTGV2ZWwoKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNl
dFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsIGZhaWxlZCB3
aXRoICVkIGZvciBwcm9maWxlICVkIiwgZXJyb3IsIG1fcHJvZmlsZSk7CiAgICAgICAgIGlmICht
X3Byb2ZpbGUgIT0gUHJvZmlsZTo6QmFzZWxpbmUpIHsKLSAgICAgICAgICAgIGVycm9yID0gVlRT
ZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVy
dHlLZXlfUHJvZmlsZUxldmVsLCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2
ZWwpOworICAgICAgICAgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lv
bi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgUEFM
OjprVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwpOwogICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfUHJvZmlsZUxldmVsIGZhaWxlZCB3aXRoICVkIGZvciBkZWZhdWx0IHByb2ZpbGUiLCBlcnJv
cik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobV9vdXRwdXRCaXRSYXRlKSB7Ci0gICAg
ICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0
KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsICptX291dHB1dEJp
dFJhdGUpOworICAgICAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1f
dnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJp
dFJhdGUsICptX291dHB1dEJpdFJhdGUpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihl
cnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9u
U2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICB9CiAKLSAgICBlcnJvciA9IFZUQ29tcHJlc3Npb25T
ZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpKTsKKyAgICBlcnJv
ciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMobV92dFNl
c3Npb24uZ2V0KCkpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVh
bSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBh
cmVUb0VuY29kZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAogICAgIHJldHVybiBZ
RVM7CkBAIC0xODUsMTQgKzE4NCwxNCBAQCBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVZpZGVvRm9ybWF0RGVzY3JpcHRpbwogdm9pZCBW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVC
dWZmZXJSZWYgYnVmZmVyKQogewogICAgIGlmICghbV92dFNlc3Npb24pIHsKLSAgICAgICAgaWYg
KCFpbml0Q29tcHJlc3Npb25TZXNzaW9uKENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRp
b24oYnVmZmVyKSkpCisgICAgICAgIGlmICghaW5pdENvbXByZXNzaW9uU2Vzc2lvbihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oYnVmZmVyKSkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBpbWFnZUJ1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoYnVmZmVyKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblRpbWVTdGFtcCA9IENN
U2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7Ci0gICAgYXV0byBk
dXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oYnVmZmVyKTsKLSAgICBhdXRvIGVy
cm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZShtX3Z0U2Vzc2lvbi5nZXQoKSwg
aW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24sIE5VTEwsIHRoaXMs
IE5VTEwpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1h
Z2VCdWZmZXIoYnVmZmVyKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvblRpbWVTdGFtcCA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBhdXRv
IGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7CisgICAg
YXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZShtX3Z0U2Vz
c2lvbi5nZXQoKSwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24s
IE5VTEwsIHRoaXMsIE5VTEwpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRp
YVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lv
bkVuY29kZUZyYW1lIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogfQogCkBAIC0yMDgsMTIgKzIw
NywxMiBAQCB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YWRkU2FtcGxlQnVmZmVy
KENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIAogQ01TYW1wbGVCdWZmZXJSZWYgVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIoKQogewotICAgIHJldHVy
biAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVHZXRI
ZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CisgICAgcmV0dXJuIChDTVNhbXBsZUJ1
ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291
dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOwogfQogCiBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcigp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZv
aWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdl
dCgpKSkpKTsKKyAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSkpKSk7CiB9CiAKIHVuc2lnbmVkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6Yml0UmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKaW5kZXggYzNmZTgyMWI5
YzUyMGM5MjI0ZTVkZTg4OGU1MThjMzE5NmYzMWNiNS4uYTAyNDA4NGMyNGU2ZDM2Mzk2MDhhNjQ2
NTJlY2M1ZDZkOWVmYWM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcApAQCAtNDIsNiArNDIsNyBA
QAogI2luY2x1ZGUgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjZW5kaWYKIAor
I2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHBhbC9j
Zi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjMsOSAr
MTI0LDkgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0OjpzdGFydCgpCiAgICAgaWYgKCFtX3JlbW90ZUlPVW5pdCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX3JlbW90ZUlPVW5p
dCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9y
ZW1vdGVJT1VuaXQpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCBBdWRpb091dHB1dFVu
aXRTdGFydCBmYWlsZWQsIGVycm9yID0gJWQiLCBlcnJvcik7Ci0gICAgICAgIEF1ZGlvQ29tcG9u
ZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0Nv
bXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CiAgICAgICAgIG1fcmVtb3Rl
SU9Vbml0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEzOSwxMSArMTQw
LDExIEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dDo6c3RvcCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2lzU3RhcnRlZCkgewotICAg
ICAgICBBdWRpb091dHB1dFVuaXRTdG9wKG1fcmVtb3RlSU9Vbml0KTsKKyAgICAgICAgUEFMOjpB
dWRpb091dHB1dFVuaXRTdG9wKG1fcmVtb3RlSU9Vbml0KTsKICAgICAgICAgbV9pc1N0YXJ0ZWQg
PSBmYWxzZTsKICAgICB9CiAKLSAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3Jl
bW90ZUlPVW5pdCk7CisgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3Jl
bW90ZUlPVW5pdCk7CiAgICAgbV9yZW1vdGVJT1VuaXQgPSBudWxscHRyOwogfQogCkBAIC0xNjMs
MTQgKzE2NCwxNCBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKICAgICBpb1VuaXREZXNjcmlwdGlv
bi5jb21wb25lbnRTdWJUeXBlID0ga0F1ZGlvVW5pdFN1YlR5cGVfRGVmYXVsdE91dHB1dDsKICNl
bmRpZgogCi0gICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25lbnQgPSBBdWRpb0NvbXBvbmVudEZp
bmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7CisgICAgQXVkaW9Db21wb25lbnQg
aW9Db21wb25lbnQgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5p
dERlc2NyaXB0aW9uKTsKICAgICBBU1NFUlQoaW9Db21wb25lbnQpOwogICAgIGlmICghaW9Db21w
b25lbnQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8g
ZmluZCByZW1vdGUgSU8gdW5pdCBjb21wb25lbnQiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlvQ29tcG9uZW50
LCAmcmVtb3RlSU9Vbml0KTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbXBvbmVudElu
c3RhbmNlTmV3KGlvQ29tcG9uZW50LCAmcmVtb3RlSU9Vbml0KTsKICAgICBpZiAoZXJyb3IpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gb3BlbiB2cGlv
IHVuaXQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKQEAgLTE3OCw3ICsx
NzksNyBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgVUludDMyIHBhcmFtID0gMTsKLSAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5
KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9V
bml0U2NvcGVfT3V0cHV0LCAwLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgIGVycm9yID0g
UEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQ
cm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXpl
b2YocGFyYW0pKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdCB1bmFibGUgdG8gZW5hYmxlIHZwaW8gdW5pdCBvdXRwdXQsIGVycm9yID0gJWQi
LCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lkIExvY2Fs
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5p
dElmTmVlZGVkKCkKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAobV9kZXZpY2VJRCkgewot
ICAgICAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlv
T3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWws
IDAsICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOworICAgICAgICBlcnJvciA9IFBB
TDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJv
cGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNl
SUQsIHNpemVvZihtX2RldmljZUlEKSk7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IHVuaXQgZGV2aWNl
IElEICVkLCBlcnJvciAlZCAoJS40cykiLCAoaW50KW1fZGV2aWNlSUQsIChpbnQpZXJyb3IsIChj
aGFyKikmZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTk2LDE0ICsxOTcsMTQgQEAg
dm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVh
dGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAjZW5kaWYKIAogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1
Y3QgY2FsbGJhY2sgPSB7IExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXQ6OnJlbmRlcmluZ0NhbGxiYWNrLCB0aGlzIH07Ci0gICAgZXJyb3IgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxs
YmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJh
Y2spKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9H
bG9iYWwsIDAsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycm9yKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCB2cGlv
IHVuaXQgc3BlYWtlciBwcm9jLCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2Yob3V0cHV0RGVzY3JpcHRpb24uc3Ry
ZWFtRGVzY3JpcHRpb24oKSk7Ci0gICAgZXJyb3IgID0gQXVkaW9Vbml0R2V0UHJvcGVydHkocmVt
b3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCAmc2l6
ZSk7CisgICAgZXJyb3IgID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQs
IGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwg
MCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksICZzaXplKTsKICAgICBp
ZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUg
dG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAg
IHJldHVybjsKQEAgLTIxMSwxMyArMjEyLDEzIEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAg
ICAgb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKS5tU2FtcGxlUmF0ZSA9IEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKTsKIAotICAgIGVycm9yID0g
QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3Ry
ZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5z
dHJlYW1EZXNjcmlwdGlvbigpLCBzaXplb2Yob3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3Jp
cHRpb24oKSkpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJ
T1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9J
bnB1dCwgMCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIHNpemVvZihv
dXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKSk7CiAgICAgaWYgKGVycm9yKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCBpbnB1
dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgZXJyb3IgPSBBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlPVW5pdCk7Cisg
ICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUocmVtb3RlSU9Vbml0KTsKICAgICBp
ZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCBBdWRpb1Vu
aXRJbml0aWFsaXplKCkgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggNGI3ODhhZTVhYTg3YjcyOWU1
YmRjZjljZjcxMzgxMmM2NzcwYTMyNS4uNDg1ZTRjZTRjNmQ4YzMyNDViNzc5ZDYxYTY3NmNiYmI5
N2JhZDkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtNTEsNyArNTEsNiBA
QAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogQGludGVyZmFjZSBXZWJDb3JlQVZW
aWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciA6IE5TT2JqZWN0PEFWQ2FwdHVyZVZpZGVvRGF0YU91
dHB1dFNhbXBsZUJ1ZmZlckRlbGVnYXRlPiB7CiAgICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UqIG1f
Y2FsbGJhY2s7CkBAIC0zNTEsMTAgKzM1MCwxMCBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNl
OjpzZXRTZXNzaW9uU2l6ZUFuZEZyYW1lUmF0ZSgpCiAgICAgICAgICAgICBpZiAoZnJhbWVSYXRl
UmFuZ2UpIHsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRGcmFtZVJhdGUgPSBjbGFtcFRvKG1f
Y3VycmVudEZyYW1lUmF0ZSwgZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVSYXRlLCBmcmFtZVJhdGVS
YW5nZS5tYXhGcmFtZVJhdGUpOwogCi0gICAgICAgICAgICAgICAgYXV0byBmcmFtZUR1cmF0aW9u
ID0gQ01UaW1lTWFrZSgxLCBtX2N1cnJlbnRGcmFtZVJhdGUpOwotICAgICAgICAgICAgICAgIGlm
IChDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lRHVy
YXRpb24pIDwgMCkKKyAgICAgICAgICAgICAgICBhdXRvIGZyYW1lRHVyYXRpb24gPSBQQUw6OkNN
VGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKKyAgICAgICAgICAgICAgICBpZiAoUEFM
OjpDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lRHVy
YXRpb24pIDwgMCkKICAgICAgICAgICAgICAgICAgICAgZnJhbWVEdXJhdGlvbiA9IGZyYW1lUmF0
ZVJhbmdlLm1pbkZyYW1lRHVyYXRpb247Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoQ01UaW1l
Q29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uKSA+
IDApCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKGZyYW1lRHVy
YXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lRHVyYXRpb24pID4gMCkKICAgICAgICAgICAg
ICAgICAgICAgZnJhbWVEdXJhdGlvbiA9IGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lRHVyYXRpb247
CiAKICAgICAgICAgICAgICAgICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElG
SUVSLCAic2V0dGluZyBmcmFtZSByYXRlIHRvICIsIG1fY3VycmVudEZyYW1lUmF0ZSwgIiwgZHVy
YXRpb24gIiwgUEFMOjp0b01lZGlhVGltZShmcmFtZUR1cmF0aW9uKSk7CkBAIC00MTgsNyArNDE3
LDcgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBTZXNzaW9uKCkKIAogICAgIG1f
c2Vzc2lvbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkNhcHR1cmVTZXNzaW9uSW5zdGFuY2UoKSBp
bml0XSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBBVkNhcHR1cmVTZXNzaW9uU2V0
QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQobV9zZXNz
aW9uLmdldCgpKTsKKyAgICBQQUw6OkFWQ2FwdHVyZVNlc3Npb25TZXRBdXRob3JpemVkVG9Vc2VD
YW1lcmFJbk11bHRpcGxlRm9yZWdyb3VuZEFwcExheW91dChtX3Nlc3Npb24uZ2V0KCkpOwogI2Vu
ZGlmCiAgICAgW21fc2Vzc2lvbiBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JL
ZXlQYXRoOkAicnVubmluZyIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNv
bnRleHQ6KHZvaWQgKiluaWxdOwogCkBAIC00MzQsNiArNDMzLDggQEAgYm9vbCBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6c2V0dXBTZXNzaW9uKCkKIAogQVZGcmFtZVJhdGVSYW5nZSogQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OmZyYW1lRHVyYXRpb25Gb3JGcmFtZVJhdGUoZG91YmxlIHJhdGUpCiB7Cisg
ICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRV9DT01QQVJFX0lOTElORQorCiAg
ICAgQVZGcmFtZVJhdGVSYW5nZSAqYmVzdEZyYW1lUmF0ZVJhbmdlID0gbmlsOwogICAgIGZvciAo
QVZGcmFtZVJhdGVSYW5nZSAqZnJhbWVSYXRlUmFuZ2UgaW4gW1tkZXZpY2UoKSBhY3RpdmVGb3Jt
YXRdIHZpZGVvU3VwcG9ydGVkRnJhbWVSYXRlUmFuZ2VzXSkgewogICAgICAgICBpZiAoZnJhbWVS
YXRlUmFuZ2VJbmNsdWRlc1JhdGUoeyBbZnJhbWVSYXRlUmFuZ2UgbWluRnJhbWVSYXRlXSwgW2Zy
YW1lUmF0ZVJhbmdlIG1heEZyYW1lUmF0ZV0gfSwgcmF0ZSkpIHsKQEAgLTU5OCw3ICs1OTksNyBA
QCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMoKQogICAgIFZlY3Rv
cjxSZWY8VmlkZW9QcmVzZXQ+PiBwcmVzZXRzOwogICAgIGZvciAoQVZDYXB0dXJlRGV2aWNlRm9y
bWF0KiBmb3JtYXQgaW4gW2RldmljZSgpIGZvcm1hdHNdKSB7CiAKLSAgICAgICAgQ01WaWRlb0Rp
bWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lv
bnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICAgICAgQ01WaWRlb0RpbWVuc2lvbnMg
ZGltZW5zaW9ucyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhm
b3JtYXQuZm9ybWF0RGVzY3JpcHRpb24pOwogICAgICAgICBJbnRTaXplIHNpemUgPSB7IGRpbWVu
c2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0IH07CiAgICAgICAgIGF1dG8gaW5kZXggPSBw
cmVzZXRzLmZpbmRNYXRjaGluZyhbJnNpemVdKGF1dG8mIHByZXNldCkgewogICAgICAgICAgICAg
cmV0dXJuIHNpemUgPT0gcHJlc2V0LT5zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuY3BwCmluZGV4IDZlMjZjOGZhNGVjZDMwYWMxZTUyZmVjMzhhZjU3ZDBlMzNkOWJjMjQuLmUx
NTU0NjJmNTE4MTU4OGJhM2JjOTQ1NmM2YjZhZTlhZmUyMWI1YzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZURldmljZS5jcHAKQEAgLTE5LDcgKzE5LDcgQEAKICAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgogICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIChJTkNMVURJTkcgTkVHTElH
RVBBTDo6TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBvcnQgPHBhbC9j
Zi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1l
c3BhY2UgUEFMOwogCiBzdGF0aWMgYm9vbCBnZXREZXZpY2VJbmZvKHVpbnQzMl90IGRldmljZUlE
LCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIFN0cmluZyYgcGVyc2lzdGVudElELCBT
dHJpbmcmIGxhYmVsKQogewpAQCAtMjA1LDcgKzIwNCw3IEBAIFJldGFpblB0cjxDTUNsb2NrUmVm
PiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpkZXZpY2VDbG9jaygpCiAgICAgICAgIHJldHVybiBt
X2RldmljZUNsb2NrOwogCiAgICAgQ01DbG9ja1JlZiBjbG9jazsKLSAgICBhdXRvIGVyciA9IENN
QXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwZXJzaXN0ZW50SWQo
KS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAmY2xvY2spOworICAgIGF1dG8gZXJyID0gUEFMOjpD
TUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGVyc2lzdGVudElk
KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmNsb2NrKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OkNN
QXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSglcCkgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIGZhaWxl
ZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
CmluZGV4IDAzZjNlNjJhMjYzN2MzZTkwMWJhZjY5NGQzYzUyNjVlZmE3NGFlYjIuLmY0YjM2NTg5
NGQzN2NkOTRmZjIxYjdmYjU0ZmRiMjY0MWYzNmZlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHAKQEAgLTQ4LDYgKzQ4LDggQEAKICNpbmNsdWRlIDx3dGYvQWxnb3JpdGht
cy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNp
bmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCkBAIC01Nyw3ICs1OSw2IEBACiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI2lmIFBMQVRGT1JNKE1BQykKIENvcmVBdWRpb0NhcHR1
cmVTb3VyY2VGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9u
KCkKQEAgLTIwMyw3ICsyMDQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1
cEF1ZGlvVW5pdCgpCiAgICAgbV9EVFNDb252ZXJzaW9uUmF0aW8gPSAxZS05ICogc3RhdGljX2Nh
c3Q8ZG91YmxlPih0aW1lYmFzZUluZm8ubnVtZXIpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPih0aW1l
YmFzZUluZm8uZGVub20pOwogCiAgICAgQXVkaW9Db21wb25lbnREZXNjcmlwdGlvbiBpb1VuaXRE
ZXNjcmlwdGlvbiA9IHsga0F1ZGlvVW5pdFR5cGVfT3V0cHV0LCBrQXVkaW9Vbml0U3ViVHlwZV9W
b2ljZVByb2Nlc3NpbmdJTywga0F1ZGlvVW5pdE1hbnVmYWN0dXJlcl9BcHBsZSwgMCwgMCB9Owot
ICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dChu
dWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9u
ZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlw
dGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAgICBpZiAoIWlvQ29tcG9uZW50KSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6
OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gZmluZCB2cGlvIHVuaXQgY29tcG9uZW50Iiwg
dGhpcyk7CkBAIC0yMTIsNyArMjEzLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c2V0dXBBdWRpb1VuaXQoKQogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIENGU3RyaW5nUmVmIG5h
bWUgPSBudWxscHRyOwotICAgIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUoaW9Db21wb25lbnQsICZu
YW1lKTsKKyAgICBQQUw6OkF1ZGlvQ29tcG9uZW50Q29weU5hbWUoaW9Db21wb25lbnQsICZuYW1l
KTsKICAgICBpZiAobmFtZSkgewogICAgICAgICBtX2lvVW5pdE5hbWUgPSBuYW1lOwogICAgICAg
ICBDRlJlbGVhc2UobmFtZSk7CkBAIC0yMjAsNyArMjIxLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlv
U2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIH0KICNlbmRpZgogCi0gICAgYXV0byBl
cnIgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlvQ29tcG9uZW50LCAmbV9pb1VuaXQpOwor
ICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlvQ29tcG9uZW50
LCAmbV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0
byBvcGVuIHZwaW8gdW5pdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTIyOCwxMyArMjI5LDEzIEBAIE9TU3Rh
dHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogICAgIGlmICghZW5h
YmxlRWNob0NhbmNlbGxhdGlvbigpKSB7CiAgICAgICAgIHVpbnQzMl90IHBhcmFtID0gMDsKLSAg
ICAgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9w
ZXJ0eV9Wb2ljZVByb2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlu
cHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlv
VW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNz
aW5nRW5hYmxlQUdDLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBz
aXplb2YocGFyYW0pKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXAp
IHVuYWJsZSB0byBzZXQgdnBpbyBhdXRvbWF0aWMgZ2FpbiBjb250cm9sLCBlcnJvciAlZCAoJS40
cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVy
cjsKICAgICAgICAgfQogICAgICAgICBwYXJhbSA9IDE7Ci0gICAgICAgIGVyciA9IEF1ZGlvVW5p
dFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfQnlwYXNzVm9pY2VQcm9j
ZXNzaW5nLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2Yo
cGFyYW0pKTsKKyAgICAgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5p
dCwga0FVVm9pY2VJT1Byb3BlcnR5X0J5cGFzc1ZvaWNlUHJvY2Vzc2luZywga0F1ZGlvVW5pdFNj
b3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgICAgIGlm
IChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBl
Y2hvIGNhbmNlbGxhdGlvbiwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yNDMsNyArMjQ0LDcgQEAgT1NT
dGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICB1aW50MzJfdCBwYXJhbSA9IDE7Ci0gICAgZXJyID0gQXVkaW9V
bml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJ
Tywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0p
KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9P
dXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRC
dXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCglcCkgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgaW5wdXQsIGVycm9yICVkICglLjRzKSIs
IHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0y
NTUsNyArMjU2LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1Vu
aXQoKQogICAgICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKLSAgICBlcnIgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnRE
ZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmbV9jYXB0dXJlRGV2aWNl
SUQsIHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCkpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2
aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJm1fY2FwdHVyZURldmljZUlE
LCBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9V
bml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBjYXB0dXJlIGRldmljZSBJRCAlZCwgZXJy
b3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCltX2NhcHR1cmVEZXZpY2VJRCwgKGludCllcnIsIChj
aGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTI3MCw3ICsyNzEsNyBAQCBPU1N0
YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgaWYgKGVycikK
ICAgICAgICAgcmV0dXJuIGVycjsKIAotICAgIGVyciA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9p
b1VuaXQpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShtX2lvVW5pdCk7CiAg
ICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgQXVkaW9Vbml0SW5pdGlhbGl6ZSgpIGZh
aWxlZCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAg
ICAgICAgcmV0dXJuIGVycjsKQEAgLTI5Miw3ICsyOTMsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnVuZHVjaygpCiBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVN
aWNyb3Bob25lUHJvYygpCiB7CiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9
IHsgbWljcm9waG9uZUNhbGxiYWNrLCB0aGlzIH07Ci0gICAgYXV0byBlcnIgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X1NldElucHV0Q2Fs
bGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmY2FsbGJhY2ssIHNpemVv
ZihjYWxsYmFjaykpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X1NldElucHV0Q2FsbGJhY2ssIGtBdWRp
b1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykp
OwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXApIHVuYWJsZSB0byBz
ZXQgdnBpbyB1bml0IG1pYyBwcm9jLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwg
KGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMzAxLDE0ICszMDIsMTQgQEAg
T1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQog
ICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBtaWNyb3Bob25lUHJvY0Zvcm1hdCA9IHsg
fTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1pY3JvcGhvbmVQcm9jRm9ybWF0KTsKLSAg
ICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bo
b25lUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVy
dHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRT
Y29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZzaXplKTsKICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IG91
dHB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAogICAgIG1pY3JvcGhvbmVQ
cm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOwotICAgIGVyciA9IEF1ZGlvVW5p
dFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBr
QXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCBz
aXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVk
aW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1
dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCBzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZp
Z3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gc2V0IG91dHB1dCBzdHJlYW0gZm9ybWF0
LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAg
ICByZXR1cm4gZXJyOwpAQCAtMzIzLDcgKzMyNCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCkKIHsKICAgICBBVVJlbmRlckNhbGxiYWNrU3Ry
dWN0IGNhbGxiYWNrID0geyBzcGVha2VyQ2FsbGJhY2ssIHRoaXMgfTsKLSAgICBhdXRvIGVyciA9
IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVu
ZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmY2FsbGJhY2ss
IHNpemVvZihjYWxsYmFjaykpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9w
ZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2sp
KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gc2V0
IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJy
LCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0zMzIsMTQgKzMzMywxNCBA
QCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYygpCiAg
ICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHNwZWFrZXJQcm9jRm9ybWF0ID0geyB9Owog
CiAgICAgVUludDMyIHNpemUgPSBzaXplb2Yoc3BlYWtlclByb2NGb3JtYXQpOwotICAgIGVyciA9
IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9y
bWF0LCAmc2l6ZSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5p
dCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0
LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgJnNpemUpOwogICAgIGlmIChlcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1h
dCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAg
ICAgcmV0dXJuIGVycjsKICAgICB9CiAKICAgICBzcGVha2VyUHJvY0Zvcm1hdC5tU2FtcGxlUmF0
ZSA9IHNhbXBsZVJhdGUoKTsKLSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5p
dCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0
LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJyID0gUEFMOjpB
dWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1h
dCwgc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJS
VEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxl
IHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50
KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtNDU5LDcgKzQ2MCw3
IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y2xlYW51cEF1ZGlvVW5pdCgpCiAgICAgfQog
CiAgICAgaWYgKG1faW9Vbml0KSB7Ci0gICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNw
b3NlKG1faW9Vbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9z
ZShtX2lvVW5pdCk7CiAgICAgICAgIG1faW9Vbml0ID0gbnVsbHB0cjsKICAgICB9CiAKQEAgLTQ3
Nyw3ICs0NzgsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1
ZGlvVW5pdCgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKG1faW9Vbml0U3RhcnRlZCkg
ewotICAgICAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKKyAgICAgICAg
ZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKICAgICAgICAgaWYgKGVy
cikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0b3AgZmFp
bGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsK
ICAgICAgICAgICAgIHJldHVybiBlcnI7CkBAIC00OTAsNyArNDkxLDcgQEAgT1NTdGF0dXMgQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoKQogICAgICAgICByZXR1cm4g
ZXJyOwogCiAgICAgaWYgKG1faW9Vbml0U3RhcnRlZCkgewotICAgICAgICBlcnIgPSBBdWRpb091
dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRV
bml0U3RhcnQobV9pb1VuaXQpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1
ZGlvVW5pdCglcCkgQXVkaW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUu
NHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBl
cnI7CkBAIC01MTQsNyArNTE1LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3Rh
cnRJbnRlcm5hbCgpCiAKICAgICB1bmR1Y2soKTsKIAotICAgIGVyciA9IEF1ZGlvT3V0cHV0VW5p
dFN0YXJ0KG1faW9Vbml0KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1f
aW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0KCVwKSBBdWRpb091dHB1dFVuaXRTdGFydCBm
YWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIp
OwogICAgICAgICBjbGVhbnVwQXVkaW9Vbml0KCk7CkBAIC01NTEsNyArNTUyLDcgQEAgdm9pZCBD
b3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wSW50ZXJuYWwoKQogICAgIGlmICghbV9pb1VuaXQgfHwg
IW1faW9Vbml0U3RhcnRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBlcnIgPSBBdWRp
b091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9PdXRw
dXRVbml0U3RvcChtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wKCVwKSBBdWRpb091dHB1
dFVuaXRTdG9wIGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgIHJldHVybjsKQEAgLTU2NSw3ICs1NjYsNyBAQCBPU1N0YXR1
cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpkZWZhdWx0SW5wdXREZXZpY2UodWludDMyX3QqIGRldmlj
ZUlEKQogICAgIEFTU0VSVChtX2lvVW5pdCk7CiAKICAgICBVSW50MzIgcHJvcGVydHlTaXplID0g
c2l6ZW9mKCpkZXZpY2VJRCk7Ci0gICAgYXV0byBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1Vu
aXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCBkZXZpY2VJRCwgJnByb3BlcnR5U2l6ZSk7CisgICAg
YXV0byBlcnIgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRw
dXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5w
dXRCdXMsIGRldmljZUlELCAmcHJvcGVydHlTaXplKTsKICAgICBpZiAoZXJyKQogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpkZWZhdWx0SW5w
dXREZXZpY2UoJXApIHVuYWJsZSB0byBnZXQgZGVmYXVsdCBpbnB1dCBkZXZpY2UgSUQsIGVycm9y
ICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRleCAzZjRlNGRjZjQyYzBmYTkzZWY5YWI2
MmRkMjJhOTdjNTEzODcwNjYzLi41ODJmNGIyNmNmMTE4YzQ5NzFhY2Q3ZDE4MzA5MjE5N2UxZTc2
ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC01Niw3
ICs1Niw2IEBACiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5p
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9T
aGFyZWRVbml0Lm1tCmluZGV4IGFhN2ZmMDg3NTA1NDI1ODJmMWVmOTE2N2E4MWU2ZmI1YTU0OGYx
NTIuLmI4NmIwNWU4YzY2NWJjMmU4MDVmMjdiMzhiMWE0ZmQzMzEzZjkyYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRV
bml0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
QXVkaW9TaGFyZWRVbml0Lm1tCkBAIC00NCwxNCArNDQsMTAgQEAKICNpbXBvcnQgPEF1ZGlvVG9v
bGJveC9BdWRpb0NvbnZlcnRlci5oPgogI2ltcG9ydCA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVz
Lmg+CiAKKyNpbXBvcnQgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9U
b29sYm94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NT
dGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0
LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQs
IEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwg
aW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBhbGln
blRvMTZCeXRlcyhzaXplX3Qgc2l6ZSkKIHsKQEAgLTIyMSw3ICsyMTcsNyBAQCB2b2lkIE1vY2tB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlKCkKICAgICBtX2F1ZGlvQnVmZmVyTGlzdCA9IG1h
a2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX3N0cmVhbUZvcm1hdCwgbV9tYXhpbWl1bUZy
YW1lQ291bnQpOwogCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
bjsKLSAgICBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoTlVMTCwgJm1fc3RyZWFtRm9y
bWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIFBB
TDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKE5VTEwsICZtX3N0cmVhbUZvcm1hdCwg
MCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBtX2Zvcm1h
dERlc2NyaXB0aW9uID0gYWRvcHRDRihmb3JtYXREZXNjcmlwdGlvbik7CiAKICAgICBzaXplX3Qg
c2FtcGxlQ291bnQgPSAyICogcmF0ZTsKQEAgLTI0Myw3ICsyMzksNyBAQCB2b2lkIE1vY2tBdWRp
b1NoYXJlZFVuaXQ6OmVtaXRTYW1wbGVCdWZmZXJzKHVpbnQzMl90IGZyYW1lQ291bnQpCiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fZm9ybWF0RGVzY3JpcHRpb24p
OwogCi0gICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9zYW1wbGVzRW1pdHRlZCwg
c2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVNYWtlKG1f
c2FtcGxlc0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7CiAgICAgbV9zYW1wbGVzRW1pdHRlZCArPSBm
cmFtZUNvdW50OwogCiAgICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKFBBTDo6dG9NZWRpYVRpbWUo
c3RhcnRUaW1lKSwgKm1fYXVkaW9CdWZmZXJMaXN0LCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24o
bV9zdHJlYW1Gb3JtYXQpLCBmcmFtZUNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYy5tbQppbmRleCBiMDU5YTMyNTFkOGI5NjU3YmE5MDE0YzQ0ZjgwNjNhZjgyN2Ix
ZDQzLi5iNjBiODg2NmZiYjgwNDg4YzIzZmUyYjU3NjkyYjMwZjg3ZTM4NjkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01MSw3ICs1MSw2IEBACiAjaW1w
b3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5k
ZXggNTgwOTRiMzQyMGYzOWM4ZjI2YzE3NzdhMmFlZDAxMjNkYmVhMjYyOC4uYWE2OTZhZGRmN2Y3
NzkyNTkxNTI5NTgzYzIxNjBjMTI0OTExZDU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29h
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U+IFJl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJy
dGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+JiYgYXVkaW9UcmFjaywgU3RyaW5nJiYgYXVkaW9UcmFj
a0lkKQogewpAQCAtMTMxLDcgKzEzMCw3IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlQ29jb2E6Ok9uRGF0YShjb25zdCB2b2lkKiBhdWRpb0RhdGEsIGludCBiaXRzUGVyCiAgICAg
ICAgICAgICBtX251bWJlck9mRnJhbWVzID0gMDsKICAgICB9CiAKLSAgICBDTVRpbWUgc3RhcnRU
aW1lID0gQ01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICBDTVRp
bWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVNYWtlKG1fbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJh
dGUpOwogICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpOwog
ICAgIG1fbnVtYmVyT2ZGcmFtZXMgKz0gbnVtYmVyT2ZGcmFtZXM7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQppbmRleCA4ZGY4ZjY4ZjZmNzI0
MDQ3NWRiZDQzMjMwNmFhM2E1NjlmNmU0OGNmLi4wYzcxZTFkYjEwZmE0MzdhN2MwMDQzZDM2NGY0
NGJmNzIzNzExYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hLm1tCkBAIC00Miw3ICs0Miw2IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VO
RAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2U+IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+JiYgdmlkZW9UcmFjaywgU3RyaW5nJiYg
dHJhY2tJZCkKIHsKQEAgLTE3MywxOSArMTcyLDE5IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSkK
ICAgICB9CiAKICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbzsKLSAgICB0aW1pbmdJ
bmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IENNVGltZU1ha2UoZnJhbWUudGltZXN0YW1wX3Vz
KCksIDEwMDAwMDApOwotICAgIHRpbWluZ0luZm8uZGVjb2RlVGltZVN0YW1wID0ga0NNVGltZUlu
dmFsaWQ7Ci0gICAgdGltaW5nSW5mby5kdXJhdGlvbiA9IGtDTVRpbWVJbnZhbGlkOworICAgIHRp
bWluZ0luZm8ucHJlc2VudGF0aW9uVGltZVN0YW1wID0gUEFMOjpDTVRpbWVNYWtlKGZyYW1lLnRp
bWVzdGFtcF91cygpLCAxMDAwMDAwKTsKKyAgICB0aW1pbmdJbmZvLmRlY29kZVRpbWVTdGFtcCA9
IFBBTDo6a0NNVGltZUludmFsaWQ7CisgICAgdGltaW5nSW5mby5kdXJhdGlvbiA9IFBBTDo6a0NN
VGltZUludmFsaWQ7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb247Ci0gICAgT1NTdGF0dXMgb3N0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVy
UmVmKXBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIE9TU3RhdHVzIG9zdGF0
dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCAmZm9ybWF0
RGVzY3JpcHRpb24pOwogICAgIGlmIChvc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIEVSUk9S
X0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUiwgIkZhaWxlZCB0byBpbml0aWFsaXpl
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbiB3aXRoIGVycm9yICIsIHN0YXRpY19jYXN0PGludD4o
b3N0YXR1cykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlQnVmZmVyOwotICAgIG9zdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5
V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBp
eGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIp
OworICAgIG9zdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIs
IGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7CiAgICAgQ0ZS
ZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAob3N0YXR1cyAhPSBub0Vycikgewog
ICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJGYWlsZWQg
dG8gY3JlYXRlIHRoZSBzYW1wbGUgYnVmZmVyIHdpdGggZXJyb3IgIiwgc3RhdGljX2Nhc3Q8aW50
Pihvc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLmNwcAppbmRleCA2YmYwY2E0ODdkZDY0ZGJlZjUzOWQ5NDg4MGY2MjhjN2ZhMTYxYmYx
Li5lMzNiYjZkYTlkZGRkMDFhMDBkOTk2ZmQ5ZWYwMmFjOTgxNGExZWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTQ1LDcgKzQ1
LDYgQEAgQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAjaW5jbHVkZSAiQ29yZVZpZGVvU29m
dExpbmsuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAog
UmVmPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZT4gUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlOjpjcmVhdGUoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIHZpZGVvU291cmNlKQog
ewpAQCAtODUsNyArODQsNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29h
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgIH0KIAogICAg
IEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpD
TVNhbXBsZUJ1ZmZlclR5cGUpOwotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxD
VlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0
Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOworICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVy
KSk7CiAgICAgYXV0byBwaXhlbEZvcm1hdFR5cGUgPSBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3Jt
YXRUeXBlKHBpeGVsQnVmZmVyKTsKIAogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBj
b252ZXJ0ZWRCdWZmZXIgPSBwaXhlbEJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1
cmVyTWFjLm1tCmluZGV4IDc4YmJjYWQxMzk5ODYyZjU1Yjk3MGJlNDc3ZjI1MTRjNGYzNDg0NTQu
LjEyOTNkYTU1OWY5MjlhN2FlZWM1NGQwN2FhOWFlNGY5OTRmOTViNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVy
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dp
bmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQpAQCAtNDYsNyArNDYsNiBAQAogV1RGX0RFQ0xBUkVf
Q0ZfVFlQRV9UUkFJVChDR0ltYWdlKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIAogc3RhdGljIGJvb2wgYW55T2ZDR1dpbmRvdyhjb25zdCBGdW5jdGlvbjxi
b29sKENGRGljdGlvbmFyeVJlZiBpbmZvLCB1bnNpZ25lZCBpZCwgY29uc3QgU3RyaW5nJiB0aXRs
ZSk+JiBwcmVkaWNhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3Mv
V2ViSWNvblV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJY29uVXRp
bGl0aWVzLm1tCmluZGV4IDRlYTNkZTg2Y2JiNDQ0MTlkYTZlMWY0OTNiZWE4MzkwNTVkZDE4NWUu
LmY2YjNjZTkxZDUyNTYyMmQxZGIxZjIwMTdlODExMTE1NTU5NmUzZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJY29uVXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2lvcy9XZWJJY29uVXRpbGl0aWVzLm1tCkBAIC0xMjQsNyArMTI0LDcgQEAg
UmV0YWluUHRyPFVJSW1hZ2U+IGljb25Gb3JWaWRlb0ZpbGUoTlNVUkwgKmZpbGUpCiAgICAgW2dl
bmVyYXRvciBzZXRBcHBsaWVzUHJlZmVycmVkVHJhY2tUcmFuc2Zvcm06WUVTXTsKIAogICAgIE5T
RXJyb3IgKmVycm9yID0gbmlsOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZVJlZiA9
IGFkb3B0Q0YoW2dlbmVyYXRvciBjb3B5Q0dJbWFnZUF0VGltZTprQ01UaW1lWmVybyBhY3R1YWxU
aW1lOm5pbCBlcnJvcjomZXJyb3JdKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2VS
ZWYgPSBhZG9wdENGKFtnZW5lcmF0b3IgY29weUNHSW1hZ2VBdFRpbWU6UEFMOjprQ01UaW1lWmVy
byBhY3R1YWxUaW1lOm5pbCBlcnJvcjomZXJyb3JdKTsKICAgICBpZiAoIWltYWdlUmVmKSB7CiAg
ICAgICAgIExPR19FUlJPUigiRXJyb3IgY3JlYXRpbmcgaW1hZ2UgZm9yIHZpZGVvICclQCc6ICVA
IiwgZmlsZSwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsbGJhY2tJY29uRm9yRmlsZShmaWxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRl
ci9Db3JlTWVkaWFXcmFwcGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcAppbmRleCBhMTZkMjQyNTY0MWYzN2ExOWQw
YzA5ZTU0YmMzZWVmNGFhMjgxOGVhLi4wYmFjMWUyODllNzc3MmVhZTdlNmIzNjk4MTA4NTk0Yjdh
Njg2ODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCkBAIC0zNCwxNyArMzQsMTcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJvb2wgY3JlYXRlV3JhcHBlcihDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogYmFzZVZUYWJsZSwgQ01CYXNlQ2xhc3NJ
RCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIHdyYXBwZXIpCiB7Ci0gICAgcmV0dXJuIENNRGVy
aXZlZE9iamVjdENyZWF0ZShhbGxvY2F0b3IsIGJhc2VWVGFibGUsIGNsYXNzSUQsIHdyYXBwZXIp
ID09IG5vRXJyOworICAgIHJldHVybiBQQUw6OkNNRGVyaXZlZE9iamVjdENyZWF0ZShhbGxvY2F0
b3IsIGJhc2VWVGFibGUsIGNsYXNzSUQsIHdyYXBwZXIpID09IG5vRXJyOwogfQogCiB2b2lkKiB3
cmFwcGVyU3RvcmFnZShDTUJhc2VPYmplY3RSZWYgd3JhcHBlcikKIHsKLSAgICByZXR1cm4gQ01C
YXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Uod3JhcHBlcik7CisgICAgcmV0dXJuIFBBTDo6Q01C
YXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Uod3JhcHBlcik7CiB9CiAKIGNvbnN0IENNQmFzZVZU
YWJsZSogd3JhcHBlclZUYWJsZShDTUJhc2VPYmplY3RSZWYgd3JhcHBlcikKIHsKLSAgICByZXR1
cm4gQ01CYXNlT2JqZWN0R2V0VlRhYmxlKHdyYXBwZXIpOworICAgIHJldHVybiBQQUw6OkNNQmFz
ZU9iamVjdEdldFZUYWJsZSh3cmFwcGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVk
aWFGb3JtYXRSZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcAppbmRleCBjMTg0ZTQ0N2IyY2Q0NDJhODQ3ZWMz
MTYyMzM2YjZmYWY3ODczYzdjLi41ZTc3OGNjMGI3YmRhNzRlM2Y3NWM5OWI1OGJhOGJmYTI1MTcy
OTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9N
ZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAg
V1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpbkZvcm1hdFJlYWRlcik7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIHN0YXRpYyBjb25zdCB2b2lkKiBuZXh0TG9nSWRlbnRpZmllcigpCkBAIC0yNDUs
NyArMjQ0LDcgQEAgT1NTdGF0dXMgTWVkaWFGb3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eShDRlN0
cmluZ1JlZiBrZXksIENGQWxsb2NhdG9yUmVmIGFsbG9jYXQKICAgICBpZiAobV9kdXJhdGlvbi5p
c0luZGVmaW5pdGUoKSkKICAgICAgICAgcmV0dXJuIGtDTUJhc2VPYmplY3RFcnJvcl9WYWx1ZU5v
dEF2YWlsYWJsZTsKIAotICAgIGlmIChhdXRvIGxlYWtlZER1cmF0aW9uID0gYWRvcHRDRihDTVRp
bWVDb3B5QXNEaWN0aW9uYXJ5KFBBTDo6dG9DTVRpbWUobV9kdXJhdGlvbiksIGFsbG9jYXRvcikp
LmxlYWtSZWYoKSkgeworICAgIGlmIChhdXRvIGxlYWtlZER1cmF0aW9uID0gYWRvcHRDRihQQUw6
OkNNVGltZUNvcHlBc0RpY3Rpb25hcnkoUEFMOjp0b0NNVGltZShtX2R1cmF0aW9uKSwgYWxsb2Nh
dG9yKSkubGVha1JlZigpKSB7CiAgICAgICAgICpyZWludGVycHJldF9jYXN0PENGRGljdGlvbmFy
eVJlZio+KHZhbHVlQ29weSkgPSBsZWFrZWREdXJhdGlvbjsKICAgICAgICAgcmV0dXJuIG5vRXJy
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1h
dFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCmluZGV4IGQ4M2Vm
Y2Y0Nzc1Y2U5NmIxMmE4NzYwZjhkMTcyMzRhYjBmMWVlN2QuLjRkZTFkMGVkMmE3YmU0OWUzY2Ji
Yjk1ZTM3N2Y1NDUwOWZhYzA3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdl
LmNwcApAQCAtMjUsMTIgKzI1LDEyIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJNZWRpYVNhbXBsZUJ5dGVSYW5nZS5oIgorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oPgogCiAjaWYgRU5BQkxFKFdFQk1fRk9STUFUX1JFQURFUikKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogTWVkaWFTYW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKE1lZGlhU2FtcGxl
JiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291cmNlLCB1aW50NjRfdCB0cmFj
a0lEKQpAQCAtNTAsNyArNTAsNyBAQCBNZWRpYVNhbXBsZUJ5dGVSYW5nZTo6TWVkaWFTYW1wbGVC
eXRlUmFuZ2UoTWVkaWFTYW1wbGUmIHNhbXBsZSwgTVRQbHVnaW5CeXRlU291cgogICAgIGF1dG8g
cGxhdGZvcm1TYW1wbGUgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKTsKICAgICBzd2l0Y2ggKHBs
YXRmb3JtU2FtcGxlLnR5cGUpIHsKICAgICBjYXNlIFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1
ZmZlclR5cGU6Ci0gICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdl
dEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7
CisgICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9y
bWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQbGF0Zm9ybVNhbXBsZTo6Qnl0ZVJhbmdlU2FtcGxlVHlw
ZToKICAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5i
eXRlUmFuZ2VTYW1wbGUuc2Vjb25kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKaW5k
ZXggY2UyOTA2ZGM0NDI5Yjg3NTE0YTdiMDBjMzIxNzM5MmQ1MDdiM2Y5NS4uZmJlNDIyNzMwNmY4
MGY2MWMxMjdjMzM4YzcxZWZhNTRhMmQyMGM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJz
b3IuY3BwCkBAIC00Myw3ICs0Myw2IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoTVRQbHVn
aW5TYW1wbGVDdXJzb3IpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgTWVkaWFUaW1lIGFzc3Vt
ZWREZWNvZGVUaW1lKGNvbnN0IE1lZGlhVGltZSYgcHJlc2VudGF0aW9uVGltZSwgRGVjb2RlT3Jk
ZXJTYW1wbGVNYXAmIG1hcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9N
ZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcAppbmRleCA5MDg2
MWM4NGRkZTZjNjZkZGI4Nzc5M2FiMjMwNmE2NmU0ZGViNzMxLi4xZGMxY2FlMDMwMDhlMGEyMGE0
NGFjNzNkMWFhMzcyNTM1N2YyMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCkBA
IC00Nyw3ICs0Nyw2IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoTVRQbHVnaW5UcmFja1Jl
YWRlcik7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIENNQmFzZUNsYXNzSUQgTWVkaWFUcmFja1JlYWRlcjo6
d3JhcHBlckNsYXNzSUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nv
b3JkaW5hdG9yLm1tCmluZGV4IDE3ZDc5ZjE2MTA1NmEwMTBhNGVhYzU4MmZkMjc4NjhmMzg4YTYy
MTEuLjFlMzhkZTVkYmRhOWUxNTcxMjhmMWY0MGRhYWQxYzQ5MTkwZTMwMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2
aXRpZXNDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9H
cm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0KQEAgLTEwMiw4ICsx
MDIsNiBAQCBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFM
OwotCiBSZWY8R3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I+IEdyb3VwQWN0aXZpdGllc0Nvb3Jk
aW5hdG9yOjpjcmVhdGUoR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbiYgc2Vzc2lvbikKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcihzZXNzaW9uKSk7
CkBAIC0xNTQsNyArMTUyLDcgQEAgdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6bGVh
dmUoKQogCiB2b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRp
bWUsIENvb3JkaW5hdG9yQ29tcGxldGlvbkhhbmRsZXImJiBjYWxsYmFjaykKIHsKLSAgICBbbV9w
bGF5YmFja0Nvb3JkaW5hdG9yIGNvb3JkaW5hdGVTZWVrVG9UaW1lOkNNVGltZU1ha2VXaXRoU2Vj
b25kcyh0aW1lLCAxMDAwKSBvcHRpb25zOjBdOworICAgIFttX3BsYXliYWNrQ29vcmRpbmF0b3Ig
Y29vcmRpbmF0ZVNlZWtUb1RpbWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgMTAw
MCkgb3B0aW9uczowXTsKICAgICBjYWxsYmFjayhzdGQ6Om51bGxvcHQpOwogfQogCkBAIC0yMTEs
MTAgKzIwOSwxMCBAQCB2b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjppc3N1ZVBsYXlD
b21tYW5kKEFWRGVsZWdhdGluZ1BsYXliYWNrQ29vcmRpbmF0bwogCiAgICAgc3RkOjpvcHRpb25h
bDxkb3VibGU+IGl0ZW1UaW1lOwogICAgIGlmIChDTVRJTUVfSVNfTlVNRVJJQyhwbGF5Q29tbWFu
ZC5pdGVtVGltZSkpCi0gICAgICAgIGl0ZW1UaW1lID0gQ01UaW1lR2V0U2Vjb25kcyhwbGF5Q29t
bWFuZC5pdGVtVGltZSk7CisgICAgICAgIGl0ZW1UaW1lID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRz
KHBsYXlDb21tYW5kLml0ZW1UaW1lKTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vbm90b25pY1RpbWU+
IGhvc3RUaW1lOwogICAgIGlmIChDTVRJTUVfSVNfTlVNRVJJQyhwbGF5Q29tbWFuZC5ob3N0Q2xv
Y2tUaW1lKSkKLSAgICAgICAgaG9zdFRpbWUgPSBNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFic29s
dXRlVGltZShDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cyhwbGF5Q29tbWFuZC5o
b3N0Q2xvY2tUaW1lKSk7CisgICAgICAgIGhvc3RUaW1lID0gTW9ub3RvbmljVGltZTo6ZnJvbU1h
Y2hBYnNvbHV0ZVRpbWUoUEFMOjpDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cyhw
bGF5Q29tbWFuZC5ob3N0Q2xvY2tUaW1lKSk7CiAKICAgICBjbGllbnQoKS0+cGxheVNlc3Npb24o
aXRlbVRpbWUsIGhvc3RUaW1lLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGJvb2wp
IHsKICAgICAgICAgY2FsbGJhY2soKTsKQEAgLTI0Niw3ICsyNDQsNyBAQCB2b2lkIEdyb3VwQWN0
aXZpdGllc0Nvb3JkaW5hdG9yOjppc3N1ZVNlZWtDb21tYW5kKEFWRGVsZWdhdGluZ1BsYXliYWNr
Q29vcmRpbmF0bwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2xpZW50KCktPnNlZWtT
ZXNzaW9uVG9UaW1lKENNVGltZUdldFNlY29uZHMoc2Vla0NvbW1hbmQuaXRlbVRpbWUpLCBbY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGJvb2wpIG11dGFibGUgeworICAgIGNsaWVudCgp
LT5zZWVrU2Vzc2lvblRvVGltZShQQUw6OkNNVGltZUdldFNlY29uZHMoc2Vla0NvbW1hbmQuaXRl
bVRpbWUpLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGJvb2wpIG11dGFibGUgewog
ICAgICAgICBjYWxsYmFjaygpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCA0Mjc5NjljMjgy
MTE4YWMzYzNkNzcwODNlYWI4MmQ5NWZkMGFiZWZmLi4xNzFkOWNhNDg0OTE1ZDdhZjRlZWFkNjk3
MDk5OTFlNTA0ZDQyNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtMjY5LDcgKzI2OSw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKCkKIHsKICAgICB1
c2luZyBuYW1lc3BhY2UgUEFMOwogCi0gICAgaWYgKCFpc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdv
cmtBdmFpbGFibGUoKSB8fCAhY2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50
RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCisgICAgaWYgKCFQQUw6OmlzQXVkaW9Ub29sYm94
Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFQQUw6OmNhbkxvYWRfQXVkaW9Ub29sYm94Q29y
ZV9BdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucygpKQogICAgICAgICByZXR1
cm47CiAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BB
VENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCmluZGV4IGYzNzg0
ZmMyNzEyYjBkZjYzODcxMjA0N2NkNzJmODUzMGM3NzcyMzQuLjJhODNkOTcxMGJmNzI1NWU1OTM4
NWMxYjFmNjU5MzRjMjYzMDU1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQpAQCAtNDIs
NyArNDIsNiBAQCBAZW5kCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAogbmFtZXNwYWNlIFdlYktp
dCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0
YXRpYyBib29sIHVzYWdlVHJhY2tpbmdBdmFpbGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3Bw
CmluZGV4IGMzMjNhNmE3OGI0NTAwNWI2Nzc0MDg2MmI2MjliMTZmYmI4MGY0MGIuLmY4OTFhNTMz
MTQ1MGJmMTdlYWY5NWIwMGUzMThkYWUzYzczODc1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5j
cHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlz
dC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXgg
OTViYmQ1NDgzY2ZlYTE3YzkxMmVkNWI1ZjEzZjQzMWZhZTM3MTI2Ny4uOGE1OWFlMWEyOGZhNDNh
OWIyZjIxNTc2MjExODlhZTk3NmQxMDJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVy
TGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojp+
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDY2YTE5ZTczYTllYjU2NGRj
Y2UwNzc3ZGMzMjAwZTRjMGJjOTNjNjAuLjhhY2MzZDBhOGFiMWNjZDRiM2ZlY2FkNjBiM2E2YmMz
YWU2NDMwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQpAQCAtMTM5Miw3ICsxMzkyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpjb25z
dW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGEKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgUEFMOwogCi0gICAgaWYgKCFpc0F1ZGlvVG9vbGJv
eENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhY2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1
ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCisgICAgaWYgKCFQQUw6Omlz
QXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFQQUw6OmNhbkxvYWRfQXVk
aW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucygpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHJlZ2lzdHJhdGlvbnMgPSBhZG9wdENGKENGRGF0
YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432121</attachid>
            <date>2021-06-23 18:06:42 -0700</date>
            <delta_ts>2021-06-23 18:32:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210624110639.patch</filename>
            <type>text/plain</type>
            <size>314995</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxYWM3ZDA0MjEwOWQ2
MDlmMGU3ZTdjN2MyNjQ1MGE1ZWJkYjY0Ni4uY2VjOTc1OTMzODFjNGE1NTljNmRlYWRkYTE4OGQ4
ZGFiOWRlMGM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlcyBv
ZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFVuaWZ5IEF1ZGlvVG9vbGJveCwgQ29yZU1lZGlhLCBWaWRlb1Rvb2xib3ggYW5k
IE1lZGlhVG9vbGJveCdzIG1ldGhvZAorICAgICAgICBkZWZpbml0aW9ucyBhbmQgdGhlaXIgdXNl
LCBlbnN1cmluZyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzb2Z0LWxpbmtlZC4KKyAgICAgICAgVW5p
ZmllZCBidWlsZHMgYW5kIHRoZSBpbmNvbnNpc3RlbnQgdXNlIG9mIGV4cGxpY2l0bHkgdXNpbmcg
dGhlIFBBTCBuYW1lc3BhY2UKKyAgICAgICAgY2F1c2VkIHNvbWUgY2FsbHMgdG8gYmUgYW1iaWd1
b3VzIGxlYWRpbmcgdG8gY29tcGlsYXRpb24gZXJyb3JzOyBzb21lCisgICAgICAgIGNvZGUgd291
bGQgYWxzbyB1c2UgdGhlIHNvZnRsaW5rZWQgbWV0aG9kcyB3aGlsZSBvdGhlcnMgY2FsbGVkIGlu
dG8gdGhlIGZyYW1ld29ya3MKKyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIFRvIGdldCBhcm91
bmQgdGhvc2Ugd2UgZW5zdXJlIHRoYXQgYW55IGNhbGxzIHRvIEF1ZGlvVG9vbGJveCBvciBDb3Jl
TWVkaWEgaXMgYWx3YXlzIHVzaW5nCisgICAgICAgIHRoZSBmdWxseSByZXNvbHZlZCBQQUwgbmFt
ZS4KKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGB1c2luZyBuYW1lc3BhY2UgUEFMO2Agc3Rh
dGVtZW50cyB3aGVyZXZlciBhcHBsaWNhYmxlLgorICAgICAgICBObyBjaGFuZ2UgaW4gb2JzZXJ2
YWJsZSBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5w
cmVwYXJlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUltYWdlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50
TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlk
Q2hhbmdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpk
ZXN0cm95TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjp2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJS
ZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGVJbWFnZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnBy
ZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkZWNvZGVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6ZHVyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpzaXplSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFW
Rk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZG9l
c0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1ZmZl
ckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1wbGVC
dWZmZXJOb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6cHJlc2VudGF0aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1w
bGVBVkZPYmpDOjppc0RpdmlzYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OmRpdmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZm
ZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3Vt
ZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpB
dWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0NNQ29sb3JQcmltYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01U
cmFuc2ZlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0NNWUNiQ1JNYXRy
aXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJh
aXQ8Q01TYW1wbGVCdWZmZXJSZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmRlY29kZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjph
dXRvbWF0aWNEZXF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5I
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRh
dGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVr
YWJsZVJhbmdlc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93
V2F0ZXJUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0Nv
bXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFz
c2V0V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVk
aW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmlj
ZUNsb2NrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpj
b25maWd1cmVNaWNyb3Bob25lUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVk
aW9TaGFyZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2E6Ok9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW06CisKIDIwMjEtMDYtMjEgIEplYW4t
WXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1l
dGhvZCBpbiBBdWRpb0ZpbGVSZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGRlZmQ3Yjc2ZTc2
YTAwODNiNmY4YjU2MzY4MjcwZGNmMjM3OWRlYTYuLjgxMWQ2ODY2YTM0MDc0YjNmNDc0ZTQxNzNj
ZjQ3NzZmMDM1ODA5NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIx
LTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgTm90
IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgor
ICAgICAgICAqIHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWV0aG9kcyB3aG9z
ZSBkZWZpbml0aW9ucyB3ZXJlIHNjYXR0ZXJlZCBhY3Jvc3MKKyAgICAgICAgdGhlIGNvZGUuCisg
ICAgICAgICogcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBw
YWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaDogU2FtZSBhcyBhYm92ZS4KKyAgICAgICAg
KiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9BdWRp
b1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisgICAgICAgICogcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kcworICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hT
b2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg6IEFk
ZCBtaXNzaW5nIG1ldGhvZHMgYW5kIGZpeCBzb21lIHNwZWxsaW5nIGluIGRlZmluZSBuYW1lcwor
ICAgICAgICAqIHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICog
cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmg6IEFkZCBtaXNzaW5nIG1ldGhvZHMKKwog
MjAyMS0wNi0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29jb2FdIE1ha2UgdGhlIGhvc3RUaW1lIHBhcmFtZXRlciB0byBwbGF5U2Vzc2lvbiBhIE1vbm90
b25pYyB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU3ZGNiNTZmYmE4MDNmNmZjMTJkMTk0NGE1MGNiNWNjZmI4
MWY2MjQuLjFkNTkyOTQwNjJhNzE2ODY2NzFkMjAxNmU3ZmM5YjRjNjE2YTBmNjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFw
cGxlLmNvbT4KKworICAgICAgICBOb3QgYWxsIHVzZXMgb2YgQXVkaW9Ub29sYm94IGZyYW1ld29y
ayB1c2Ugc29mdCBsaW5raW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjcyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NjA2MDkwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpjb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBT
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpjcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKFdlYktpdDo6d3JhcHBlclN0b3Jh
Z2UpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyVlRhYmxlKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFGb3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eSk6CisgICAgICAgICogU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZSk6Cisg
ICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5j
cHA6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVh
ZGVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50
UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNh
Z2VNYW5hZ2VyQ29jb2EubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVB
dWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorCiAyMDIxLTA2LTIzICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbaU9TIDE1IFJlZ3Jlc3Npb25d
OiBzY3JvbGwgcG9zaXRpb24gcmVzZXRzIHdoZW4gdXNpbmcgc2Nyb2xsIHNuYXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcAppbmRleCA2YTgyM2Q2MWFkMTAxMDMyYmJlMTk0YTYyYjViNjE1NmQyM2Nh
YjEyLi4wOWMyZWEzMjljMmMwY2E2ZWU2ZjdiYTNhMmM0NGFkZjgzNDhlNWY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwCkBAIC01Myw4ICs1Myw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogI2lmICFVU0UoTElCV0VCUlRDKQogc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxQZWVyQ29ubmVjdGlvbkJhY2tlbmQ+IGNyZWF0ZU5vUGVlckNvbm5lY3Rp
b25CYWNrZW5kKFJUQ1BlZXJDb25uZWN0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpp
bmRleCA0MDBmOWI4ZDE2YjU5M2I0ODVlMDBjN2Y3OGY1OWRlOThkYzM3ZDlmLi43NDk5NGUyYzUx
MDBlY2FiYTYxNTkwZmIxMTgwYWEwYmMzN2IwZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1t
CkBAIC01OCw3ICs1OCw2IEBACiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhWYWx1ZUlu
Q29udGV4dChpZCwgSlNDb250ZXh0ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCmlu
ZGV4IDViMTM1YjM5YTVhMGExZDgwMWJlNjg3OGZiZGZmNjc2NmMyZThhY2UuLmYxYzJhZjMzYzVm
YTJhYjZmYzUxNjY5OTgzZmE3MGU3Njk2NDAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2Nv
YS5jcHAKQEAgLTM3LDggKzM3LDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCi11c2luZyBuYW1lc3BhY2Ug
UEFMOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIHN0cmVhbURlc2NyaXB0aW9uKHNpemVfdCBzYW1wbGVSYXRlLCBzaXplX3Qg
Y2hhbm5lbENvdW50KQpAQCAtNzEsNyArNjksNyBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2U6OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyYgYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFr
ZShtX251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCkpOworICAg
IENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9j
dXJyZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6
dG9NZWRpYVRpbWUoc3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9m
RnJhbWVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9v
bGJveFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuY3BwCmluZGV4IDY3Yjc4ZjQ2YTc4MTE3ODg4ZjAwZDA4OTdkYmE1N2U3YWM1Mzg1
MDIuLjMzM2FhMjI0YzcxYTc1MGNkOWEwZjY5Zjc4M2RkMDE1OTc1MTBhYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0y
NiwyMCArMjYsNDYgQEAKIAogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxBdWRp
b1Rvb2xib3gvQXVkaW9Db21wb25lbnQuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9D
b252ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+CiAjaW5jbHVk
ZSA8QXVkaW9Ub29sYm94L0F1ZGlvRm9ybWF0Lmg+Ci0KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gv
QXVkaW9Vbml0Lmg+CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+
CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgUEFMX0VYUE9SVCkK
IAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHlJbmZvLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGlu
QXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJ
bnQzMiogb3V0U2l6ZSwgQm9vbGVhbiogb3V0V3JpdGFibGUpLCAoaW5BdWRpb0NvbnZlcnRlciwg
aW5Qcm9wZXJ0eUlELCBvdXRTaXplLCBvdXRXcml0YWJsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVj
aWZpZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0
YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVy
U2l6ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24q
IGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVz
dGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChp
blNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyRGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVy
dGVyKSwgKGluQXVkaW9Db252ZXJ0ZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAo
QXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0
eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCog
aW5Qcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3Bl
cnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJv
cGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBv
dXRQcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3Bl
cnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZl
ciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIg
aW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1
ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJl
clBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRmlsbENvbXBs
ZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwg
QXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyBpbklucHV0RGF0YVByb2MsIHZvaWQq
IGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0YVBhY2tldFNpemUs
IEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlw
dGlvbiogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5JbnB1dERh
dGFQcm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwg
b3V0T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRpb24pKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0LCBPU1N0
YXR1cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RvcCwgT1NTdGF0dXMsIChBdWRp
b1VuaXQgY2kpLCAoY2kpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRp
b1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlv
Q29tcG9uZW50SW5zdGFuY2UgaW5JbnN0YW5jZSksIChpbkluc3RhbmNlKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudENvcHlO
YW1lLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBDRlN0cmluZ1JlZiog
b3V0TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisKIFNPRlRfTElOS19GVU5DVElPTl9N
QVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVk
aW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVm
KiBvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSwgKG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0
cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYgaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgKGlu
QnVuZGxlUmVnaXN0cmF0aW9ucyksIFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChB
dWRpb0ZpbGVJRCBpbkF1ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFj
a3MsIE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5S
ZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNp
emVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5j
LCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0Zp
bGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVu
YywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlz
cG9zZSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRB
dWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xi
b3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBp
bkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
MiAqaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRp
b0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBV
SW50MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSksIChpbkV4dEF1
ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3Rh
dHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0
eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCAq
aW5Qcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0
eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1
cywgKEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9G
aWxlUmVmICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0
QXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRB
dWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkK
KworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
Q29tcG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21w
b25lbnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChpbkNvbXBv
bmVudCwgaW5EZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9u
ZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5jZSksIChp
bkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlv
VW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5T
Y29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQqIG91dERhdGEsIFVJbnQzMiog
aW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwg
aW9EYXRhU2l6ZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwg
KGluVW5pdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVk
aW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRF
bGVtZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSks
IChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkK
IAogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKaW5kZXggNDllMzJlMTc5NDAzNjNiODQ5Nzc0
NDM1YmQyMDk1ZTY0YWI0ODgxYi4uZGRmMTNhMDI3YTQ1YTIyYjgzOThkMTM1ZThlMGIzZGZjNjg1
NTJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hT
b2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaApAQCAtMjYsMjcgKzI2LDExNCBAQAogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAor
I2luY2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0
TGlua2luZy5oPgogCiB0eXBlZGVmIFVJbnQzMiBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQ7CiB0
eXBlZGVmIFVJbnQzMiBBdWRpb0Zvcm1hdFByb3BlcnR5SUQ7CiB0eXBlZGVmIHN0cnVjdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uOwogdHlw
ZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db252ZXJ0ZXIqIEF1ZGlvQ29udmVydGVyUmVmOwordHlw
ZWRlZiBzdHJ1Y3QgQXVkaW9CdWZmZXJMaXN0IEF1ZGlvQnVmZmVyTGlzdDsKK3R5cGVkZWYgT1NT
dGF0dXMgKCpBdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKShBdWRpb0NvbnZlcnRl
clJlZiBpbkF1ZGlvQ29udmVydGVyLAorICAgIFVJbnQzMiogaW9OdW1iZXJEYXRhUGFja2V0cywK
KyAgICBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSwKKyAgICBBdWRpb1N0cmVhbVBhY2tldERlc2Ny
aXB0aW9uKiogb3V0RGF0YVBhY2tldERlc2NyaXB0aW9uLAorICAgIHZvaWQqIGluVXNlckRhdGEp
OworCit0eXBlZGVmIHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqIEV4dEF1ZGlvRmlsZVJlZjsK
K3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvRmlsZUlEKiBBdWRpb0ZpbGVJRDsKK3R5cGVkZWYg
VUludDMyIEF1ZGlvRmlsZVR5cGVJRDsKK3R5cGVkZWYgVUludDMyIEV4dEF1ZGlvRmlsZVByb3Bl
cnR5SUQ7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1JlYWRQcm9jKSgKKyAgICB2b2lk
KiBpbkNsaWVudERhdGEsCisgICAgU0ludDY0IGluUG9zaXRpb24sCisgICAgVUludDMyIHJlcXVl
c3RDb3VudCwKKyAgICB2b2lkKiBidWZmZXIsCisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7Cit0
eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1dyaXRlUHJvYykoCisgICAgdm9pZCogaW5DbGll
bnREYXRhLAorICAgIFNJbnQ2NCBpblBvc2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQs
CisgICAgY29uc3Qgdm9pZCogYnVmZmVyLAorICAgIFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlw
ZWRlZiBTSW50NjQgKCpBdWRpb0ZpbGVfR2V0U2l6ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50
RGF0YSk7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1NldFNpemVQcm9jKSgKKyAgICB2
b2lkKiBpbkNsaWVudERhdGEsCisgICAgU0ludDY0IGluU2l6ZSk7Cit0eXBlZGVmIHN0cnVjdCBP
cGFxdWVBdWRpb0NvbXBvbmVudCogQXVkaW9Db21wb25lbnQ7CisKKyNpZiBUQVJHRVRfT1NfSVBI
T05FIHx8IChkZWZpbmVkKEFVRElPQ09NUE9ORU5UX05PQ0FSQk9OSU5TVEFOQ0VTKSAmJiBBVURJ
T0NPTVBPTkVOVF9OT0NBUkJPTklOU1RBTkNFUykKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlv
Q29tcG9uZW50SW5zdGFuY2UqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7CisjZWxzZQordHlwZWRl
ZiBzdHJ1Y3QgQ29tcG9uZW50SW5zdGFuY2VSZWNvcmQqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7
CisjZW5kaWYKK3R5cGVkZWYgQXVkaW9Db21wb25lbnRJbnN0YW5jZSBBdWRpb1VuaXQ7CisKK3R5
cGVkZWYgc3RydWN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gQXVkaW9Db21wb25lbnREZXNj
cmlwdGlvbjsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdFByb3BlcnR5SUQ7Cit0eXBlZGVmIFVJ
bnQzMiBBdWRpb1VuaXRTY29wZTsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdEVsZW1lbnQ7CiAK
IFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRf
TElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUpCiAKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5SW5mbywgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIG91
dFNpemUsIEJvb2xlYW4qIG91dFdyaXRhYmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVy
dHlJRCwgb3V0U2l6ZSwgb3V0V3JpdGFibGUpKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFBy
b3BlcnR5SW5mbyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0
eUluZm8KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGlu
QXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJ
bnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5BdWRp
b0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5
RGF0YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChj
b25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29u
dmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5h
dGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlck5l
dyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJOZXcKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2Us
IE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlv
Q29udmVydGVyKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlIHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9BdWRpb0NvbnZlcnRlckRpc3Bvc2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJv
cGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZv
aWQqIGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW5Q
cm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVy
U2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyU2V0UHJvcGVy
dHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRp
b0Zvcm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9ybWF0UHJvcGVydHlJRCBpblBy
b3BlcnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0IHZvaWQqIGluU3BlY2lmaWVy
LCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGlu
UHJvcGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmllciwgaW9Qcm9wZXJ0eURhdGFT
aXplLCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5IHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0Zvcm1hdEdldFByb3BlcnR5CitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0
Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVy
dGVyLCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5J
bnB1dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVy
dGVyLCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorI2Rl
ZmluZSBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9BdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxl
eEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBB
dWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywgdm9pZCog
aW5JbnB1dERhdGFQcm9jVXNlckRhdGEsIFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwg
QXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0
aW9uKiBvdXRQYWNrZXREZXNjcmlwdGlvbiksIChpbkF1ZGlvQ29udmVydGVyLCBpbklucHV0RGF0
YVByb2MsIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRTaXplLCBv
dXRPdXRwdXREYXRhLCBvdXRQYWNrZXREZXNjcmlwdGlvbikpCisjZGVmaW5lIEF1ZGlvQ29udmVy
dGVyRmlsbENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVy
RmlsbENvbXBsZXhCdWZmZXIKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVk
aW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kp
LCAoY2kpKQorI2RlZmluZSBBdWRpb091dHB1dFVuaXRTdGFydCBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9PdXRwdXRVbml0U3RhcnQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBjaSksIChjaSkpCisjZGVmaW5lIEF1ZGlvT3V0cHV0VW5pdFN0b3Agc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvT3V0cHV0VW5pdFN0b3AKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSwgT1NTdGF0
dXMsIChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAoaW5JbnN0YW5jZSkpCisj
ZGVmaW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUsIE9TU3RhdHVz
LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXROYW1lKSwgKGlu
Q29tcG9uZW50LCBvdXROYW1lKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRDb3B5TmFtZSBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRDb3B5TmFtZQorCiBTT0ZUX0xJTktfRlVO
Q1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29t
cG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0
QnVuZGxlUmVnaXN0cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSkKICNkZWZpbmUg
QXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExpbmtBdWRpb1Rvb2xi
b3hDb3JlQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMKIFNPRlRfTElOS19G
VU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9D
b21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGlu
QnVuZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2RlZmluZSBB
dWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlvVG9vbGJv
eENvcmVBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucwogCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9T
U3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQorI2RlZmlu
ZSBBdWRpb0ZpbGVDbG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxlQ2xvc2UKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVP
cGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkKiBpbkNsaWVudERhdGEsIEF1ZGlvRmls
ZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBB
dWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9j
IGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxl
SUQqIG91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5j
LCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9G
aWxlKSkKKyNkZWZpbmUgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mgc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9zZSwgT1NTdGF0dXMs
IChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRpb0ZpbGUpKQorI2Rl
ZmluZSBFeHRBdWRpb0ZpbGVEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0Zp
bGVEaXNwb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgRXh0QXVkaW9GaWxlR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGlu
RXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMy
KiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlv
RmlsZSwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkp
CisjZGVmaW5lIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9F
eHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxl
UmVmIGluRXh0QXVkaW9GaWxlLCBVSW50MzIqIGlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxp
c3QqIGlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCisj
ZGVmaW5lIEV4dEF1ZGlvRmlsZVJlYWQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmls
ZVJlYWQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBF
eHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRB
dWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Q
cm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlv
RmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkK
KyNkZWZpbmUgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4
dEF1ZGlvRmlsZVNldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywgKEF1
ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxlUmVm
KiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVkaW9G
aWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEIHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9FeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1
cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChp
blVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlT3BlblVSTCBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlT3BlblVSTAorCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4dCwg
QXVkaW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVkaW9D
b21wb25lbnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQorI2Rl
ZmluZSBBdWRpb0NvbXBvbmVudEZpbmROZXh0IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0Nv
bXBvbmVudEZpbmROZXh0CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBv
bmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0SW5zdGFuY2UpLCAo
aW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRJbnN0YW5j
ZU5ldyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldworU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdl
dFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5
SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1l
bnQsIHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGlu
U2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5p
dEdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRHZXRQcm9wZXJ0eQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5p
dEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorI2Rl
ZmluZSBBdWRpb1VuaXRJbml0aWFsaXplIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRJ
bml0aWFsaXplCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVk
aW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRF
bGVtZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSks
IChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkK
KyNkZWZpbmUgQXVkaW9Vbml0U2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
VW5pdFNldFByb3BlcnR5CisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAppbmRleCBjMTQzOTJi
YTJjOTE0MmQ1MWI0NzRlN2QyNDQ4MGI5NzE5ZjhhNGM2Li5kZjk4N2NmNzgwZjlkNDllOGQ1MGUx
YWVhM2Y2YTlkY2IwZGE0MDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Tb2Z0
TGlua2luZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NN
QnVmZmVyUXVldWUuaD4KICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAjZW5kaWYK
IApAQCAtNDcsNiArNDgsOCBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNvcHlEYXRh
Qnl0ZXMsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVTb3VyY2VCdWZmZXIsIHNpemVf
dCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCB2b2lkKiBkZXN0aW5hdGlvbiksICh0
aGVTb3VyY2VCdWZmZXIsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZGVzdGluYXRpb24pLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2Nr
QnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tC
dWZmZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVz
LCBDTUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rl
c3RpbmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25C
dWZmZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJS
ZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdl
dERhdGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyLCBzaXpl
X3Qgb2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXplX3QqIHRvdGFsTGVuZ3Ro
T3V0LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBvZmZzZXQsIGxlbmd0aEF0
T2Zmc2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZv
cm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAodm9pZCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCkBAIC0xMDQsOSArMTA3LDkgQEAgU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9y
bWF0RGVzY3JpcHRpb25HZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENl
bnRlciwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlv
bkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNh
bGxiYWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9i
amVjdCwgVUludDMyIGZsYWdzKSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmlj
YXRpb24sIG9iamVjdCwgZmxhZ3MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVy
UmVtb3ZlTGlzdGVuZXIsIE9TU3RhdHVzLCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVy
LCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywg
Q0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBs
aXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0KSwgUEFMX0VYUE9SVCkKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxl
QnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAq
bWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlw
dGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5n
RW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01J
dGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFy
cmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIs
IGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBm
b3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2Ft
cGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNC
dWZPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2Ft
cGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0
KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3Jp
Z2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNh
bXBsZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1
ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJp
ZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJs
b2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZl
ck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VE
YXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24s
IENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJp
ZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNv
dW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwg
Q01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRh
UmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0
RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRp
bWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0
KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1
ZmZlclJlZiogc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCksIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFs
U0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVU
aW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZDb3B5
T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBz
YW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyog
c2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGlt
YWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwg
Qm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1h
a2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWlu
Z0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCks
IChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFj
aywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywg
c2FtcGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRp
bWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VY
UE9SVCkKQEAgLTExNiwxNCArMTE5LDE0IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFByZXNlCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbiwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNl
bnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVm
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXks
IENGQXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVj
ZXNzYXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5n
SW5mbyAqdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVk
ZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5n
QXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBD
TUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5n
QXJyYXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1
ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVz
TmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENN
VGltZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0
aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXIsIE9T
U3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01CbG9ja0J1ZmZlclJlZiBidWZmZXIp
LCAoc2J1ZiwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUdldEF0dGFjaG1lbnQsIENGVHlwZVJl
ZiwgKENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ01BdHRh
Y2htZW50TW9kZSogYXR0YWNobWVudE1vZGVPdXQpLCAodGFyZ2V0LCBrZXksIGF0dGFjaG1lbnRN
b2RlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1l
bnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENGVHlwZVJlZiB2YWx1ZSwgQ01B
dHRhY2htZW50TW9kZSBhdHRhY2htZW50TW9kZSksICh0YXJnZXQsIGtleSwgdmFsdWUsIGF0dGFj
aG1lbnRNb2RlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZvaWQsIChDTUF0
dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFyZ2V0LCBrZXkp
LCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRp
bWViYXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFz
ZU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ss
IENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRp
bWViYXNlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01U
aW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFz
ZUdldFJhdGUsIEZsb2F0NjQsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0UmF0ZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVm
IHRpbWViYXNlLCBGbG9hdDY0IHJhdGUpLCAodGltZWJhc2UsIHJhdGUpLCBQQUxfRVhQT1JUKQpA
QCAtMTQ0LDExICsxNDcsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVEZXF1ZXVlQW4KIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1
ZXVlRW5xdWV1ZSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclJl
ZiBidWZmZXIpLCAocXVldWUsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUlz
RW1wdHksIEJvb2xlYW4sIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlbUNvdW50LCAoQ01CdWZm
ZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdl
dENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFj
a3MgKiwgKCksICgpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JV
bnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiwgKCksICgpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwg
Q01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZm
ZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUlu
c3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVy
UXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1
ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRy
aWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBj
b25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZm
ZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2Fs
bGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9u
IHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVy
UXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxi
YWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0
cmlnZ2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRh
LCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JU
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQnVmZmVyUXVldWVHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBx
dWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rv
Tm90RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVu
dEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE2OCw0MCArMTczLDQy
IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9F
ZmZlY3RpdmVSYXRlQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJh
c2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYg
ZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRT
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24q
LCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaywgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1lbW9yeUJsb2NrLCBzaXplX3QgYmxv
Y2tMZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2NhdG9yLCBjb25zdCBDTUJsb2NrQnVm
ZmVyQ3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291cmNlLCBzaXplX3Qgb2Zmc2V0VG9E
YXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZlckZsYWdzIGZsYWdzLCBDTUJsb2Nr
QnVmZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1cmVBbGxvY2F0b3IsIG1lbW9yeUJs
b2NrLCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1c3RvbUJsb2NrU291cmNlLCBvZmZz
ZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQp
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZl
ciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RT
aXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZm
ZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0
b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJS
ZWYgKmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZm
ZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9y
eUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1
cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRP
dXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXpl
LCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVm
TWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tC
dWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQs
IGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9y
LCBmbGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0
TnVtU2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgQ0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQs
IENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJh
eUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9F
WFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9u
cywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYg
ZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFk
eUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNv
biwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3Jp
cHRpb24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAo
YWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywg
bWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQ
VFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFs
bG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJi
dWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9v
bGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01U
aW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERl
c2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRh
QnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJl
ZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2Ny
aXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHBy
ZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiog
cGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwg
KGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHBy
ZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQp
LCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVm
ZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJl
ZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9y
LCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0KSwgKHNi
dWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZm
ZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlv
blRpbWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVRpbWUgb3V0
cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNidWYsIG91dHB1dFByZXNlbnRhdGlvblRpbWVT
dGFtcCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVz
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0Fy
cmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1w
bGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2Nh
dG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBz
YW1wbGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0
U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tp
ZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9u
cywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNi
ZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRl
bnNpb25zLCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25H
ZXRNYWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYg
ZGVzYywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQT1JUKQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1
ZGlvRm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwg
KGRlc2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3RE
ZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0qLCAoQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhv
c3RUaW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9j
a0dldFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzLCB1aW50NjRfdCwgKENNVGlt
ZSBob3N0VGltZSksIChob3N0VGltZSksIFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNh
bGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3Rh
dHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoIENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZv
aWQgKnJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRs
ZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlciksIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VT
Q0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3Vu
dCBpbmRleCwgdm9pZCogcmVmY29uKSwgdm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCBy
ZWZjb24pLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBs
ZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNNU0FNUExF
QlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291
bnQpKSwgKHNidWYsIGhhbmRsZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERl
c2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJp
bmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX3NSR0IsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9j
a091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tD
cmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBj
bG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhp
bXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01U
aW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250
YWluc1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFu
Z2UsIHRpbWUpLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSwgUEFM
X0VYUE9SVCkKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaWYgUExBVEZPUk0o
TUFDKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQp
LCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
RGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
RlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwg
ZGV2aWNlVUlELCBjbG9ja091dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZl
ZFN0b3JhZ2UsIHZvaWQqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVj
dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFi
bGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgY29uc3QgQ01CYXNlVlRhYmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJ
RCwgQ01CYXNlT2JqZWN0UmVmKiBiYXNlT2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFz
c0lELCBiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaAppbmRleCA3NTI1YjkxOWM2OTVkMzYwOTdiMTExMDMyYjk0
Zjc0N2YxNTFmMWYwLi45OGNjYjc5YWE0ZDkzZTU4M2ZlNTYzNTdhNjE5Y2I4MTdiZTBjYzY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC01
MSw2ICs1MSwxMCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdAogI2RlZmluZSBDTUJsb2NrQnVm
ZmVyR2V0RGF0YUxlbmd0aCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VC
eXRlcywgQ01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldElu
dG9EZXN0aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0
aW9uQnVmZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpKQogI2RlZmluZSBD
TUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1
ZmZlclJlcGxhY2VEYXRhQnl0ZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01C
bG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSkKKyNkZWZpbmUgQ01CbG9ja0J1
ZmZlckFzc3VyZUJsb2NrTWVtb3J5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQXNz
dXJlQmxvY2tNZW1vcnkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZl
clJlZiB0aGVCdWZmZXIsIHNpemVfdCBvZmZzZXQsIHNpemVfdCogbGVuZ3RoQXRPZmZzZXRPdXQs
IHNpemVfdCogdG90YWxMZW5ndGhPdXQsIGNoYXIqKiBkYXRhUG9pbnRlck91dCksICh0aGVCdWZm
ZXIsIG9mZnNldCwgbGVuZ3RoQXRPZmZzZXRPdXQsIHRvdGFsTGVuZ3RoT3V0LCBkYXRhUG9pbnRl
ck91dCkpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMs
IENGRGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkK
ICNkZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMgc29mdExpbmtfQ29yZU1l
ZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlw
ZUlELCAodm9pZCksICgpKQpAQCAtNjMsNiArNjcsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
LAogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8gc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbwogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHks
IEJvb2xlYW4sIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNh
bXBsZUJ1ZmZlckRhdGFJc1JlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckRh
dGFJc1JlYWR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVU
aW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVf
dCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwg
KGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51
bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50
cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01U
aW1lQ29udmVydFNjYWxlLCBDTVRpbWUsIChDTVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2Nh
bGUsIENNVGltZVJvdW5kaW5nTWV0aG9kIG1ldGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1l
dGhvZCkpCiAjZGVmaW5lIENNVGltZUNvbnZlcnRTY2FsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01U
aW1lQ29udmVydFNjYWxlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01UaW1lQWRkLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0
aW1lMSwgdGltZTIpKQpAQCAtODcsMjkgKzkzLDI5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUVxdWFsLCBCb29sZWFuLCAoQ01UaW1l
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcywgQ0ZT
dHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURl
c2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zKCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1Az
IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVz
Y3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0
aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9S
XzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lv
bl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNf
RDY1LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9r
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJp
bWFyaWVzX1AzX0Q2NSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJp
ZXNfUDNfRDY1IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmll
c19QM19ENjUoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VW
aWRlbygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZp
ZGVvIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdl
VmlkZW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
SVRVX1JfMjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAw
X0hMRywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9u
X2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCisjZGVmaW5lIGtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9r
Q01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKKyNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1Rf
MjA4NF9QUSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9T
TVBURV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9T
TVBURV9TVF80MjhfMSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9u
RXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80
MjhfMSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgpCisjZGVmaW5lIGtD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80Mjhf
MSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9y
bWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JD
ck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKKyNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVk
aWFfa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKIFNPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3Ry
aW5nUmVmKQogI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRD
b250ZW50T3JpZ2luYWxGb3JtYXQgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQoKQogU09GVF9MSU5LX0NPTlNU
QU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X3NSR0IgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpCisjZGVmaW5lIGtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCwgQ0ZT
dHJpbmdSZWYpCiAjZGVmaW5lIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCBnZXRfQ29y
ZU1lZGlhX2tDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCgpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVf
TWlkZGxlLCBDRlN0cmluZ1JlZikKQEAgLTE1MSw3ICsxNTcsNyBAQCBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0
VG9MZWZ0LAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TVRpbWVJbnZhbGlkLCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVJbnZhbGlkIGdldF9Db3JlTWVk
aWFfa0NNVGltZUludmFsaWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVaZXJvIFBBTDo6
Z2V0X0NvcmVNZWRpYV9rQ01UaW1lWmVybygpCisjZGVmaW5lIGtDTVRpbWVaZXJvIGdldF9Db3Jl
TWVkaWFfa0NNVGltZVplcm8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5LCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRp
bWVQb3NpdGl2ZUluZmluaXR5IGdldF9Db3JlTWVkaWFfa0NNVGltZVBvc2l0aXZlSW5maW5pdHko
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVS
YW5nZUludmFsaWQsIENNVGltZVJhbmdlKTsKQEAgLTE2OSwxMyArMTc1LDEzIEBAIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRl
ckFkZExpc3RlbmVyLCBPCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIg
c29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNl
bnRlclJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNl
bnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJh
Y2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0KSwgKGNlbnRl
ciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCkpCiAjZGVmaW5lIENN
Tm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90
aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVt
Q291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpz
YW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0
IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChh
bGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBt
YWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2Ft
cGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVz
LCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFu
IGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNh
bXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qg
c2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1h
a2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMs
IHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRl
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNi
dWZDb3B5T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2J1ZkNv
cHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyQ3JlYXRlQ29weSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVU
aW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwg
b3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwg
c0J1ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENN
SXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5m
byogc2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChh
bGxvY2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGlt
aW5nQXJyYXksIHNCdWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2Ft
cGxlVGltaW5nSW5mbyAqc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCks
IChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5n
LCBzQnVmT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAo
YWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywg
c0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZm
ZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVh
ZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxs
YmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRp
bWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGlt
YWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFk
eVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2FtcGxlQnVmZmVyT3V0
KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlcgpAQCAtMTkzLDcgKzE5
OSw3IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0
T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVu
dHNBcnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3Jl
YXRlSWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZOZWNlc3NhcnkpKQogI2RlZmluZSBDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50
IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwg
Q01JdGVtQ291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdB
cnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJ
bmZvKiB0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRl
ZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdB
cnJheUVudHJpZXNOZWVkZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNh
bXBsZVNpemUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVT
aXplCkBAIC0yMDUsNyArMjExLDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWUKICNkZWZpbmUg
Q01TZXRBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNldEF0dGFjaG1lbnQKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1l
bnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkp
LCAodGFyZ2V0LCBrZXkpKQogI2RlZmluZSBDTVJlbW92ZUF0dGFjaG1lbnQgc29mdExpbmtfQ29y
ZU1lZGlhX0NNUmVtb3ZlQXR0YWNobWVudAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRp
bWViYXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFz
ZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01U
aW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNl
T3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKICNkZWZpbmUgQ01U
aW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFz
ZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRp
bWViYXNlKSwgKHRpbWViYXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdldFRpbWUgc29mdExpbmtf
Q29yZU1lZGlhX0NNVGltZWJhc2VHZXRUaW1lCkBAIC0yMjcsNyArMjMzLDcgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lckRp
c3BhdGNoU291cmNlVG8KICNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VU
b0ZpcmVJbW1lZGlhdGVseSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlz
cGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvcHlBc0RpY3Rpb25hcnksIENGRGljdGlvbmFyeVJl
ZiwgKENNVGltZSB0aW1lLCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAodGltZSwgYWxsb2Nh
dG9yKSkKICNkZWZpbmUgQ01UaW1lQ29weUFzRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01UaW1lQ29weUFzRGljdGlvbmFyeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVy
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBp
bWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmICpvdXREZXNjKSwgKGFsbG9j
YXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdl
QnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZl
clJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwg
KGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRE
aW1lbnNpb25zLCBDTVZpZGVvRGltZW5zaW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiB2aWRlb0Rlc2MpLCAodmlkZW9EZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uR2V0RGltZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uR2V0RGltZW5zaW9ucwpAQCAtMjQ5LDE1ICsyNTUsMTggQEAgU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwg
Q01JdGUKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50IHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25U
aW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2Rl
ZmluZSBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtf
Q29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcAotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVH
ZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJh
Y2tzICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBj
b25zdCBDTUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdl
dENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycyBzb2Z0TGlua19Db3JlTWVkaWFfQ01C
dWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycwogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQ
cmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAo
cXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1w
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0
YW1wCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZm
ZXJRdWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUs
IENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01C
dWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZm
ZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywg
cmVmY29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCkpCisjZGVmaW5lIENNQnVm
ZmVyUXVldWVJbnN0YWxsVHJpZ2dlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUlu
c3RhbGxUcmlnZ2VyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3Rh
dHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFj
ayB0cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmln
Z2VyQ29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hv
bGQsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwg
dHJpZ2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2Vy
VGhyZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFs
bFRyaWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwg
T1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01C
dWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVN
YXJrRW5kT2ZEYXRhCi0KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYg
cXVldWUpLCAocXVldWUpKQorI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24gc29mdExp
bmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXREdXJhdGlvbgogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3RE
aXNwbGF5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05v
dERpc3BsYXkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxh
eSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2Ft
cGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZikKQEAgLTI5NSw0NiArMzA0LDQ4
IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29y
ZU1lZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tp
ZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6ZV90
KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25HZXRNYWdpY0Nvb2tpZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0TWFnaWNDb29raWUKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2lj
RGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFf
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbgogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDcmVh
dGVXaXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0dXJlQWxs
b2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFsbG9jYXRv
clJlZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNl
KiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5n
dGgsIENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZm
ZXJPdXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5ndGgsIGJs
b2NrQWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3Ro
LCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2RlZmluZSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1l
bW9yeUJsb2NrCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXpl
TmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJM
aXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYg
KmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJM
aXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdp
dGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVy
TGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0
QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBm
bGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlz
dFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0
QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQog
I2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2Nr
QnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlz
dFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0ZW1Db3VudCwg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVy
R2V0TnVtU2FtcGxlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1w
bGVzCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9G
b3JtYXRMaXN0SXRlbSAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9G
b3JtYXRMaXN0SXRlbSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNj
KSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZv
cm1hdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVz
dERlY29kYWJsZUZvcm1hdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZSYW5n
ZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBz
YnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ29weVNh
bXBsZUJ1ZmZlckZvclJhbmdlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNvcHlT
YW1wbGVCdWZmZXJGb3JSYW5nZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVf
dCogc2l6ZUFycmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCks
IChzYnVmLCBzaXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNO
ZWVkZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkKIAotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZm
ZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFk
eSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZv
cm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywg
Y29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25zLCBD
TVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFS
ZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVm
T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9v
bGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01U
aW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERl
c2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRh
QnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJl
ZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2Ny
aXB0aW9ucywgc0J1Zk91dCkpCiAjZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRo
UGFja2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVy
Q3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1
ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRv
ciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChz
YnVmLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVm
ZmVyTGlzdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1
ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291
bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9T
dHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZl
clJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVz
Y3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3Jp
cHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRh
QnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBi
YnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0
KiBidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxv
Y2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRh
QnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBPU1N0
YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyU2V0RGF0YVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERh
dGFSZWFkeQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAp
LCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSkKKyNkZWZpbmUgQ01TYW1wbGVC
dWZmZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVk
aW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZv
aWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwg
bGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNj
KSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01DbG9j
a1JlZiwgKHZvaWQpLCAoKSkKLSNkZWZpbmUgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sgIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jaworI2RlZmluZSBDTUNsb2NrR2V0
SG9zdFRpbWVDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0
VGltZSwgQ01UaW1lLCAoQ01DbG9ja1JlZiBjbG9jayksIChjbG9jaykpCi0jZGVmaW5lIENNQ2xv
Y2tHZXRUaW1lICBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldFRpbWUKKyNkZWZpbmUgQ01D
bG9ja0dldFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0NvbnZlcnRIb3N0VGlt
ZVRvU3lzdGVtVW5pdHMsIHVpbnQ2NF90LCAoQ01UaW1lIGhvc3RUaW1lKSwgKGhvc3RUaW1lKSkK
ICNkZWZpbmUgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMgc29mdExpbmtfQ29y
ZU1lZGlhX0NNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzCiAKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JF
YWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgq
IENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVm
Y29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9T
U3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZF
UkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwg
Q01JdGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBj
YWxsYmFjaywgcmVmY29uKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBs
ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBPU1N0YXR1cyAoXiBDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1w
bGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9j
a0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0
dXMgKF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJS
ZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
ckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tP
dXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xv
Y2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpKQogI2RlZmluZSBDTUF1ZGlv
Q2xvY2tDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9DbG9ja0NyZWF0ZQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENN
VGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiAjZGVm
aW5lIENNVGltZU1heGltdW0gc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1heGltdW0KQEAgLTM0
NiwxOCArMzU3LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQog
I2RlZmluZSBrQ01UaW1lSW5kZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRl
KCkKIAotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KICNpZiBQTEFURk9STShNQUMp
CiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
RGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
RlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwg
ZGV2aWNlVUlELCBjbG9ja091dCkpCi0jZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSAg
c29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmlj
ZVVJRCwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2Nr
T3V0KSkKKyNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCosIChD
TUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkKLSNkZWZpbmUgQ01CYXNl
T2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2Jq
ZWN0R2V0RGVyaXZlZFN0b3JhZ2UKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3Jh
Z2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0
VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3Qp
LCAoYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9iamVjdEdldFZUYWJsZSBQQUw6OnNvZnRM
aW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKKyNkZWZpbmUgQ01CYXNlT2JqZWN0
R2V0VlRhYmxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRPYmplY3RD
cmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VW
VGFibGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIGJh
c2VPYmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3QpKQotI2Rl
ZmluZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJp
dmVkT2JqZWN0Q3JlYXRlCisjZGVmaW5lIENNRGVyaXZlZE9iamVjdENyZWF0ZSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGlu
ay5jcHAKaW5kZXggZjUxY2JiYjE2NjYzYjgxZWNlMjAxZThhZDU3MjVjMjUxMjFmNTZmYi4uNzJm
NDExNGVlYWFkZjYyMGNlMzcwMjMwOTk0NzY2YjQ4Yzc5NWIxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTM0LDEzICsz
NCwxOSBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBW
aWRlb1Rvb2xib3gsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQ
QUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1l
UmF0ZSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZp
ZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFs
RHVyYXRpb24sIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFM
LCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3Ry
aW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gs
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsIENGU3RyaW5nUmVmKQor
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKIAogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVvRW5jb2RlclNw
ZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgQ0ZTdHJp
bmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwg
a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxl
TGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFp
bl9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdo
dCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3Bl
Y2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywg
Q0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRw
dXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZU
Q29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9y
LCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJ
bWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxs
YmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJl
ZiBzZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChz
ZXNzaW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lv
bkVuY29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24s
IENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3Rh
bXAsIENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGllcywgdm9p
ZCogc291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAo
c2Vzc2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24sIGZy
YW1lUHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24sIGluZm9GbGFnc091dCkpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNl
c3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Np
b25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUsIHZvaWQs
IChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9v
bGJveCwgVlRSZXN0cmljdFZpZGVvRGVjb2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJS
ZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25GbGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxs
b3dlZENvZGVjVHlwZUxpc3QsIENNSXRlbUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChy
ZXN0cmljdGlvbkZsYWdzLCBhbGxvd2VkQ29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNv
dW50KSwgUEFMX0VYUE9SVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
Zi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRl
b1Rvb2xib3hTb2Z0TGluay5oCmluZGV4IGVjMGZmMDFjYzFmZTFhMjEwNmNjN2E3ZjAyZThjODRi
N2RkMGRhODQuLjYwYThmZjM3NDJkNDk2MTA3YjE0ZmFjN2M0MTM3M2FiYzZkNjk0YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAg
LTM3LDkgKzM3LDIwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtlCiAjZGVmaW5lIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uIGdldF9WaWRlb1Rv
b2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRp
b24oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQogI2RlZmluZSBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hF
QURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdl
Qml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlf
QXZlcmFnZUJpdFJhdGUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X0F2ZXJhZ2VCaXRSYXRlKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlk
ZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJp
bmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsIGdl
dF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwoKQog
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlk
ZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNv
ZGVyLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9F
bmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZU
VmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9F
bmNvZGVyKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94
LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQor
I2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwgZ2V0X1ZpZGVv
VG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwoKQorU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZl
bF9IMjY0X0hpZ2hfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxl
dmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxf
SDI2NF9IaWdoX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3Ry
aW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCBnZXRf
VmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsKCkKKwogCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVz
c2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBp
bnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUs
IENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNv
dXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFB
bGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9p
ZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVz
c2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVu
Y29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNz
ZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNv
bXByZXNzaW9uU2Vzc2lvbk91dCkpCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRl
IHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZQpAQCAtNDks
NiArNjAsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJv
eCwgVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZQogI2RlZmluZSBWVENvbXByZXNzaW9u
U2Vzc2lvbkVuY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vz
c2lvbkVuY29kZUZyYW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVv
VG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3Rh
dHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKICNkZWZp
bmUgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgc29mdExpbmtfVmlk
ZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25JbnZhbGlkYXRlLCB2b2lkLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lv
biksIChzZXNzaW9uKSkKKyNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlIHNv
ZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUKIAogU09G
VF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZU
UmVzdHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlkZW9EZWNvZGVyUmVzdHJpY3Rp
b25zIHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2RlY1R5cGUqIGFsbG93ZWRDb2Rl
Y1R5cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCAocmVzdHJpY3Rp
b25GbGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRDb2RlY1R5cGVDb3VudCkpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29m
dExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0
TGluay5jcHAKaW5kZXggNjc0ZTY0OTRhMGE4YjU5NjkwM2UzY2E1Y2ZiNmEyM2RkYWMzNjM4Yy4u
ZDQ0NDkzMWVmZDhhZTU1NjBiOGMxYjI3ZjIyYWQ5MmU3OTM0ODVlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKQEAg
LTQxLDYgKzQxLDEwIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91CiAKIFNPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBr
TVRTdXBwb3J0Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQsIENGU3RyaW5n
UmVmLCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1l
ZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVk
aW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVk
aW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBu
dW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01J
dGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZyYW1lcywgYnVmZmVyTGlz
dEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRv
b2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxi
YWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFw
T3V0KSwgUEFMX0VYUE9SVCkKKwogI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCiAK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29s
Ym94LCBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYs
IFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01l
ZGlhVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlh
VG9vbGJveFNvZnRMaW5rLmgKaW5kZXggYzdkZTAyY2U2M2MyYzMwMGQ5NjU0ZjY2NzBiZmMxMjUw
MjI5MzQ0ZS4uMjU1YTc2N2I1NWVlZjRlOGVlZDE5ZGVmMjk3MTc4NDkwYmU5M2YxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsu
aApAQCAtNDEsNiArNDEsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UX0dldFNob3VsZFBsYXlIRFJWaWQKIAogU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBv
cnROb3RpZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYpCiAK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYg
dGFwKSwgKHRhcCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSBzb2Z0
TGlua19NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3Np
bmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0
YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0
SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAq
dGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVy
RnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZy
YW1lc091dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8gc29m
dExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8KK1NP
RlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBN
VEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzKiBjYWxsYmFja3MsIE1U
QXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91dCkpCisj
ZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlIHNvZnRMaW5rX01lZGlhVG9vbGJveF9N
VEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZQorCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JF
QURFUikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gs
IGtNVFBsdWdpbkZvcm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDU1MjRlZWM1NTg3ZDFlOTE3MGVmOWYxNDkyY2MwN2Rl
MjVjODBlYzcuLmM1NjJiZTc2MzVlYTZhMTU4NDA4MzNhYmMyZTE5MTAxMGNjMzE3NmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzUwLDcgKzM1MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEb2N1bWVudCk7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdU
Rjo6VW5pY29kZTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRl
cHRoID0gMjE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4
IDlmNTU2MDgwMmJhYzMyYmI0OTllYzk3YzliMGFlMzJlMTFjNjIxYzcuLjg1MGNkZTcyNzBmMGQ2
MWRjMjU0NDljMWRhODlhNDlhMWFmNDM2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTENhbnZhc0VsZW1lbnQpOwogCi11c2lu
ZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogLy8gVGhlc2Ug
dmFsdWVzIGNvbWUgZnJvbSB0aGUgV2hhdFdHL1czQyBIVE1MIHNwZWMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlMDUxNmE0YWYyNWQyYjVhNGQ0OTRjZTQz
NTA5Njg0MTQxYjY3ZDllLi42YWMyZGZiOWRkNjRmMGYzZmMwZDBlZjVmYzUxMTU5MWQyNWYwYmFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE5MCw4ICsx
OTAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChIVE1MTWVkaWFFbGVtZW50KTsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIGNv
bnN0IFNlY29uZHMgU2Vla1JlcGVhdERlbGF5IHsgMTAwX21zIH07CiBzdGF0aWMgY29uc3QgZG91
YmxlIFNlZWtUaW1lID0gMC4yOwogc3RhdGljIGNvbnN0IFNlY29uZHMgU2NhblJlcGVhdERlbGF5
IHsgMS41X3MgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcAppbmRleCBmZDNkM2UwM2EwM2YwODEw
NTIxMjg2YmQwMjZhOTEwMTExZDNjYzg0Li41ZDU2YjllZTFhMGQzZDY3YTc5YzMwNzYxZDEzODE1
ZDdjMDY0NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCkBAIC0zNiwyNSArMzYsMTMgQEAK
ICNpbmNsdWRlICJBdWRpb0ZpbGVSZWFkZXIuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24u
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVk
QXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4K
KyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYv
Q2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW5jbHVk
ZSA8d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29sYm94
KQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVk
aW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9v
bGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCAqaW5DbGll
bnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJv
YyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlv
RmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlw
ZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRG
dW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlw
ZUhpbnQsIG91dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0Zp
bGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChp
bkV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1
ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6
ZSwgdm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQs
IGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0
QXVkaW9GaWxlLCBVSW50MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0
YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCi1TT0ZUX0xJTkso
QXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRp
b0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0
eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0
YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGlu
UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZv
cldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBp
bkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBF
eHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0Zp
bGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gQXVk
aW9CdWZmZXJMaXN0KiB0cnlDcmVhdGVBdWRpb0J1ZmZlckxpc3Qoc2l6ZV90IG51bWJlck9mQnVm
ZmVycykKQEAgLTEwMywyMiArOTEsMjIgQEAgQXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFk
ZXIoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQogICAgIDogbV9kYXRhKGRhdGEp
CiAgICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewotICAgIGlmIChBdWRpb0ZpbGVPcGVuV2l0
aENhbGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlv
RmlsZUlEKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNr
cyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmlsZUlEKSAh
PSBub0VycikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEV4dEF1ZGlvRmlsZVdyYXBBdWRp
b0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0QXVkaW9GaWxlUmVmKSAhPSBub0Vy
cikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQobV9hdWRpb0ZpbGVJ
RCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIpCiAgICAgICAgIG1fZXh0QXVk
aW9GaWxlUmVmID0gMDsKIH0KIAogQXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKCkK
IHsKICAgICBpZiAobV9leHRBdWRpb0ZpbGVSZWYpCi0gICAgICAgIEV4dEF1ZGlvRmlsZURpc3Bv
c2UobV9leHRBdWRpb0ZpbGVSZWYpOworICAgICAgICBQQUw6OkV4dEF1ZGlvRmlsZURpc3Bvc2Uo
bV9leHRBdWRpb0ZpbGVSZWYpOwogCiAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwogCiAgICAg
aWYgKG1fYXVkaW9GaWxlSUQpCi0gICAgICAgIEF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQp
OworICAgICAgICBQQUw6OkF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwogCiAgICAgbV9h
dWRpb0ZpbGVJRCA9IDA7CiB9CkBAIC0xNTUsNyArMTQzLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBB
dWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9u
bykKIAogICAgIC8vIEdldCBmaWxlJ3MgZGF0YSBmb3JtYXQKICAgICBVSW50MzIgc2l6ZSA9IHNp
emVvZihtX2ZpbGVEYXRhRm9ybWF0KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHko
bV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlRGF0YUZvcm1hdCwg
JnNpemUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRp
b0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5
X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQpICE9IG5vRXJyKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzID0gbV9m
aWxlRGF0YUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKQEAgLTE2Myw3ICsxNTEsNyBAQCBSZWZQ
dHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUs
IGJvb2wgbWl4VG9Nb25vKQogICAgIC8vIE51bWJlciBvZiBmcmFtZXMKICAgICBTSW50NjQgbnVt
YmVyT2ZGcmFtZXM2NCA9IDA7CiAgICAgc2l6ZSA9IHNpemVvZihudW1iZXJPZkZyYW1lczY0KTsK
LSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRB
dWRpb0ZpbGVQcm9wZXJ0eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVz
NjQpICE9IG5vRXJyIHx8IG51bWJlck9mRnJhbWVzNjQgPD0gMCkKKyAgICBpZiAoUEFMOjpFeHRB
dWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3Bl
cnR5X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIg
fHwgbnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IGRvdWJsZSBmaWxlU2FtcGxlUmF0ZSA9IG1fZmlsZURhdGFGb3JtYXQubVNhbXBsZVJhdGU7CkBA
IC0xODUsNyArMTczLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0
ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKICAgICBpZiAoc2FtcGxlUmF0
ZSkKICAgICAgICAgbV9jbGllbnREYXRhRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsK
IAotICAgIGlmIChFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4
dEF1ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAo
UEFMOjpFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlv
RmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICAvLyBDaGFuZ2UgbnVtYmVyT2ZGcmFtZXM2NCB0byBkZXN0aW5hdGlv
biBzYW1wbGUtcmF0ZQpAQCAtMjQzLDcgKzIzMSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9G
aWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAK
ICAgICAvLyBSZWFkIGZyb20gdGhlIGZpbGUgKG9yIGluLW1lbW9yeSB2ZXJzaW9uKQogICAgIFVJ
bnQzMiBmcmFtZXNUb1JlYWQgPSBudW1iZXJPZkZyYW1lczsKLSAgICBpZiAoRXh0QXVkaW9GaWxl
UmVhZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZyYW1lc1RvUmVhZCwgYnVmZmVyTGlzdCkgIT0gbm9F
cnIpIHsKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAm
ZnJhbWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgewogICAgICAgICBkZXN0cm95QXVk
aW9CdWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Zp
bGVSZWFkZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9GaWxlUmVhZGVyQ29jb2EuaAppbmRleCBiN2I5MTYzYjU2ZTI2YzI5Y2FiODRlZTI0NzY5ZTI5
NzE0MTdhZmZjLi4wYmJiYmEyNzg1N2Q5NzllY2M2ODhmODdmMDMzOWY2NjVlZjQyNTI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFk
ZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RmlsZVJlYWRlckNvY29hLmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiAjaWYgRU5BQkxFKFdFQl9B
VURJTykKIAotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KLSNpbmNsdWRlIDxB
dWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29y
ZUF1ZGlvVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK3VzaW5nIEV4dEF1ZGlv
RmlsZVJlZiA9IHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqOwordXNpbmcgQXVkaW9GaWxlSUQg
PSBzdHJ1Y3QgT3BhcXVlQXVkaW9GaWxlSUQqOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEF1ZGlvQnVzOwpAQCAtNTgsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHZvaWQq
IG1fZGF0YSA9IHsgbnVsbHB0ciB9OwogICAgIHNpemVfdCBtX2RhdGFTaXplID0geyAwIH07CiAK
LSAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0geyAwIH07CisgICAgQXVkaW9GaWxlSUQg
bV9hdWRpb0ZpbGVJRCA9IHsgbnVsbHB0ciB9OwogICAgIEV4dEF1ZGlvRmlsZVJlZiBtX2V4dEF1
ZGlvRmlsZVJlZiA9IHsgbnVsbHB0ciB9OwogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uIG1fZmlsZURhdGFGb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCmluZGV4IDQ3
ODc1MDcyYTc4NmVkNjg2YzFkNDAxZTgyZTYyNTljYTIzYzU0YjYuLjE0OGIwNTVkYmVjODk0M2Vh
NWFhYzY4ZTY4NThkZTdkMGI4MjMxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSA8cGFs
L2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVk
aW9PdXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5k
ZXJlciYgcmVuZGVyZXIpCkBAIC0zOSwxMiArNDEsMTIgQEAgQXVkaW9PdXRwdXRVbml0QWRhcHRv
cjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCiBB
dWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcigpCiB7CiAgICAg
aWYgKG1fb3V0cHV0VW5pdCkKLSAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2Uo
bV9vdXRwdXRVbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9z
ZShtX291dHB1dFVuaXQpOwogfQogCiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpz
dGFydCgpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1
dFVuaXQpOworICAgIGF1dG8gcmVzdWx0ID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX291
dHB1dFVuaXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCiAgICAgICAgIFdURkxvZ0Fsd2F5
cygiRVJST1I6IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KCkgY2FsbCBmYWlsZWQgd2l0aCBlcnJvciBj
b2RlOiAlbGQiLCBzdGF0aWNfY2FzdDxsb25nPihyZXN1bHQpKTsKICAgICByZXR1cm4gcmVzdWx0
OwpAQCAtNTIsNyArNTQsNyBAQCBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFy
dCgpCiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3AoKQogewotICAgIHJl
dHVybiBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgcmV0dXJuIFBBTDo6
QXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOwogfQogCiAvLyBEZWZhdWx0T3V0cHV0
VW5pdCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKaW5kZXggZmRmNjc3NTdkMWI0
Nzc2MDgwOGIxM2ZiNDM0ZTQwYjNkZmQzMGUwNC4uNGU5MDY0ZDBjNmU5MzA4OWFlMGVhYTZmOTk4
ZWNkNjUzNzM1ZDFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxl
cmF0ZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgorI2luY2x1
ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JT
Y29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzIsNyArMjczLDcgQEAgT1NTdGF0
dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3Qm
IHNvdXJjZSwgc2l6ZV90IGYKIAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBpbnB1
dEZvcm1hdDsKICAgICBVSW50MzIgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihpbnB1dEZvcm1h
dCk7Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlu
cHV0Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVy
LCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5
RGF0YVNpemUsICZpbnB1dEZvcm1hdCk7CiAgICAgQVNTRVJUKGZyYW1lQ291bnQgPD0gc291cmNl
Lm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQp
OwogCiAgICAgQXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ29udGV4dCBjb250ZXh0IHsgc291cmNlLCBm
cmFtZUNvdW50LCBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgfTsKQEAgLTI4MCw3ICsyODEs
NyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlv
QnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2lmICFMT0dfRElTQUJMRUQKICAgICBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0Rm9ybWF0OwogICAgIHByb3BlcnR5RGF0YVNp
emUgPSBzaXplb2Yob3V0cHV0Rm9ybWF0KTsKLSAgICBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9u
LCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CisgICAgUEFMOjpBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0
cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CiAKICAg
ICBBU1NFUlQoQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG91dHB1dEZvcm1hdCkubnVtYmVyT2ZD
aGFubmVsU3RyZWFtcygpID09IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKSk7CiAgICAgZm9y
ICh1aW50MzJfdCBpID0gMDsgaSA8IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKTsgKytpKSB7
CkBAIC0yOTAsNyArMjkxLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5
RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNlbmRpZgogCiAg
ICAgVUludDMyIHNhbXBsZXNDb252ZXJ0ZWQgPSBtX3NhbXBsZUNhcGFjaXR5OwotICAgIE9TU3Rh
dHVzIGVyciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRp
b0NvbnZlcnRlckZyb21BQkxDYWxsYmFjaywgJmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBt
X2J1ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0cik7CisgICAgT1NTdGF0dXMgZXJyID0gUEFMOjpB
dWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJG
cm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0
LT5saXN0KCksIG51bGxwdHIpOwogICAgIGlmICghZXJyIHx8IGVyciA9PSBrUmFuT3V0T2ZJbnB1
dERhdGFTdGF0dXMpIHsKICAgICAgICAgbV9zYW1wbGVDb3VudCA9IHNhbXBsZXNDb252ZXJ0ZWQ7
CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IGU1ZWM0Nzc3
ODU4MWE3YWNmMGU3MjU1MzMzZjllMjY5NDFjNDcyZDEuLmQyYjVhYzQ1ZjMwZmQ0YTNhZjUxYjQy
MGRlMzc2NDliMTE1MWMyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTQyLDcgKzQy
LDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUo
c2l6ZV90IG1heGltdW1TYW1wbGVDb3VudCwgTG9nZ2VySGVscGVyJiBsb2dnZXJIZWxwZXIsIHNp
emVfdCB3YWl0VG9TdGFydEZvclB1c2hDb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCmluZGV4IDg5
ZWNlZWQ2MWNiMTliZmQ3ZDQyMGM3NzhhYWExMjBhYzM1NmRiZmQuLjMwZGViMmU0Yzc0MWRmNTQ4
OGIzOGY1ZWQ1OWVlYmU1YTAyODliZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApAQCAtMzIsNyAr
MzIsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBXZWJBdWRpb0J1ZmZlckxpc3Q6
OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1h
dCkKICAgICA6IG1fYnl0ZXNQZXJGcmFtZShmb3JtYXQuYnl0ZXNQZXJGcmFtZSgpKQpAQCAtMTE2
LDcgKzExNSw3IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBDCiAgICAgICAgIHJldHVybjsKIAog
ICAgIENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9FcnIgPT0g
Q01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihz
YW1wbGVCdWZmZXIsIG51bGxwdHIsIG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9saXN0QnVmZmVy
U2l6ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVs
dCwga0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25t
ZW50LCAmYnVmZmVyKSkKKyAgICBpZiAobm9FcnIgPT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEF1
ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwgbnVsbHB0
ciwgbV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JT
eXN0ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJG
bGFnX0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpKQogICAg
ICAgICBtX2Jsb2NrQnVmZmVyID0gYWRvcHRDRihidWZmZXIpOwogCiAgICAgcmVzZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVu
aXRBZGFwdG9ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRp
b091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAppbmRleCAyZTk2MzBmYjYwZjIyYjNlZTU2ZDI0MmQ3
MzA0MzQ4NmI4N2I1NjJmLi5mODkxMDdmZmIxYzNmNTNiZTMxOWFhMzg2ODE0Nzc0YmI0ZDI3YTQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRw
dXRVbml0QWRhcHRvcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwCkBAIC0zMywxNSArMzMsNyBAQAogI2lm
IEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJB
dWRpb1Nlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQotU09GVF9MSU5L
X0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9u
ZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uICppbkRlc2MpLCAoaW5Db21wb25l
bnQsIGluRGVzYykpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBv
bmVudEluc3RhbmNlICpvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0QWRkUHJvcGVydHlMaXN0ZW5lciwgT1NT
dGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlv
VW5pdFByb3BlcnR5TGlzdGVuZXJQcm9jIGluUHJvYywgdm9pZCAqaW5Qcm9jVXNlckRhdGEpLCAo
aW5Vbml0LCBpbklELCBpblByb2MsIGluUHJvY1VzZXJEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQs
IEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9V
bml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQgKm91dERhdGEsIFVJbnQzMiAqaW9EYXRhU2l6ZSks
IChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkp
Ci1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywg
KEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1
ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5p
dFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVu
dCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQgKmluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5V
bml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjaW5j
bHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNTgsMTUgKzUwLDE1IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29u
ZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVz
Yy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwog
ICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNr
ID0gMDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAg
Y29tcCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NF
UlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNl
TmV3KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVk
aW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CiAKICAgICBVSW50MzIgZmxhZyA9IDE7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0
U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LAorICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LAogICAgICAgICBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlf
RW5hYmxlSU8sCiAgICAgICAgIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsCiAgICAgICAgIDAsCkBA
IC03NCwyMCArNjYsMjAgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUo
ZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICAgICAgc2l6ZW9m
KGZsYWcpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJ
bml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0
aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogICAgIC8vIFNldCBy
ZW5kZXIgY2FsbGJhY2sKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlu
cHV0LmlucHV0UHJvYyA9IGlucHV0UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0
aGlzOwotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1
ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQs
IDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxs
YmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwog
ICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCBzdHJlYW0gZm9ybWF0CiAgICAgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbUZvcm1hdDsKIAogICAgIFVJbnQzMiBzaXpl
ID0gc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbik7Ci0gICAgcmVzdWx0ID0gQXVk
aW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwg
JnNpemUpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRV
bml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0
cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOwogICAgIEFTU0VSVCghcmVzdWx0
KTsKIAogICAgIGNvbnN0ZXhwciBpbnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsK
QEAgLTEwMSw3ICs5Myw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgc3RyZWFtRm9y
bWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKICAgICBzdHJl
YW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0Owog
Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lk
Kikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7Cisg
ICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRp
b1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZv
aWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsK
ICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtQcmVmZXJyZWRCdWZmZXJTaXplKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFw
dG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1
dFVuaXRBZGFwdG9yTWFjLmNwcAppbmRleCBjOGVkM2VmNzhjOGM2YTNiMWUwNzBjYjQ0MDU5Njlh
ZGE0YWMzZGEyLi43MTRjY2U4ODYyNTc1MTg2MWQ1ZTJiODUxMzEzYTg5ZDA0MTJlYWNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0
QWRhcHRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRl
ICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+CisjaW5j
bHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDgsMjEgKzQ5LDIxIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29u
ZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVz
Yy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwog
ICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNr
ID0gMDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAg
Y29tcCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NF
UlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNl
TmV3KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVk
aW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5p
dCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7
CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawogICAg
IEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0gaW5w
dXRQcm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0ID0g
QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0
UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9m
KGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1
dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNj
b3BlX0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKICAgICBBU1NFUlQoIXJlc3Vs
dCk7CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdApAQCAtNzksNyArODAsNyBAQCB2b2lkIEF1
ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUs
IHVuc2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51
bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFtRm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9
IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0
LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2Yo
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGll
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAK
aW5kZXggYTUzMzMyY2Y3ZGJkNjQ2NmY0NGY1NzZkMWNkN2FkZTc2MTUwYWE0Zi4uNzg0NzRkOGU1
YTVhYzA3MDM1MzM1OTkwY2RkZjhhZmNkODA1NjE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMzMsMTMgKzMzLDExIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmV0YWluUHRy
PENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBtYWdpY0Nvb2tp
ZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llKQogewogICAgIGF1dG8gYmFzaWNEZXNjcmlw
dGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2Ny
aXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CiAgICAgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlw
dGlvbiwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwg
JmZvcm1hdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxwdHIs
IG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZmb3JtYXQpOwogICAgIGlm
IChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
NTUsMTQgKzUzLDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9T
YW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsK
LSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51
bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVC
dWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVX
aXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNl
LCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxs
cHRyLCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9S
KCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVk
IC0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBhdXRv
IGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKIAotICAgIGVycm9yID0gQ01TYW1wbGVC
dWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFs
bG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlv
QnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VS
Uk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxl
ZCAtICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAppbmRl
eCA1N2NmMjlkMGQ3N2U2Nzg4OWJkY2VmZDQwNTg1MTI5ZWQxMmE0NTU1Li42NGUzMGJjMjkzY2E4
ZjkzODg0ODhmMTQ4ODUwNmM1N2JlMGE1MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC00MSw3ICs0MSw2
IEBACiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8
SU9TdXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpCiB7CkBAIC05MCw3ICs4OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYg
c2FtcGxlCiB7CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxh
dGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7CiAKLSAgICBhdXRvIGltYWdlQnVmZmVy
ID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5z
YW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNt
U2FtcGxlQnVmZmVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZTogQ01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlciByZXR1cm5lZCBudWxscHRyIik7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
CmluZGV4IDk4MzliMzcwYTcxM2I3YzFkMjNkODQ3ZmE4NjUwNWQ1YWU5NzlhYjIuLmRmZjRmYTRl
ZGYyNjRiNDUyYmY4ZGE3YWZhZWY0Y2JkN2EwMjdiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTQ2LDIyICs0NiwxMyBAQAogI2lt
cG9ydCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjZW5kaWYKIAorI2ltcG9ydCA8cGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgotCi1TT0ZU
X0xJTktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9U
b29sYm94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRD
b21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0
ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklu
cHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi1TT0ZU
X0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVy
UmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZv
cm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQotCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYgdGFwKSwgKHRhcCkpCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcEdldFNvdXJjZUF1ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRh
cCwgQ01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJ
bk91dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0
aW1lUmFuZ2VPdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJG
cmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJh
bWVzT3V0KSkKLVNPRlRfTElOS19NQVlfRkFJTChNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3Qg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MgKmNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3Np
bmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiAqdGFwT3V0
KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNpbXBvcnQgPHBhbC9j
b2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiBzdGF0aWMgY29uc3QgZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRp
b24gPSAxOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFwU3RvcmFnZSA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
VGFwU3RvcmFnZT4gewpAQCAtNzMsNyArNjQsNyBAQCBwdWJsaWM6CiAKIFJlZlB0cjxBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShB
VlBsYXllckl0ZW0gKml0ZW0pCiB7Ci0gICAgaWYgKCFjYW5Mb2FkTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGUoKSkKKyAgICBpZiAoIVBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoaXRlbSkpOwogfQpAQCAt
MTUyLDcgKzE0Myw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJ
bnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgbV9yZWFkQ291bnQg
Kz0gZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRp
b0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNU
b1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgUEFMOjpBdWRp
b0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNU
b1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKIH0KIAogdm9pZCBBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQq
IGNsaWVudCkKQEAgLTIyNSw3ICsyMTYsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpjcmVhdGVNaXhJZk5lZWRlZCgpCiAgICAgfTsKIAogICAgIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwUmVmIHRhcCA9IG51bGxwdHI7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRBdWRpb1Byb2Nl
c3NpbmdUYXBDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwgJnRhcCk7
CisgICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKICAgICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CiAgICAgICAgIGlmICh0YXApCiAgICAgICAgICAgICBDRlJlbGVhc2UodGFw
KTsKQEAgLTI1OCwxNCArMjQ5LDE0IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OmluaXRDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIHZvaWQqCiB2b2lkIEF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpmaW5hbGl6ZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNz
aW5nVGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBT
dG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0
U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8
VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwog
ICAgIHRhcFN0b3JhZ2UtPmRlcmVmKCk7CiB9CiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRl
bUNvdW50IG1heEZyYW1lcywgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICpwcm9j
ZXNzaW5nRm9ybWF0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0
b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRT
dG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxU
YXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAK
ICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0yNzYsNyArMjY3
LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxiYWNrKE1U
QXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ00KIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsK
ICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nh
c3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAg
ICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6
TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgTG9ja2VyIGxvY2tl
ciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjg3LDcgKzI3OCw3IEBAIHZvaWQgQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5n
VGFwUmVmIHRhcCkKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3NDYWxs
YmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1l
cywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyBmbGFncywgQXVkaW9CdWZmZXJMaXN0ICpidWZm
ZXJMaXN0SW5PdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQsIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwRmxhZ3MgKmZsYWdzT3V0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3Jh
Z2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3Np
bmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0
aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2Uo
dGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0z
MTcsNyArMzA4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShD
TUl0ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEKIAogICAgIGlmICgqbV90YXBE
ZXNjcmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZl
cnRlclJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5l
dyhtX3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0
Q29udmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlck5ldyhtX3RhcERlc2NyaXB0
aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsKICAg
ICAgICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0zNTcsNyArMzQ4
LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2VzcyhNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW4KICAgICAKICAgICBDTUl0ZW1Db3VudCBpdGVt
Q291bnQgPSAwOwogICAgIENNVGltZVJhbmdlIHJhbmdlT3V0OwotICAgIE9TU3RhdHVzIHN0YXR1
cyA9IE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1l
cywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKKyAg
ICBPU1N0YXR1cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVk
aW8odGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdl
T3V0LCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8ICFpdGVtQ291bnQp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggMzA1YjNkMjdl
MzQyZjk4NzIxMTJmMTE3NGMxNGZmNGYzYzYwODU1ZC4uMjI5YjE4MTRiNmQyY2E4MDI0ODdhNWUx
ODRkODEzMDI5YmIwNzlkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yMzIsNyArMjMy
LDYgQEAgc3RydWN0IExvZ0FyZ3VtZW50PEFWUGxheWVyVGltZUNvbnRyb2xTdGF0dXM+IHsKIH07
IC8vIG5hbWVzcGFjZSBXVEYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKIAogc3RhdGljIE5TQXJyYXkgKmFzc2V0TWV0YWRhdGFLZXlOYW1lcygpOwogc3RhdGlj
IE5TQXJyYXkgKml0ZW1LVk9Qcm9wZXJ0aWVzKCk7CkBAIC01NzIsNyArNTcxLDYgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0VmlkZW9SZW5k
ZXJlcigpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
SW1hZ2VHZW5lcmF0b3IoKQogewotICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAgICAgSU5GT19M
T0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAoIW1fYXZBc3NldCB8fCBtX2ltYWdlR2VuZXJh
dG9yKQpAQCAtNTgwLDEwICs1NzgsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigpCiAKICAgICBtX2ltYWdlR2VuZXJhdG9y
ID0gW1BBTDo6Z2V0QVZBc3NldEltYWdlR2VuZXJhdG9yQ2xhc3MoKSBhc3NldEltYWdlR2VuZXJh
dG9yV2l0aEFzc2V0Om1fYXZBc3NldC5nZXQoKV07CiAKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5n
ZXQoKSBzZXRBcGVydHVyZU1vZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xl
YW5BcGVydHVyZV07CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBlcnR1cmVNb2Rl
OlBBTDo6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07CiAg
ICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNm
b3JtOllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRv
bGVyYW5jZUJlZm9yZTprQ01UaW1lWmVyb107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkg
c2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUFmdGVyOmtDTVRpbWVaZXJvXTsKKyAgICBbbV9pbWFn
ZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOlBBTDo6UEFM
OjprQ01UaW1lWmVyb107CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVk
VGltZVRvbGVyYW5jZUFmdGVyOlBBTDo6UEFMOjprQ01UaW1lWmVyb107CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNvbnRleHRWaWRlb1JlbmRl
cmVyKCkKQEAgLTY3MSw3ICs2NjksNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlKCkgY29uc3QKICAgICBpZiAoIWRhdGUpCiAgICAg
ICAgIHJldHVybiBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CiAKLSAgICBkb3VibGUgY3VycmVu
dFRpbWUgPSBDTVRpbWVHZXRTZWNvbmRzKFttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV0pICog
MTAwMDsKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMoW21f
YXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAwOwogCiAgICAgLy8gUm91bmRpbmcgZHVl
IHRvIHNlY29uZCBvZmZzZXQgZXJyb3Igd2hlbiBzdWJ0cmFjdGluZy4KICAgICByZXR1cm4gTWVk
aWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKHJvdW5kKGRhdGUgLSBjdXJyZW50VGltZSkpOwpAQCAt
MTA4OSw3ICsxMDg3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpjcmVhdGVBVlBsYXllcigpCiAKICAgICBBU1NFUlQoIW1fY3VycmVudFRpbWVPYnNlcnZlcik7
CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKLSAgICBtX2N1cnJlbnRU
aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVy
dmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNp
bmdCbG9jazpbd2Vha1RoaXNdIChDTVRpbWUgdGltZSkgeworICAgIG1fY3VycmVudFRpbWVPYnNl
cnZlciA9IFttX2F2UGxheWVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6UEFM
OjpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5n
QmxvY2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRpbWUpIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQog
ICAgICAgICAgICAgd2Vha1RoaXMtPmN1cnJlbnRNZWRpYVRpbWVEaWRDaGFuZ2UoUEFMOjp0b01l
ZGlhVGltZSh0aW1lKSk7CiAgICAgfV07CkBAIC0xNDIzLDcgKzE0MjEsNyBAQCBNZWRpYVRpbWUg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3VycmVudE1lZGlhVGltZSgpIGNv
bnN0CiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKICAgICBpZiAoIW1f
d2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGltZSkKLSAgICAgICAgY3VycmVudE1lZGlhVGltZURp
ZENoYW5nZSh0b01lZGlhVGltZShbbV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVdKSk7
CisgICAgICAgIGN1cnJlbnRNZWRpYVRpbWVEaWRDaGFuZ2UoUEFMOjp0b01lZGlhVGltZShbbV9h
dlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVdKSk7CiAgICAgQVNTRVJUKG1fd2FsbENsb2Nr
QXRDYWNoZWRDdXJyZW50VGltZSk7CiAKICAgICBhdXRvIGl0ZW1UaW1lID0gbV9jYWNoZWRDdXJy
ZW50TWVkaWFUaW1lOwpAQCAtMTQ2OCw4ICsxNDY2LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29u
c3QKICAgICBDTVRpbWUgY21BZnRlciA9IFBBTDo6dG9DTVRpbWUocG9zaXRpdmVUb2xlcmFuY2Up
OwogCiAgICAgLy8gW0FWUGxheWVySXRlbSBzZWVrVG9UaW1lXSB3aWxsIHRocm93IGFuIGV4Y2Vw
dGlvbiBpZiB0b2xlcmFuY2VCZWZvcmUgaXMgbmVnYXRpdmUuCi0gICAgaWYgKENNVGltZUNvbXBh
cmUoY21CZWZvcmUsIGtDTVRpbWVaZXJvKSA8IDApCi0gICAgICAgIGNtQmVmb3JlID0ga0NNVGlt
ZVplcm87CisgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShjbUJlZm9yZSwgUEFMOjprQ01UaW1l
WmVybykgPCAwKQorICAgICAgICBjbUJlZm9yZSA9IFBBTDo6a0NNVGltZVplcm87CiAgICAgCiAg
ICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKIApAQCAtMTU4Niw2ICsxNTg0
LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQaXRjaENv
cnJlY3Rpb25BbGdvcml0aG0oTWVkaWFQbGF5ZXIKIAogc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1C
dWZmZXJlZFRpbWVSYW5nZXMoKSBjb25zdAogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8v
IEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAgIGF1dG8gdGltZVJhbmdlcyA9IG1ha2VV
bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwogCiAgICAgaWYgKCFtX2F2UGxheWVySXRlbSkK
QEAgLTE1OTQsMTMgKzE1OTQsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdl
cz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm0KICAgICBmb3Ig
KE5TVmFsdWUgKnRoaXNSYW5nZVZhbHVlIGluIG1fY2FjaGVkTG9hZGVkUmFuZ2VzLmdldCgpKSB7
CiAgICAgICAgIENNVGltZVJhbmdlIHRpbWVSYW5nZSA9IFt0aGlzUmFuZ2VWYWx1ZSBDTVRpbWVS
YW5nZVZhbHVlXTsKICAgICAgICAgaWYgKENNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkg
JiYgIUNNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5nZSkpCi0gICAgICAgICAgICB0aW1lUmFu
Z2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRvTWVkaWFU
aW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKKyAgICAgICAgICAgIHRpbWVSYW5n
ZXMtPmFkZChQQUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CiAgICAgfQogICAgIHJldHVy
biB0aW1lUmFuZ2VzOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogeworICAgIHVzaW5nIG5h
bWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAgIGlmICghbV9j
YWNoZWRTZWVrYWJsZVJhbmdlcyB8fCAhW21fY2FjaGVkU2Vla2FibGVSYW5nZXMgY291bnRdKQog
ICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCkBAIC0xNjIxLDYgKzE2MjMs
OCBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZv
cm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAogeworICAg
IHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAg
IGlmICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcykKICAgICAgICAgbV9jYWNoZWRTZWVrYWJsZVJh
bmdlcyA9IFttX2F2UGxheWVySXRlbSBzZWVrYWJsZVRpbWVSYW5nZXNdOwogCkBAIC0xNjMzLDcg
KzE2MzcsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAogICAgICAgICBpZiAoIUNNVElNRVJBTkdF
X0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVkaWFUaW1lIGVuZE9m
UmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpOwor
ICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRp
bWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRpbWVTZWVrYWJsZSA8
IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBtYXhUaW1lU2Vla2FibGUgPSBlbmRPZlJhbmdlOwog
ICAgIH0KQEAgLTE2NDIsNiArMTY0Niw4IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAKIE1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVM
b2FkZWQoKSBjb25zdAogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVS
QU5HRV9JU19FTVBUWS4KKwogICAgIGlmICghbV9jYWNoZWRMb2FkZWRSYW5nZXMpCiAgICAgICAg
IHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKQEAgLTE2NTEsNyArMTY1Nyw3IEBAIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRp
bWVMb2FkZWQoKSBjb25zdAogICAgICAgICBpZiAoIUNNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVS
YW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRv
TWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpOworICAgICAgICBNZWRpYVRp
bWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0
aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRpbWVMb2FkZWQgPCBlbmRPZlJhbmdlKQogICAg
ICAgICAgICAgbWF4VGltZUxvYWRlZCA9IGVuZE9mUmFuZ2U7CiAgICAgfQpAQCAtMTgwMyw3ICsx
ODA5LDcgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmUKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0
ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBz
ZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5zaXplKCkpXTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0lt
YWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmls
IGVycm9yOm5pbF0pOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiByYXdJbWFnZSA9IGFkb3B0
Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRpbWU6UEFMOjpDTVRpbWVN
YWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1lOm5pbCBlcnJvcjpuaWxdKTsKICAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5
V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCksIHNSR0JDb2xvclNwYWNlUmVmKCkpKTsKIAog
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjcmVhdGluZyBpbWFnZSB0b29rICIsIChNb25v
dG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkpOwpAQCAtMTk4OSw3ICsxOTk1LDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkaWRTdG9wTG9hZGlu
Z1JlcXVlc3QoQVZBc3NldFJlc291cmNlTG8KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjppc0F2YWlsYWJsZSgpCiB7Ci0gICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5k
YXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJs
ZSgpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkg
JiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOwogfQogCiBNZWRpYVRpbWUg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWVkaWFUaW1lRm9yVGltZVZhbHVl
KGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVlKSBjb25zdApAQCAtMjkwMSw3ICsyOTA3LDcgQEAg
c3RhdGljIE5TU3RyaW5nICpleGVybmFsRGV2aWNlRGlzcGxheU5hbWVGb3JQbGF5ZXIoQVZQbGF5
ZXIgKnBsYXllcikKICAgICBpZiAoIVBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFi
bGUoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIGlmIChhdXRvIGNvbnRleHQgPSBPdXRw
dXRDb250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQoKSkKKyAgICBp
ZiAoYXV0byBjb250ZXh0ID0gUEFMOjpPdXRwdXRDb250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRh
dGlvbk91dHB1dENvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIGNvbnRleHQtPmRldmljZU5hbWUo
KTsKIAogICAgIGlmIChwbGF5ZXIuZXh0ZXJuYWxQbGF5YmFja1R5cGUgIT0gQVZQbGF5ZXJFeHRl
cm5hbFBsYXliYWNrVHlwZUFpclBsYXkpCkBAIC0zMjM1LDkgKzMyNDEsOSBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhR3JvdXBEaWRBcnJpdmUoY29u
c3QgUmV0YWluUHRyPAogICAgICAgICBmb3IgKEFWTWV0YWRhdGFJdGVtICppdGVtIGluIGdyb3Vw
Lml0ZW1zKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8QVZNdXRhYmxlTWV0YWRhdGFJdGVtPiBp
dGVtQ29weSA9IGFkb3B0TlMoW2l0ZW0gbXV0YWJsZUNvcHldKTsKICAgICAgICAgICAgIGlmICgh
Q01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgpLnRpbWUpKQotICAgICAgICAgICAgICAgIGl0
ZW1Db3B5LmdldCgpLnRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUs
IE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7CisgICAgICAgICAgICAgICAgaXRlbUNvcHku
Z2V0KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGdyb3VwU3RhcnRUaW1lLCBN
ZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwogICAgICAgICAgICAgaWYgKCFDTVRJTUVfSVNf
VkFMSUQoaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24pKQotICAgICAgICAgICAgICAgIGl0ZW1Db3B5
LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7CisgICAgICAgICAgICAg
ICAgaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24gPSBQQUw6OnRvQ01UaW1lKGdyb3VwRHVyYXRpb24p
OwogICAgICAgICAgICAgW2dyb3VwQ29weSBhZGRPYmplY3Q6aXRlbUNvcHkuZ2V0KCldOwogICAg
ICAgICB9CiAKQEAgLTMyNzksNyArMzI4NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPE5TQXJyCiAK
ICAgICAgICAgTWVkaWFUaW1lIGVuZCA9IE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUo
KTsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGl0ZW0uZHVyYXRpb247Ci0gICAgICAgIGlmIChD
TVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIENNVGltZUdldFNlY29uZHMoZHVyYXRpb24pID4g
MC4wMDEpCisgICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIFBBTDo6Q01U
aW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkKICAgICAgICAgICAgIGVuZCA9IHN0YXJ0
ICsgUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7CiAKICAgICAgICAgQXRvbVN0cmluZyB0eXBl
ID0gbnVsbEF0b20oKTsKQEAgLTM0NTgsNyArMzQ2NCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9u
PHZvCiAgICAgaWYgKG1fdGltZU9ic2VydmVyKQogICAgICAgICBbbV9hdlBsYXllciByZW1vdmVU
aW1lT2JzZXJ2ZXI6bV90aW1lT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAgbV90aW1lT2JzZXJ2ZXIg
PSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUg
dmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAgbV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBh
ZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1l
OlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVz
aW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7CiAgICAgfV07CiAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNWE2OWFhNjc5NTE4OWNiNGUwNzZkMzE5
NDY5Zjk5NjUwNGZmOTQ2Yy4uNzNhZGViOWJiNzNhNzgyOGRmNWEzZjQ4NGM1ZjkwZTMzM2QyNDFi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNjYsNyArNjYsNiBAQCAtIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KE5TVVJMICopc3RvcmFnZURp
cmVjdG9yeTsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0YXRlIGVudW1lcmF0aW9uVmFsdWUpCiB7CkBAIC0x
MTYsMTUgKzExNSwxNSBAQCBzdGF0aWMgdm9pZCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5n
ZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgY29ucwogCiB2b2lkIEVmZmVjdGl2
ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3AoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKIHsKLSAg
ICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVm
YXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5l
cihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRp
bWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSk7CisgICAg
Q01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0
RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92
ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFj
aywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGlt
ZWJhc2UpOwogfQogCiBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyYgY2xp
ZW50LCBDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAgIDogbV9jbGllbnQobWFrZVdlYWtQdHIo
Y2xpZW50KSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IENNTm90aWZpY2F0
aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50
ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2Fs
bGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1l
YmFzZSwgMCk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZp
Y2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFMOjpDTU5vdGlmaWNh
dGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNo
YW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRl
Q2hhbmdlZCwgdGltZWJhc2UsIDApOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXll
ciogcGxheWVyKQpAQCAtMTU3LDcgKzE1Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhCiAg
ICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgREVC
VUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hyb25pemVyIGZpcmVkIGZvciAiLCB0b01l
ZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIs
ICEhbV9wZW5kaW5nU2Vlayk7CisgICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwg
InN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFMOjp0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vl
a2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CiAK
ICAgICAgICAgaWYgKG1fc2Vla2luZyAmJiAhbV9wZW5kaW5nU2VlaykgewogICAgICAgICAgICAg
bV9zZWVraW5nID0gZmFsc2U7CkBAIC0yMzgsMTEgKzIzNywxMSBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmlzQXZh
aWxhYmxlKCkKIHsKICAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWls
YWJsZSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkKLSAgICAg
ICAgJiYgZ2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKQotICAgICAgICAmJiBnZXRBVlNhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCi0gICAgICAgICYmIGdldEFWU2FtcGxlQnVmZmVy
UmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQotICAgICAgICAmJiBjbGFzc19nZXRJbnN0YW5jZU1l
dGhvZChnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpLCBAc2VsZWN0b3Ioc2V0
TXV0ZWQ6KSk7CisgICAgICAgICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUo
KQorICAgICAgICAmJiBQQUw6OmdldEFWU3RyZWFtRGF0YVBhcnNlckNsYXNzKCkKKyAgICAgICAg
JiYgUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCisgICAgICAgICYm
IFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJvbml6ZXJDbGFzcygpCisgICAgICAg
ICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1Jl
bmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11dGVkOikpOwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxT
dHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKQpAQCAtNDE3LDcgKzQxNiw3
IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmR1cmF0
aW9uTWVkaWFUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiB7Ci0gICAgTWVkaWFUaW1l
IHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKFtt
X3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGlt
ZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6
ZXIgdGltZWJhc2VdKSk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAgICAgaWYg
KHN5bmNocm9uaXplclRpbWUgPCBtX2xhc3RTZWVrVGltZSkKQEAgLTQzMCw3ICs0MjksNyBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Q3VycmVudFRpbWVE
aWRDaGFuZ2VDYWxsYmFjayhNZWRpYQogICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAgICAgaWYgKG1fY3VycmVudFRpbWVEaWRDaGFuZ2VD
YWxsYmFjaykgewotICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6
ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBx
dWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkg
eworICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVy
aW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVl
OmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENNVGltZSB0aW1lKSB7CiAg
ICAgICAgICAgICBpZiAobV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKQogICAgICAgICAg
ICAgICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhDTVRJTUVfSVNfTlVNRVJJQyh0
aW1lKSA/IFBBTDo6dG9NZWRpYVRpbWUodGltZSkgOiBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwog
ICAgICAgICB9XTsKQEAgLTQ4Miw3ICs0ODEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFsKCkKICAgICBpZiAobV9sYXN0U2Vla1RpbWUu
aGFzRG91YmxlVmFsdWUoKSkKICAgICAgICAgbV9sYXN0U2Vla1RpbWUgPSBNZWRpYVRpbWU6OmNy
ZWF0ZVdpdGhEb3VibGUobV9sYXN0U2Vla1RpbWUudG9Eb3VibGUoKSwgTWVkaWFUaW1lOjpEZWZh
dWx0VGltZVNjYWxlKTsKIAotICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0
b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7
CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSkpOwogICAgIElORk9f
TE9HKExPR0lERU5USUZJRVIsICJzZWVrVGltZSA9ICIsIG1fbGFzdFNlZWtUaW1lLCAiLCBzeW5j
aHJvbml6ZXJUaW1lID0gIiwgc3luY2hyb25pemVyVGltZSk7CiAKICAgICBib29sIGRvZXNOb3RS
ZXF1aXJlU2VlayA9IHN5bmNocm9uaXplclRpbWUgPT0gbV9sYXN0U2Vla1RpbWU7CkBAIC01OTks
NyArNTk4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVw
ZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAgaWYgKG1fdmlkZW9PdXRwdXQpIHsKICAgICAgICAg
Q01UaW1lIG91dHB1dFRpbWU7CiAgICAgICAgIGlmIChhdXRvIHBpeGVsQnVmZmVyID0gYWRvcHRD
RihbbV92aWRlb091dHB1dCBjb3B5UGl4ZWxCdWZmZXJGb3JTb3VyY2VUaW1lOnRvQ01UaW1lKGN1
cnJlbnRNZWRpYVRpbWUoKSkgc291cmNlVGltZUZvckRpc3BsYXk6Jm91dHB1dFRpbWVdKSkgewot
ICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIm5ldyBwaXhlbGJ1ZmZlciBmb3Vu
ZCBmb3IgdGltZSAiLCB0b01lZGlhVGltZShvdXRwdXRUaW1lKSk7CisgICAgICAgICAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVmZmVyIGZvdW5kIGZvciB0aW1lICIsIFBB
TDo6dG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOwogICAgICAgICAgICAgbV9sYXN0UGl4ZWxCdWZm
ZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CkBAIC04MDksNyArODA4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigpCiAgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01U
aW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1
cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJh
c2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3ZlUmVuZGVyZXI6bV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuZ2V0KCkgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxl
cjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAgLTEwMTgsNyArMTAxNyw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpmbHVzaFBlbmRp
bmdTaXplQ2hhbmdlcygpCiAjaWYgSEFWRShBVlNUUkVBTVNFU1NJT04pCiBBVlN0cmVhbVNlc3Np
b24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbigp
CiB7Ci0gICAgaWYgKCFnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIHx8ICFbUEFMOjpnZXRBVlN0
cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihp
bml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkKKyAgICBpZiAoIVBBTDo6Z2V0QVZTdHJl
YW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBpbnN0
YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5
QXRVUkw6KV0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBpZiAoIW1fc3RyZWFtU2Vzc2lv
bikgewpAQCAtMTIxNyw3ICsxMjE2LDcgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19F
TkQKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGltZSBjdXJyZW50VGltZSA9IENNVGltZWJhc2VH
ZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOworICAgIENNVGltZSBjdXJyZW50VGlt
ZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CiAg
ICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRlcmVyOmF1ZGlvUmVuZGVyZXIgYXRUaW1lOmN1
cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1v
cC4KICAgICB9XTsKQEAgLTEzMDEsNyArMTMwMCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248
CiAgICAgaWYgKG1fcGVyZm9ybVRhc2tPYnNlcnZlcikKICAgICAgICAgW21fc3luY2hyb25pemVy
IHJlbW92ZVRpbWVPYnNlcnZlcjptX3BlcmZvcm1UYXNrT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAg
bV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZEJvdW5kYXJ5VGltZU9i
c2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6dG9DTVRpbWUodGltZSld
XSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKKyAgICBtX3Bl
cmZvcm1UYXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2
ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTpQQUw6OnRvQ01UaW1lKHRpbWUp
XV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CiAgICAgICAg
IHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLm1tCmluZGV4IGUxYWQxMDJiYjk4MWJmMzc0ZTZiZDkzN2MwYzZlMmE4N2Y0MGYxNWYuLjU1
YjUwMGM1N2U5M2ViYmE0OTZhZTc0MTZmZDVkZjc4ZDdiOTQ1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENH
LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXIuaCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCiAjaW1wb3J0
ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCkBAIC0xMjEsNyArMTIyLDYgQEAgLSAodm9pZClv
YnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9i
amVjdCBjaGFuZ2U6KE4KIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aXNB
dmFpbGFibGUoKQogewotICAgIHJldHVybiBpc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJs
ZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgZ2V0QVZTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJDbGFzcygpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJh
bWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgp
ICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMo
SGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKQpAQCAtMjMw
LDcgKzIzMCw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uCiBzdGF0aWMgaW5saW5lIENHQWZm
aW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgoTWVkaWFTYW1wbGUmIHNhbXBs
ZSkKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBzYW1wbGUucGxhdGZv
cm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXI7Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIpKTsKICAgICBzaXplX3Qgd2lkdGggPSBDVlBp
eGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwogICAgIHNpemVfdCBoZWlnaHQgPSBDVlBp
eGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKICAgICBpZiAoIXdpZHRoIHx8ICFoZWln
aHQpCkBAIC05NjAsNyArOTYwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCkKICAgICBpZiAoIW1faW1hZ2VQYWlu
dGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHBp
eGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUo
KS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNh
bXBsZUJ1ZmZlcikpOwogICAgIG1faW1hZ2VQYWludGVyLmNnSW1hZ2UgPSBOYXRpdmVJbWFnZTo6
Y3JlYXRlKG1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyLT5jcmVhdGVJbWFnZUZy
b21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXggMmY0OTgzODc2NWQzYzk0NDFiNjliYjk1MThi
M2IxZjlhODc5NTA5Yi4uYzBmMTNkNmVhNWM5NzU3NjdjZThmNjJhYjY4NDJkN2Q2ZjBmYmI2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMzYs
OSArMzYsMTIgQEAKICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0IDxwYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQotV1RGX0RF
Q0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBFcXVpdmFsZW50IHRvIFdU
Rl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOworLy8gTmVlZGVkIGR1ZSB0
byByZXF1aXJlbWVudCBvZiBzcGVjaWZ5aW5nIHRoZSBQQUwgbmFtZXNwYWNlLgordGVtcGxhdGUg
PD4KK3N0cnVjdCBXVEY6OkNGVHlwZVRyYWl0PENNU2FtcGxlQnVmZmVyUmVmPiB7CisgICAgc3Rh
dGljIGlubGluZSBDRlR5cGVJRCB0eXBlSUQodm9pZCkgeyByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFR5cGVJRCgpOyB9Cit9OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY3LDM1
ICs3MCwzNSBAQCBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBNZWRpYVNhbXBsZUFWRk9iakM6
OmNyZWF0ZUltYWdlU2FtcGxlKFBpeGVsQnVmZmVyJiYgcAogICAgIEFTU0VSVF9VTlVTRUQoc3Rh
dHVzLCAhc3RhdHVzKTsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXRE
ZXNjcmlwdGlvblJhdyA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1
ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uUmF3KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvblJhdyk7CiAgICAg
QVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8gZm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZv
cm1hdERlc2NyaXB0aW9uUmF3KTsKIAotICAgIENNU2FtcGxlVGltaW5nSW5mbyBzYW1wbGVUaW1p
bmdJbmZvcm1hdGlvbiA9IHsga0NNVGltZUludmFsaWQsIGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1l
SW52YWxpZCB9OworICAgIENNU2FtcGxlVGltaW5nSW5mbyBzYW1wbGVUaW1pbmdJbmZvcm1hdGlv
biA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjprQ01U
aW1lSW52YWxpZCB9OwogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlclJhdyA9IG51
bGxwdHI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNj
cmlwdGlvbi5nZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9ybWF0aW9uLCAmc2FtcGxlQnVmZmVyUmF3
KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVz
Y3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1ZmZlclJh
dyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRD
RihzYW1wbGVCdWZmZXJSYXcpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQo
KSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVl
KTsKICAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFj
aG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9u
YXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlS
ZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAg
ICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtl
eV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgQ0ZEaWN0aW9u
YXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNw
bGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiAgICAgcmV0dXJuIGNyZWF0
ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOwogfQogCiBNZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpD
OjpwcmVzZW50YXRpb25UaW1lKCkgY29uc3QKIHsKLSAgICBhdXRvIHRpbWVTdGFtcCA9IENNU2Ft
cGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsK
KyAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50
YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJ
RCh0aW1lU3RhbXApKQotICAgICAgICB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNl
bnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAgICAgIHRpbWVTdGFtcCA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkp
OwogICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCk7CiB9CiAKIE1lZGlhVGlt
ZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUoKSBjb25zdAogewotICAgIGF1dG8gdGlt
ZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkp
OworICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVT
dGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKHRpbWVTdGFt
cCkpCiAgICAgICAgIHJldHVybiBwcmVzZW50YXRpb25UaW1lKCk7CiAgICAgcmV0dXJuIFBBTDo6
dG9NZWRpYVRpbWUodGltZVN0YW1wKTsKQEAgLTEwMywxNSArMTA2LDE1IEBAIE1lZGlhVGltZSBN
ZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFT
YW1wbGVBVkZPYmpDOjpkdXJhdGlvbigpIGNvbnN0CiB7Ci0gICAgYXV0byBkdXJhdGlvbiA9IENN
U2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOworICAgIGF1dG8g
ZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24obV9zYW1wbGUu
Z2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRChkdXJhdGlvbikpCi0gICAgICAgIGR1
cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7CisgICAg
ICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKG1fc2FtcGxlLmdl
dCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7CiB9CiAKIHNpemVf
dCBNZWRpYVNhbXBsZUFWRk9iakM6OnNpemVJbkJ5dGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
Q01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUobV9zYW1wbGUuZ2V0KCkpOworICAgIHJl
dHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplKG1fc2FtcGxlLmdldCgp
KTsKIH0KIAogUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1wbGVBVkZPYmpDOjpwbGF0Zm9ybVNhbXBs
ZSgpCkBAIC0xMjIsMjMgKzEyNSwyMyBAQCBQbGF0Zm9ybVNhbXBsZSBNZWRpYVNhbXBsZUFWRk9i
akM6OnBsYXRmb3JtU2FtcGxlKCkKIAogdWludDMyX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjp2aWRl
b1BpeGVsRm9ybWF0KCkgY29uc3QKIHsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBs
ZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVm
ZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkp
KTsKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZl
cik7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50UmFuZG9tQWNj
ZXNzKENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCkKIHsKLSAgICByZXR1cm4gIUNGRGlj
dGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5
X05vdFN5bmMpOworICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVu
dERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jKTsKIH0KIAogc3RhdGlj
IGJvb2wgZG9lc0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZSkKIHsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5KHNhbXBsZSwgZmFsc2UpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKIH0KIAogc3RhdGljIGJvb2wgaXND
TVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiB7Ci0g
ICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxz
ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCkBA
IC0xNTEsMTIgKzE1NCwxMiBAQCBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyUmFuZG9tQWNj
ZXNzKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1
ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGlj
dCkKIHsKLSAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3Qs
IGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKKyAgICByZXR1cm4gQ0ZEaWN0
aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVu
dEtleV9Eb05vdERpc3BsYXkpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyTm9u
RGlzcGxheWluZyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiB7Ci0gICAgQ0ZBcnJheVJlZiBh
dHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1w
bGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiAgICAgaWYgKCFh
dHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApAQCAtMTg2LDExICsxODks
MTEgQEAgTWVkaWFTYW1wbGU6OlNhbXBsZUZsYWdzIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZmxhZ3Mo
KSBjb25zdAogCiBGbG9hdFNpemUgTWVkaWFTYW1wbGVBVkZPYmpDOjpwcmVzZW50YXRpb25TaXpl
KCkgY29uc3QKIHsKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
ID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3NhbXBsZS5nZXQoKSk7Ci0g
ICAgaWYgKENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24p
ICE9IGtDTU1lZGlhVHlwZV9WaWRlbykKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1f
c2FtcGxlLmdldCgpKTsKKyAgICBpZiAoUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFU
eXBlKGZvcm1hdERlc2NyaXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVfVmlkZW8pCiAgICAgICAgIHJl
dHVybiBGbG9hdFNpemUoKTsKICAgICAKLSAgICByZXR1cm4gRmxvYXRTaXplKENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24s
IHRydWUsIHRydWUpKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1
ZSwgdHJ1ZSkpOwogfQogCiB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVtcChQcmludFN0cmVh
bSYgb3V0KSBjb25zdApAQCAtMjAxLDEyICsyMDQsMTIgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9i
akM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpD
OjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiB7CiAgICAgQ01J
dGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVt
Q291bnQpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAg
ICAgICAgcmV0dXJuOwogICAgIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWlu
Z0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIGlm
IChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBs
ZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKKyAg
ICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxs
cHRyKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGZvciAoYXV0byYgdGltaW5nIDogdGlt
aW5nSW5mb0FycmF5KSB7CkBAIC0yMTUsNyArMjE4LDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9i
akM6Om9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmIG9mZnNldCkKICAgICB9CiAg
ICAgCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3U2FtcGxlOwotICAgIGlmIChub0VyciAhPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdT
YW1wbGUpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdp
dGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3Vu
dCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCiAgICAgICAgIHJldHVybjsK
ICAgICAKICAgICBtX3NhbXBsZSA9IGFkb3B0Q0YobmV3U2FtcGxlKTsKQEAgLTIyNCwxMiArMjI3
LDEyIEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3Qg
TWVkaWFUaW1lJiBvZmZzZXQpCiB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGltZXN0YW1w
cyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YW1wLCBjb25zdCBXVEY6
Ok1lZGlhVGltZSAmZGVjb2RlVGltZXN0YW1wKQogewogICAgIENNSXRlbUNvdW50IGl0ZW1Db3Vu
dCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKKyAgICBpZiAo
bm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3Nh
bXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCiAgICAgICAgIHJldHVybjsKICAg
ICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAg
dGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3Vu
dCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAgaWYgKG5vRXJyICE9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCks
IGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCiAgICAgICAgIHJl
dHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWluZyA6IHRpbWluZ0luZm9BcnJheSkgewpA
QCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRUaW1lc3RhbXBz
KGNvbnN0IFdURjo6TWVkaWFUaW1lICZwcmVzZW50YXRpb25UaW1lc3RhCiAgICAgfQogICAgIAog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1w
bGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3Nh
bXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxl
KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3
VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRp
bWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAgICAgICByZXR1cm47CiAgICAg
CiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0yNDYsMTAgKzI0OSwxMCBA
QCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlh
VGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogCiBib29sIE1lZGlhU2FtcGxlQVZGT2JqQzo6aXNE
aXZpc2FibGUoKSBjb25zdAogewotICAgIGlmIChDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMo
bV9zYW1wbGUuZ2V0KCkpID09IDEpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXROdW1T
YW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAxKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAoQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAs
IG51bGxwdHIsIG51bGxwdHIpID09IGtDTVNhbXBsZUJ1ZmZlckVycm9yX0J1ZmZlckhhc05vU2Ft
cGxlU2l6ZXMpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXko
bV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09IGtDTVNhbXBsZUJ1ZmZlckVy
cm9yX0J1ZmZlckhhc05vU2FtcGxlU2l6ZXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IHJldHVybiB0cnVlOwpAQCAtMjYyLDE3ICsyNjUsMTcgQEAgc3RkOjpwYWlyPFJlZlB0cjxNZWRp
YVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRl
KGMKIAogICAgIENGSW5kZXggc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUgPSAwOwogCi0g
ICAgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2FtcGxlLmdldCgpLCBb
Jl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQpIC0+IE9TU3Rh
dHVzIHsKLSAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFBy
ZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOworICAgIFBBTDo6Q01TYW1wbGVCdWZm
ZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2FtcGxlLmdldCgpLCBbJl0gKENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQpIC0+IE9TU3RhdHVzIHsKKyAgICAgICAg
YXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9u
VGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CiAgICAgICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0
aW1lU3RhbXApKQotICAgICAgICAgICAgdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgIHRpbWVTdGFtcCA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVy
KTsKIAogICAgICAgICBpZiAodXNlRW5kVGltZSA9PSBVc2VFbmRUaW1lOjpVc2UpIHsKLSAgICAg
ICAgICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKHNh
bXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldE91dHB1dER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CiAgICAgICAgICAgICBpZiAoQ01U
SU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAgICAgICAgICAgICAgIGR1cmF0aW9uID0gQ01T
YW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgICAgIGR1
cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CiAK
LSAgICAgICAgICAgIGlmIChQQUw6OnRvTWVkaWFUaW1lKENNVGltZUFkZCh0aW1lU3RhbXAsIGR1
cmF0aW9uKSkgPiBwcmVzZW50YXRpb25UaW1lKQorICAgICAgICAgICAgaWYgKFBBTDo6dG9NZWRp
YVRpbWUoUEFMOjpDTVRpbWVBZGQodGltZVN0YW1wLCBkdXJhdGlvbikpID4gcHJlc2VudGF0aW9u
VGltZSkKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfSBlbHNlIGlmIChQQUw6
OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCkgPj0gcHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgICAg
IHJldHVybiAxOwpAQCAtMjgzLDE5ICsyODYsMTkgQEAgc3RkOjpwYWlyPFJlZlB0cjxNZWRpYVNh
bXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlKGMK
ICAgICBpZiAoIXNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lKQogICAgICAgICByZXR1cm4g
eyBudWxscHRyLCB0aGlzIH07CiAKLSAgICBDTUl0ZW1Db3VudCBzYW1wbGVDb3VudCA9IENNU2Ft
cGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSk7CisgICAgQ01JdGVtQ291bnQg
c2FtcGxlQ291bnQgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5n
ZXQoKSk7CiAgICAgaWYgKHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lID49IHNhbXBsZUNv
dW50KQogICAgICAgICByZXR1cm4geyB0aGlzLCBudWxscHRyIH07CiAKICAgICBDTVNhbXBsZUJ1
ZmZlclJlZiByYXdTYW1wbGVCZWZvcmUgPSBudWxscHRyOwogICAgIENGUmFuZ2UgcmFuZ2VCZWZv
cmUgPSBDRlJhbmdlTWFrZSgwLCBzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSk7Ci0gICAg
aWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9yZSwgJnJhd1NhbXBsZUJlZm9yZSkgIT0g
bm9FcnIpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFu
Z2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlQmVmb3JlLCAmcmF3
U2FtcGxlQmVmb3JlKSAhPSBub0VycikKICAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0
ciB9OwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQmVmb3JlID0gYWRv
cHRDRihyYXdTYW1wbGVCZWZvcmUpOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxl
QWZ0ZXIgPSBudWxscHRyOwogICAgIENGUmFuZ2UgcmFuZ2VBZnRlciA9IENGUmFuZ2VNYWtlKHNh
bXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lLCBzYW1wbGVDb3VudCAtIHNhbXBsZXNCZWZvcmVQ
cmVzZW50YXRpb25UaW1lKTsKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVy
Rm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlQWZ0ZXIs
ICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJD
b3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0
KCksIHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIpCiAgICAgICAgIHJldHVy
biB7IG51bGxwdHIsIG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IHNhbXBsZUFmdGVyID0gYWRvcHRDRihyYXdTYW1wbGVBZnRlcik7CiAKQEAgLTMwNSwxMyArMzA4
LDEzIEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+
PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZShjCiBSZWY8TWVkaWFTYW1wbGU+IE1lZGlhU2Ft
cGxlQVZGT2JqQzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkoKSBjb25zdAogewogICAgIENNU2Ft
cGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlciA9IDA7Ci0gICAgQ01TYW1wbGVCdWZmZXJDcmVh
dGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCAmbmV3U2FtcGxlQnVm
ZmVyKTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7CiAgICAgQVNTRVJUKG5ld1Nh
bXBsZUJ1ZmZlcik7CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsK
KyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShuZXdTYW1wbGVCdWZmZXIsIHRydWUpOwogICAgIGZvciAo
Q0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytp
KSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2Vk
X2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChh
dHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFj
aG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwga0NGQm9vbGVhblRy
dWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01T
YW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwga0NGQm9vbGVhblRydWUpOwogICAgIH0K
IAogICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShhZG9wdENGKG5ld1NhbXBs
ZUJ1ZmZlcikuZ2V0KCksIG1faWQpOwpAQCAtMzI2LDcgKzMyOSw3IEBAIFJlZlB0cjxKU0M6OlVp
bnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9iakM6OmdldFJHQkFJbWFnZURhdGEoKSBj
b25zdAogICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGNvbmZvcm1lck9wdGlvbnMuZ2V0KCksIGtD
VlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBpbWFnZUZvcm1hdE51bWJlci5nZXQoKSk7
CiAgICAgUGl4ZWxCdWZmZXJDb25mb3JtZXJDViBwaXhlbEJ1ZmZlckNvbmZvcm1lcihjb25mb3Jt
ZXJPcHRpb25zLmdldCgpKTsKIAotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxD
VlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdl
dCgpKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJS
ZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOwog
ICAgIGF1dG8gcmdiYVBpeGVsQnVmZmVyID0gcGl4ZWxCdWZmZXJDb25mb3JtZXIuY29udmVydChw
aXhlbEJ1ZmZlcik7CiAgICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRy
ZXNzKHJnYmFQaXhlbEJ1ZmZlci5nZXQoKSwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsK
ICAgICBBU1NFUlQoc3RhdHVzID09IG5vRXJyKTsKQEAgLTM0MywxMCArMzQ2LDEwIEBAIFJlZlB0
cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9iakM6OmdldFJHQkFJbWFn
ZURhdGEoKSBjb25zdAogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0U2FtcGxlQnVmZmVyQXNEaXNw
bGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQogewotICAgIENG
QXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShzYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVu
dHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNh
bXBsZUJ1ZmZlciwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgQ0ZBcnJheUdl
dENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxlRGljdGlv
bmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5
UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAgICAg
ICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgIENGRGljdGlv
bmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlz
cGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogfQogCkBAIC0zNTcsNyAr
MzYwLDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldEFzRGlzcGxheUltbWVkaWF0ZWx5
KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAKIGJvb2wgTWVkaWFTYW1wbGVBVkZPYmpDOjppc0hvbW9n
ZW5lb3VzKCkgY29uc3QKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCksIHRydWUp
OworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKICAgICBpZiAo
IWF0dGFjaG1lbnRzQXJyYXkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC0zODUsNyArMzg4
LDcgQEAgVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PiBNZWRpYVNhbXBsZUFWRk9iakM6
OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMKIHsKICAgICB1c2luZyBTYW1wbGVWZWN0b3Ig
PSBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+OwogCi0gICAgQ0ZBcnJheVJlZiBhdHRh
Y2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1f
c2FtcGxlLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQo
KSwgdHJ1ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQogICAgICAgICByZXR1cm4gU2Ft
cGxlVmVjdG9yOjpmcm9tKG1ha2VSZWYoKnRoaXMpKTsKIApAQCAtNDE4LDcgKzQyMSw3IEBAIFZl
Y3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJ
bnRvSG9tb2dlbmVvdXNTYW1wbGVzCiAgICAgc2FtcGxlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHJhbmdlcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgcmFuZ2UgOiByYW5nZXMpIHsKICAgICAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlID0gbnVsbHB0cjsKLSAgICAgICAgaWYgKENN
U2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1NhbXBsZSkgIT0gbm9FcnIgfHwgIXJhd1NhbXBs
ZSkKKyAgICAgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFu
Z2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlLCAmcmF3U2FtcGxl
KSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAg
ICAgc2FtcGxlcy51bmNoZWNrZWRBcHBlbmQoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRv
cHRDRihyYXdTYW1wbGUpLmdldCgpLCBtX2lkKSk7CiAgICAgfQpAQCAtNDMyLDI0ICs0MzUsMjQg
QEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBNZWRpYVNhbXBsZUFWRk9iakM6OmNsb25l
U2FtcGxlQnVmZmVyQW5kU2V0QXNEaXNwbGEKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRy
OwotICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1h
Z2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlw
dGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCAmZm9y
bWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGF1dG8gcmV0YWluZWRGb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVz
Y3JpcHRpb24pOwogCiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBzdGF0dXMg
PSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGUsIDAsIG51bGxw
dHIsICZpdGVtQ291bnQpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1w
bGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KTsKICAgICBp
ZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFZlY3RvcjxDTVNhbXBs
ZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3Jvdyhp
dGVtQ291bnQpOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRy
KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsK
ICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENNU2FtcGxl
QnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlcjsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVy
LCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZUJ1
ZmZlcik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aElt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlw
dGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYg
KHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggMGI5YmI2NDg1
ZjNlOWUyNTM0NWFhZDRmNGU0NzA5MmM0MjlhNWNjOC4uMDIxOTIxNmQ3YzJkODhlZjU3NzUyNmQ4
ODIzMGMzZTUwM2ZkOGNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTI1OCw3ICsyNTgsNiBAQCAtICh2b2lkKWF1
ZGlvUmVuZGVyZXJXYXNBdXRvbWF0aWNhbGx5Rmx1c2hlZDooTlNOb3RpZmljYXRpb24qKW5vdGUK
IEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI3By
YWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQwpAQCAt
Mjc3LDcgKzI3Niw3IEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0TWFwSUQoKQogCiBzdGF0aWMgdm9p
ZCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCBjb25z
dCB2b2lkKiBsaXN0ZW5lciwgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSwgY29uc3Qgdm9p
ZCosIENGVHlwZVJlZikKIHsKLSAgICBpZiAoIUNGRXF1YWwoa0NNU2FtcGxlQnVmZmVyQ29uc3Vt
ZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG5vdGlmaWNhdGlvbk5hbWUpKQorICAgIGlm
ICghQ0ZFcXVhbChQQUw6OmtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZl
ckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFpc01haW5UaHJlYWQoKSkgewpAQCAtMzE2LDcgKzMxNSw3IEBAIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZhdGVB
VkZPYmpDCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAogICAgIGlmICghW1BBTDo6
Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1Nl
bGVjdG9yOkBzZWxlY3RvcihwcmVyb2xsRGVjb2RlV2l0aENvbXBsZXRpb25IYW5kbGVyOildKQot
ICAgICAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKENNTm90aWZpY2F0aW9uQ2Vu
dGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fbWFw
SUQpLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5v
dGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7CisgICAgICAgIFBBTDo6Q01O
b3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0
RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fbWFwSUQpLCBi
dWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90
aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyLCAwKTsKIAogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIG1fcGFyc2VyLT5zZXRMb2dnZXIobV9sb2dnZXIuZ2V0KCksIG1fbG9n
SWRlbnRpZmllcik7CkBAIC0zNTQsNyArMzUzLDcgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6On5Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQygpCiAgICAgY2xlYXJUcmFja3MoKTsKIAog
ICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3Rh
bmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVyb2xsRGVjb2RlV2l0aENvbXBsZXRp
b25IYW5kbGVyOildKQotICAgICAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVy
KENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHRoaXMsIGJ1ZmZl
cldhc0NvbnN1bWVkQ2FsbGJhY2ssIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9u
X0J1ZmZlckNvbnN1bWVkLCBudWxscHRyKTsKKyAgICAgICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNl
bnRlclJlbW92ZUxpc3RlbmVyKFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9j
YWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywgUEFMOjprQ01TYW1w
bGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0cik7CiAK
ICAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKQogICAgICAgICBtX2hhc1Nlc3Npb25TZW1h
cGhvcmUtPnNpZ25hbCgpOwpAQCAtOTkzLDcgKzk5Miw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyCiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlbmRlcmVyV2FzQXV0b21h
dGljYWxseUZsdXNoZWQoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlciwgY29u
c3QgQ01UaW1lJiB0aW1lKQogewotICAgIGF1dG8gbWVkaWFUaW1lID0gdG9NZWRpYVRpbWUodGlt
ZSk7CisgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKHRpbWUpOwogICAgIEVS
Uk9SX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYVRpbWUpOwogICAgIEF0b21TdHJpbmcgdHJhY2tJ
ZDsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2F1ZGlvUmVuZGVyZXJzKSB7CkBAIC0xMTAxLDEz
ICsxMTAwLDEzIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1w
bGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKICAgICBhdXRvIGxvZ1NpdGVJZGVu
dGlmaWVyID0gTE9HSURFTlRJRklFUjsKICAgICBERUJVR19MT0cobG9nU2l0ZUlkZW50aWZpZXIs
ICJ0cmFjayBJRCA9ICIsIHRyYWNrSUQsICIsIHNhbXBsZSA9ICIsIHNhbXBsZS5nZXQoKSk7CiAK
LSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVC
dWZmZXIpOworICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBBU1NFUlQoZm9ybWF0RGVzY3JpcHRpb24pOwogICAg
IGlmICghZm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAgRVJST1JfTE9HKGxvZ1NpdGVJZGVu
dGlmaWVyLCAiUmVjZWl2ZWQgc2FtcGxlIHdpdGggYSBudWxsIGZvcm1hdERlc2NyaXB0aW9uLiBC
YWlsaW5nLiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGF1dG8gbWVkaWFUeXBlID0g
Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbik7CisgICAg
YXV0byBtZWRpYVR5cGUgPSBQQUw6OkNNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9y
bWF0RGVzY3JpcHRpb24pOwogCiAgICAgaWYgKHRyYWNrSUQgPT0gbV9lbmFibGVkVmlkZW9UcmFj
a0lEKSB7CiAgICAgICAgIC8vIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHdpbGwgdGhyb3cg
YW4gdW4tZG9jdW1lbnRlZCBleGNlcHRpb24gaWYgcGFzc2VkIGEgc2FtcGxlCkBAIC0xMTIwLDcg
KzExMTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxl
KFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAgICAgICAgIH0KIAogICAgICAgICBh
dXRvIHBsYXllciA9IHRoaXMtPnBsYXllcigpOwotICAgICAgICBGbG9hdFNpemUgZm9ybWF0U2l6
ZSA9IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1l
bnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7CisgICAgICAgIEZsb2F0U2l6
ZSBmb3JtYXRTaXplID0gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0
UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwog
ICAgICAgICBpZiAoIW1fY2FjaGVkU2l6ZSB8fCBmb3JtYXRTaXplICE9IG1fY2FjaGVkU2l6ZS52
YWx1ZSgpKSB7CiAgICAgICAgICAgICBERUJVR19MT0cobG9nU2l0ZUlkZW50aWZpZXIsICJzaXpl
IGNoYW5nZWQgdG8gIiwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICBib29sIHNpemVXYXNOdWxs
ID0gIW1fY2FjaGVkU2l6ZTsKQEAgLTExNDYsOSArMTE0NSw5IEBAIHZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwg
Y29uc3QKIAogICAgICAgICAgICAgaWYgKCFoYXZlUHJlcm9sbERlY29kZVdpdGhDb21wbGV0aW9u
SGFuZGxlcikgewogICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUNv
cHk7Ci0gICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwgJnJhd1NhbXBs
ZUNvcHkpOworICAgICAgICAgICAgICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtD
RkFsbG9jYXRvckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwg
JnJhd1NhbXBsZUNvcHkpOwogICAgICAgICAgICAgICAgIGF1dG8gc2FtcGxlQ29weSA9IGFkb3B0
Q0YocmF3U2FtcGxlQ29weSk7Ci0gICAgICAgICAgICAgICAgQ01TZXRBdHRhY2htZW50KHNhbXBs
ZUNvcHkuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5vdGlmaWNhdGlv
bldoZW5Db25zdW1lZCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilAeyAoX19icmlkZ2UgTlNT
dHJpbmcgKilrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRpb25XaGVu
Q29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZE5vdFByb3BhZ2F0ZSk7
CisgICAgICAgICAgICAgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQ29weS5nZXQoKSwg
UEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRpb25XaGVuQ29u
c3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9fYnJpZGdlIE5TU3RyaW5nICop
UEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRpb25XaGVuQ29u
c3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZE5vdFByb3BhZ2F0ZSk7CiAg
ICAgICAgICAgICAgICAgW21fZGlzcGxheUxheWVyIGVucXVldWVTYW1wbGVCdWZmZXI6c2FtcGxl
Q29weS5nZXQoKV07CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgICAgICAgICBw
bGF5ZXItPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUodHJ1ZSk7CkBAIC0xMjk4LDE0ICsxMjk3
LDE0IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5vdGlmeUNsaWVudFdoZW5S
ZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21TCiBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21T
dHJpbmcmIHRyYWNrSURTdHJpbmcpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBhcnNlSW50ZWdlckFs
bG93aW5nVHJhaWxpbmdKdW5rPHVpbnQ2NF90Pih0cmFja0lEU3RyaW5nKS52YWx1ZV9vcigwKSA9
PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQKLSAgICAgICAgJiYgW2dldEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoZXhw
ZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTopXTsKKyAgICAg
ICAgJiYgW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3RhbmNl
c1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVC
dWZmZXJQcmVzZW50YXRpb25UaW1lOildOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJp
bmcmIHRyYWNrSURTdHJpbmcsIGNvbnN0IE1lZGlhVGltZSYgcHJlc2VudGF0aW9uVGltZSkKIHsK
ICAgICBBU1NFUlQoY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0cmFja0lE
U3RyaW5nKSk7CiAgICAgaWYgKGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUo
dHJhY2tJRFN0cmluZykpCi0gICAgICAgIFttX2Rpc3BsYXlMYXllciBleHBlY3RNaW5pbXVtVXBj
b21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOnRvQ01UaW1lKHByZXNlbnRhdGlvblRp
bWUpXTsKKyAgICAgICAgW21fZGlzcGxheUxheWVyIGV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBs
ZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6UEFMOjp0b0NNVGltZShwcmVzZW50YXRpb25UaW1lKV07
CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNsZWFyTWluaW11bVVwY29t
aW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCBlNmRmY2IzNDk2ZjkyZDJhYTIxZjg3
Njg0NjQ4MDhiMTYxZDU3NzZiLi5iNWQ4ZjUzNmEyMDc4Zjk0ZTQ0ZGFjNzE4MzU3MTM1ODhkZjQz
MTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9T
b3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApAQCAtMjU4LDggKzI1OCw2
IEBAIHRlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBh
cnNlcldlYk06OlN0YXRlPiB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKLQogc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSB7IHJldHVybiBM
b2dNZWRpYTsgfQogc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIHsgcmV0dXJuICJT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNIjsgfQogCkBAIC0xMDU3LDcgKzEwNTUsNyBAQCB3ZWJtOjpT
dGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFtZShjb25zdCBGcmFtZU1ldGFkYXRh
JiBtZXRhZGF0YSwgUmVhZAogICAgICAgICByZXR1cm4gU2tpcChyZWFkZXIsIGJ5dGVzUmVtYWlu
aW5nKTsKICAgICB9CiAKLSAgICByZXR1cm4gdHJhY2tEYXRhLT5jb25zdW1lRnJhbWVEYXRhKCpy
ZWFkZXIsIG1ldGFkYXRhLCBieXRlc1JlbWFpbmluZywgQ01UaW1lTWFrZShibG9jay0+dGltZWNv
ZGUgKyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUpLCBibG9jay0+bnVtX2ZyYW1lcyk7
CisgICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZyYW1lRGF0YSgqcmVhZGVyLCBtZXRhZGF0
YSwgYnl0ZXNSZW1haW5pbmcsIFBBTDo6Q01UaW1lTWFrZShibG9jay0+dGltZWNvZGUgKyBtX2N1
cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUpLCBibG9jay0+bnVtX2ZyYW1lcyk7CiB9CiAKIHZv
aWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6cHJvdmlkZU1lZGlhRGF0YShSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlciwgdWludDY0X3QgdHJhY2tJRCwgc3RkOjpvcHRp
b25hbDxzaXplX3Q+IGJ5dGVSYW5nZU9mZnNldCkKQEAgLTEwODEsNyArMTA3OSw3IEBAIHdlYm06
OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZy
YW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgQ01CbG9ja0J1ZmZlclJlZiByYXdCbG9ja0J1ZmZlciA9
IG51bGxwdHI7CiAKICAgICBpZiAoIW1fY3VycmVudEJsb2NrQnVmZmVyKSB7Ci0gICAgICAgIGF1
dG8gZXJyID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxs
cHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3QmxvY2tCdWZmZXIpOworICAgICAgICBhdXRv
IGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBu
dWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3QmxvY2tCdWZmZXIpOwogICAgICAgICBp
ZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJs
b2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsK
ICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKQEAgLTEw
OTAsNyArMTA4OCw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRl
b1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgICAgIG1fY3VycmVu
dEJsb2NrQnVmZmVyID0gYWRvcHRDRihyYXdCbG9ja0J1ZmZlcik7CiAgICAgICAgIG1fY3VycmVu
dEJsb2NrQnVmZmVyUG9zaXRpb24gPSAwOwogCi0gICAgICAgIGVyciA9IENNQmxvY2tCdWZmZXJB
c3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSk7CisgICAgICAgIGVy
ciA9IFBBTDo6Q01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5KG1fY3VycmVudEJsb2NrQnVm
ZmVyLmdldCgpKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19F
UlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICAgICAgcmV0dXJuIFNr
aXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTEwMSw3ICsxMDk5LDcgQEAgd2VibTo6
U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjb25zdW1lRnJh
bWVEYXRhKHdlYm06OlJlYWQKICAgICB3aGlsZSAoYnl0ZXNUb1JlYWQpIHsKICAgICAgICAgc2l6
ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9IDA7CiAgICAgICAgIHVpbnQ4X3QqIGJsb2NrQnVm
ZmVyRGF0YSA9IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckdldERh
dGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRCbG9ja0J1ZmZl
clBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioqKSZibG9j
a0J1ZmZlckRhdGEpOworICAgICAgICBhdXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckdldERh
dGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRCbG9ja0J1ZmZl
clBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioqKSZibG9j
a0J1ZmZlckRhdGEpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9H
X0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIgZmFpbGVkIHdp
dGggZXJyb3IiLCBlcnIpOwogICAgICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNS
ZW1haW5pbmcpOwpAQCAtMTEzNSw3ICsxMTMzLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIK
ICNpZiBFTkFCTEUoVlA5KQogICAgIHVpbnQ4X3QqIGJsb2NrQnVmZmVyRGF0YSA9IG51bGxwdHI7
CiAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9IDA7Ci0gICAgYXV0byBlcnIgPSBD
TUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIDAs
ICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0
YSk7CisgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcihtX2N1
cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgMCwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0
ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBB
UlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBm
YWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgIHJldHVybjsKQEAgLTExNzksOSArMTE3
Nyw5IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0
ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAgICAgICAgIGR1cmF0aW9uID0gdHJhY2su
ZGVmYXVsdF9kdXJhdGlvbi52YWx1ZSgpICogcHJlc2VudGF0aW9uVGltZS50aW1lc2NhbGUgLyAx
MDAwMDAwMDAwOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQnVmZmVyID0gbnVs
bHB0cjsKLSAgICBzaXplX3QgZnJhbWVTaXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgo
bV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOwotICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1p
bmcgPSB7IENNVGltZU1ha2UoZHVyYXRpb24sIHByZXNlbnRhdGlvblRpbWUudGltZXNjYWxlKSwg
cHJlc2VudGF0aW9uVGltZSwgcHJlc2VudGF0aW9uVGltZSB9OwotICAgIGVyciA9IENNU2FtcGxl
QnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jdXJyZW50QmxvY2tCdWZm
ZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIHNhbXBsZUNvdW50LCAx
LCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2FtcGxlQnVmZmVyKTsKKyAgICBzaXplX3Qg
ZnJhbWVTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX2N1cnJlbnRCbG9j
a0J1ZmZlci5nZXQoKSk7CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZyA9IHsgUEFMOjpD
TVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRpbWVzY2FsZSksIHByZXNlbnRh
dGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKKyAgICBlcnIgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jdXJyZW50QmxvY2tCdWZmZXIu
Z2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIHNhbXBsZUNvdW50LCAxLCAm
dGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyKSB7
CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHkgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICByZXR1cm47CkBAIC0x
MTkxLDcgKzExODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tE
YXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogICAgIG1fY3VycmVudEJs
b2NrQnVmZmVyID0gbnVsbHB0cjsKICAgICBtX2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uID0g
MDsKIAotICAgIGF1dG8gYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
QXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOworICAgIGF1dG8gYXR0
YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CiAgICAgQVNTRVJUKGF0dGFjaG1lbnRzQXJy
YXkpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkgewogICAgICAgICBQQVJTRVJfTE9HX0VS
Uk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkg
cmV0dXJuZWQgTlVMTCIpOwpAQCAtMTIwMSw3ICsxMTk5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGlt
ZSYgcHIKICAgICBpZiAoIWlzS2V5KSB7CiAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMCwgY291
bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7IGkgPCBjb3VudDsgKytpKSB7
CiAgICAgICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tl
ZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
YXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUo
YXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYywga0NGQm9vbGVhblRy
dWUpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6
a0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTEyODIsMTIgKzEyODAsMTIgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1
ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJl
YWQKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGF1dG8gc3RyZWFtRGVzY3JpcHRpb24gPSBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1hdERlc2NyaXB0aW9uLmdl
dCgpKTsKKyAgICAgICAgYXV0byBzdHJlYW1EZXNjcmlwdGlvbiA9IFBBTDo6Q01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3JtYXREZXNjcmlwdGlvbi5n
ZXQoKSk7CiAgICAgICAgIGlmICghc3RyZWFtRGVzY3JpcHRpb24pIHsKICAgICAgICAgICAgIFBB
UlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0
cmVhbUJhc2ljRGVzY3JpcHRpb24gZmFpbGVkIik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgm
cmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CiAgICAgICAgIH0KLSAgICAgICAgbV9wYWNrZXREdXJh
dGlvbiA9IENNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRpb24tPm1GcmFtZXNQZXJQYWNrZXQsIHN0
cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7CisgICAgICAgIG1fcGFja2V0RHVyYXRpb24g
PSBQQUw6OkNNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRpb24tPm1GcmFtZXNQZXJQYWNrZXQsIHN0
cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7CiAKICAgICAgICAgc2V0Rm9ybWF0RGVzY3Jp
cHRpb24oV1RGTW92ZShmb3JtYXREZXNjcmlwdGlvbikpOwogICAgIH0gZWxzZSBpZiAoY29kZWMo
KSA9PSBDb2RlY1R5cGU6Ok9wdXMpIHsKQEAgLTEzMDksNyArMTMwNyw3IEBAIHdlYm06OlN0YXR1
cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0
YSh3ZWJtOjpSZWFkCiAgICAgbV9jdXJyZW50UGFja2V0Qnl0ZU9mZnNldCA9IHN0ZDo6bnVsbG9w
dDsKICAgICBtX2N1cnJlbnRQYWNrZXRTaXplID0gc3RkOjpudWxsb3B0OwogCi0gICAgYXV0byBz
YW1wbGVEdXJhdGlvbiA9IENNVGltZUdldFNlY29uZHMoQ01UaW1lU3VidHJhY3QocHJlc2VudGF0
aW9uVGltZSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lKSkgKyBDTVRpbWVHZXRTZWNvbmRzKG1f
cGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7CisgICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9
IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhQQUw6OkNNVGltZVN1YnRyYWN0KHByZXNlbnRhdGlvblRp
bWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgUEFMOjpDTVRpbWVHZXRTZWNvbmRzKG1f
cGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7CiAgICAgaWYgKHNhbXBsZUR1cmF0aW9uID49
IG1fbWluaW11bVNhbXBsZUR1cmF0aW9uKQogICAgICAgICBjcmVhdGVTYW1wbGVCdWZmZXIobWV0
YWRhdGEucG9zaXRpb24pOwogCkBAIC0xMzI0LDIxICsxMzIyLDIxIEBAIHZvaWQgU291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihzdGQ6Om9w
dGlvbmFsPHNpCiAgICAgQVNTRVJUKCFtX3BhY2tldERhdGEuaXNFbXB0eSgpKTsKIAogICAgIENN
QmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyID0gQ01C
bG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxs
cHRyLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVs
bHB0ciwgMCwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDTUJsb2NrQnVmZmVyQXNzdXJl
TWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6Q01CbG9j
a0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRy
LCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0
ciwgMCwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVt
b3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNF
Ul9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5Qmxv
Y2sgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1
dG8gYnVmZmVyID0gYWRvcHRDRihibG9ja0J1ZmZlcik7CiAKLSAgICBlcnIgPSBDTUJsb2NrQnVm
ZmVyUmVwbGFjZURhdGFCeXRlcyhtX3BhY2tldERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0KCksIDAs
IG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpKTsKKyAgICBlcnIgPSBQQUw6OkNNQmxvY2tCdWZm
ZXJSZXBsYWNlRGF0YUJ5dGVzKG1fcGFja2V0RGF0YS5kYXRhKCksIGJ1ZmZlci5nZXQoKSwgMCwg
bV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFS
U0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMg
ZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBlcnIgPSBDTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgbV9w
YWNrZXREZXNjcmlwdGlvbnMuc2l6ZSgpLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUsIG1fcGFj
a2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnJhd1NhbXBsZUJ1ZmZlcik7CisgICAgZXJyID0gUEFM
OjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24oKS5nZXQo
KSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuc2l6ZSgpLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUs
IG1fcGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYg
KGVycikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVy
cik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KaW5kZXggZTlmODZkZWE0
MzhlODk1ZTYzZGJkZTA3YzRkOTVmOWI1YWVmMThjYy4uYWE3MzZjZjE0OWE0NzRiYTI2M2NhYWNk
NjY0MmRlNzhmNzc4ODc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KQEAgLTQ3LDcgKzQ3LDYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcg
bmFtZXNwYWNlIHdlYm07CiAKIFZQOVRlc3RpbmdPdmVycmlkZXMmIFZQOVRlc3RpbmdPdmVycmlk
ZXM6OnNpbmdsZXRvbigpCkBAIC0zNjIsMTEgKzM2MSwxMSBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYg
Y29udmVydFRvQ01Db2xvclByaW1hcmllcyh1aW50OF90IHByaW1hcmllcykKICAgICBjYXNlIFZQ
Q29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVzOjpTTVBURV9TVF8yNDA6CiAgICAgICAgIHJldHVy
biBrQ1ZJbWFnZUJ1ZmZlckNvbG9yUHJpbWFyaWVzX1NNUFRFX0M7CiAgICAgY2FzZSBWUENvbmZp
Z3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfUlBfNDMxXzI6Ci0gICAgICAgIHJldHVybiBr
Q01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMzsKKyAgICAgICAgcmV0dXJu
IFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7CiAgICAgY2Fz
ZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfRUdfNDMyXzE6Ci0gICAgICAg
IHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NTsKKyAgICAg
ICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjU7
CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6QlRfMjAyMF9Ob25jb25z
dGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2Ny
aXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMDsKICAgICB9CiAKICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTQyMCwxOCArNDE5LDE4IEBAIHN0YXRpYyBDRlN0cmluZ1JlZiBjb252ZXJ0VG9D
TVRyYW5zZmVyRnVuY3Rpb24odWludDhfdCBjaGFyYWN0ZXJpc3RpY3MpCiAgICAgY2FzZSBWUENv
bmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfMjQwOgogICAgICAg
ICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJUcmFuc2ZlckZ1bmN0aW9uX1NNUFRFXzI0ME1fMTk5NTsK
ICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpTTVBURV9T
VF8yMDg0OgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX1NNUFRFX1NUXzIwODRfUFE7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BROwogICAgIGNhc2UgVlBDb25m
aWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBfMTBiaXQ6CiAgICAgY2Fz
ZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6QlRfMjAyMF8xMmJpdDoK
LSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVf
Ul8yMDIwOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hh
cmFjdGVyaXN0aWNzOjpTTVBURV9TVF80MjhfMToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMTsKKyAgICAgICAgcmV0dXJu
IFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8x
OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIx
MDBfSExHOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0lUVV9SXzIxMDBfSExHOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEc7CiAgICAgY2FzZSBWUENvbmZpZ3Vy
YXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6SUVDXzYxOTY2XzJfMToKLSAgICAgICAgcmV0
dXJuIGNhbkxvYWRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9zUkdCKCkgPyBQQUw6OmdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX3NSR0IoKSA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgPyBQ
QUw6OmdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NS
R0IoKSA6IG51bGxwdHI7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3Rl
cmlzdGljczo6TGluZWFyOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFu
c2ZlckZ1bmN0aW9uX0xpbmVhcjsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcjsKICAgICB9CiAKICAgICByZXR1cm4gbnVsbHB0
cjsKQEAgLTQ2Nyw3ICs0NjYsNyBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRvQ01ZQ2JD
Uk1hdHJpeCh1aW50OF90IGNvZWZmaWNpZW50cykKIHsKICAgICBzd2l0Y2ggKGNvZWZmaWNpZW50
cykgewogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uTWF0cml4Q29lZmZpY2llbnRzOjpCVF8yMDIw
X05vbmNvbnN0YW50X0x1bWluYW5jZToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0
aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0
RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwOwogICAgIGNhc2UgVlBDb25maWd1cmF0
aW9uTWF0cml4Q29lZmZpY2llbnRzOjpCVF80NzBfN19CRzoKICAgICBjYXNlIFZQQ29uZmlndXJh
dGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNjAxXzc6CiAgICAgICAgIHJldHVybiBrQ1ZJbWFn
ZUJ1ZmZlcllDYkNyTWF0cml4X0lUVV9SXzYwMV80OwpAQCAtNTQzLDExICs1NDIsMTEgQEAgc3Rh
dGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVGb3JtYXREZXNjcmlw
dGlvbkZyb21WUENvZGVjQ29uZmkKICAgICBDRlR5cGVSZWYgY29uZmlndXJhdGlvblZhbHVlc1td
ID0geyBkYXRhLmdldCgpIH07CiAgICAgYXV0byBjb25maWd1cmF0aW9uRGljdCA9IGFkb3B0Q0Yo
Q0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbmZpZ3VyYXRpb25LZXlz
LCBjb25maWd1cmF0aW9uVmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGNvbmZpZ3VyYXRpb25LZXlz
KSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1
ZUNhbGxCYWNrcykpOwogCi0gICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc0tleXMgeyBr
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0
b21zIH07CisgICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc0tleXMgeyBQQUw6OmtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMg
fTsKICAgICBWZWN0b3I8Q0ZUeXBlUmVmPiBleHRlbnNpb25zVmFsdWVzID0geyBjb25maWd1cmF0
aW9uRGljdC5nZXQoKSB9OwogCiAgICAgaWYgKHJlY29yZC52aWRlb0Z1bGxSYW5nZUZsYWcgPT0g
VlBDb25maWd1cmF0aW9uUmFuZ2U6OkZ1bGxSYW5nZSkgewotICAgICAgICBleHRlbnNpb25zS2V5
cy5hcHBlbmQoa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOwor
ICAgICAgICBleHRlbnNpb25zS2V5cy5hcHBlbmQoUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbyk7CiAgICAgICAgIGV4dGVuc2lvbnNWYWx1ZXMuYXBwZW5k
KGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbi5tbQppbmRleCBjZWExNTZhZTJmYmUyNWFkYTAwNzY2OGU5MWQ1MGU1NjFjNjQyZTRl
Li44ZWVmM2IyZWE2MDRiZDE5ODNkNzdkMzhiZjUyMWE4ZDIxZjIwZWQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCkBAIC00Myw5ICs0MywxMiBAQAogI2ltcG9y
dCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgi
CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KLVdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01T
YW1wbGVCdWZmZXIpOworLy8gRXF1aXZhbGVudCB0byBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlU
KENNU2FtcGxlQnVmZmVyKTsKKy8vIE5lZWRlZCBkdWUgdG8gcmVxdWlyZW1lbnQgb2Ygc3BlY2lm
eWluZyB0aGUgUEFMIG5hbWVzcGFjZS4KK3RlbXBsYXRlIDw+CitzdHJ1Y3QgV1RGOjpDRlR5cGVU
cmFpdDxDTVNhbXBsZUJ1ZmZlclJlZj4geworICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQgdHlw
ZUlEKHZvaWQpIHsgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsgfQorfTsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Miw3ICs3NSw3IEBAIHZvaWQgV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZShDTVRpbWViYXNlUmVmIHRpbWViYXNlKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFz
ZVJlbW92ZVRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJj
ZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVJlbW92ZVRpbWVyRGlzcGF0Y2hTb3Vy
Y2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICBtX3RpbWVi
YXNlID0gdGltZWJhc2U7CiAKQEAgLTg0LDcgKzg3LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OnNldFRpbWViYXNlKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgIGRpc3BhdGNoX2FjdGl2YXRlKG1fdGltZXJTb3VyY2UuZ2V0
KCkpOwogICAgICAgICB9Ci0gICAgICAgIENNVGltZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNl
KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNN
VGltZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJT
b3VyY2UuZ2V0KCkpOwogICAgIH0KIH0KIApAQCAtMTA0LDEyICsxMDcsMTIgQEAgdm9pZCBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246Om1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRh
KCkKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgYm9vbCBkaXNwbGF5aW5nKQogewogICAgIENNSXRl
bUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1Db3Vu
dCkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkoc2FtcGxlQnVmZmVyLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5
OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgaXRl
bUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIg
IT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZm
ZXIsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCiAgICAgICAg
IHJldHVybjsKIAogICAgIC8vIENNQnVmZmVyQ2FsbGJhY2tzIGNvbnRhaW5zIDY0LWJpdCBwb2lu
dGVycyB0aGF0IGFyZW4ndCA4LWJ5dGUgYWxpZ25lZC4gVG8gc3VwcHJlc3MgdGhlIGxpbmtlcgpA
QCAtMTM0LDcgKzEzNyw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1
ZXVlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwKICAgICAgICAgc3RhdGlj
X2Fzc2VydChzaXplb2YoY2FsbGJhY2tzLmNhbGxiYWNrcy52ZXJzaW9uKSA9PSBzaXplb2YodWlu
dDMyX3QpLCAiVmVyc2lvbiBmaWVsZCBtdXN0IGJlIDQgYnl0ZXMiKTsKICAgICAgICAgc3RhdGlj
X2Fzc2VydChhbGlnbm9mKEJ1ZmZlckNhbGxiYWNrcykgPT0gNCwgIkNNQnVmZmVyQ2FsbGJhY2tz
IHN0cnVjdCBtdXN0IGhhdmUgNCBieXRlIGFsaWdubWVudCIpOwogCi0gICAgICAgIENNQnVmZmVy
UXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxi
YWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNh
bGxiYWNrcywgJm91dFF1ZXVlKTsKICAgICAgICAgbV9wcm9kdWNlclF1ZXVlID0gYWRvcHRDRihv
dXRRdWV1ZSk7CiAgICAgfQogCkBAIC0xNTYsNyArMTU5LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVm
ZmVyLAogICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihjYWxsYmFja3MuY2FsbGJhY2tzLnZl
cnNpb24pID09IHNpemVvZih1aW50MzJfdCksICJWZXJzaW9uIGZpZWxkIG11c3QgYmUgNCBieXRl
cyIpOwogICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoQnVmZmVyQ2FsbGJhY2tzKSA9PSA0
LCAiQ01CdWZmZXJDYWxsYmFja3Mgc3RydWN0IGFsaWdubWVudCBtdXN0IGJlIDQiKTsKIAotICAg
ICAgICBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2Fw
YWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOworICAgICAgICBQQUw6OkNN
QnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwg
JmNhbGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fY29uc3VtZXJRdWV1
ZSA9IGFkb3B0Q0Yob3V0UXVldWUpOwogICAgIH0KIApAQCAtMTc3LDIwICsxODAsMjAgQEAgYm9v
bCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZShDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGUsIGIKICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgYXV0byBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKG1fdGlt
ZWJhc2UuZ2V0KCkpOwotICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gQ01TYW1wbGVC
dWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKLSAgICBhdXRvIGR1cmF0aW9u
ID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOwotICAgIGF1dG8gcHJlc2VudGF0
aW9uRW5kVGltZSA9IENNVGltZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9uKTsK
LSAgICBpZiAoQ01UaW1lQ29tcGFyZShwcmVzZW50YXRpb25FbmRUaW1lLCBjdXJyZW50VGltZSkg
Pj0gMCkKKyAgICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShtX3Rp
bWViYXNlLmdldCgpKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKKyAgICBhdXRvIGR1
cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CisgICAgYXV0
byBwcmVzZW50YXRpb25FbmRUaW1lID0gUEFMOjpDTVRpbWVBZGQocHJlc2VudGF0aW9uU3RhcnRU
aW1lLCBkdXJhdGlvbik7CisgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShwcmVzZW50YXRpb25F
bmRUaW1lLCBjdXJyZW50VGltZSkgPj0gMCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBD
RkFycmF5UmVmIGF0dGFjaG1lbnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50
c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsK
ICAgICBpZiAoIWF0dGFjaG1lbnRzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGZvciAo
Q0ZJbmRleCBpbmRleCA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzKTsg
aW5kZXggPCBjb3VudDsgKytpbmRleCkgewogICAgICAgICBDRkRpY3Rpb25hcnlSZWYgYXR0YWNo
bWVudERpY3QgPSAoQ0ZEaWN0aW9uYXJ5UmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNo
bWVudHMsIGluZGV4KTsKLSAgICAgICAgQ0ZCb29sZWFuUmVmIGRlcGVuZGVkT24gPSAoQ0ZCb29s
ZWFuUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGF0dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRh
Y2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzKTsKKyAgICAgICAgQ0ZCb29sZWFuUmVmIGRl
cGVuZGVkT24gPSAoQ0ZCb29sZWFuUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGF0dGFjaG1lbnRE
aWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMpOwog
ICAgICAgICBpZiAoZGVwZW5kZWRPbiAmJiAhQ0ZCb29sZWFuR2V0VmFsdWUoZGVwZW5kZWRPbikp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjAzLDE0ICsyMDYsMTQgQEAg
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29tcHJlc3Npb25TZXNz
aW9uRm9yU2FtcGxlKENNU2FtcGxlQnUKICAgICBpZiAoaXNJbnZhbGlkYXRlZCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsK
KyAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOwogICAgIGlm
IChtX2RlY29tcHJlc3Npb25TZXNzaW9uICYmICFWVERlY29tcHJlc3Npb25TZXNzaW9uQ2FuQWNj
ZXB0Rm9ybWF0RGVzY3JpcHRpb24obV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSwgdmlkZW9G
b3JtYXREZXNjcmlwdGlvbikpIHsKICAgICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRG
b3JBc3luY2hyb25vdXNGcmFtZXMobV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSk7CiAgICAg
ICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIGlmICgh
bV9kZWNvbXByZXNzaW9uU2Vzc2lvbikgewotICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVz
Y3JpcHRpb24oc2FtcGxlKTsKKyAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZp
ZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3Jp
cHRpb24oc2FtcGxlKTsKICAgICAgICAgYXV0byB2aWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uID0g
QHsgKF9fYnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyOiBAKCBtX2hhcmR3YXJlRGVjb2RlckVu
YWJsZWQgKSB9OwogCiAgICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlczsKQEAgLTI1Niw3
ICsyNTksNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxl
KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYm9vbCBkaQogCiAgICAgTW9ub3RvbmljVGltZSBz
dGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICBWVERlY29tcHJlc3Npb25TZXNz
aW9uRGVjb2RlRnJhbWVXaXRoT3V0cHV0SGFuZGxlcihtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdl
dCgpLCBzYW1wbGUsIGZsYWdzLCBudWxscHRyLCBbdGhpcywgZGlzcGxheWluZywgc3RhcnRUaW1l
XShPU1N0YXR1cyBzdGF0dXMsIFZURGVjb2RlSW5mb0ZsYWdzIGluZm9GbGFncywgQ1ZJbWFnZUJ1
ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1l
IHByZXNlbnRhdGlvbkR1cmF0aW9uKSB7Ci0gICAgICAgIGRvdWJsZSBkZWx0YVJhdGlvID0gKE1v
bm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5zZWNvbmRzKCkgLyBDTVRpbWVHZXRTZWNv
bmRzKHByZXNlbnRhdGlvbkR1cmF0aW9uKTsKKyAgICAgICAgZG91YmxlIGRlbHRhUmF0aW8gPSAo
TW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLnNlY29uZHMoKSAvIFBBTDo6Q01UaW1l
R2V0U2Vjb25kcyhwcmVzZW50YXRpb25EdXJhdGlvbik7CiAKICAgICAgICAgdXBkYXRlUW9zV2l0
aERlY29kZVRpbWVTdGF0aXN0aWNzKGRlbHRhUmF0aW8pOwogICAgICAgICBoYW5kbGVEZWNvbXBy
ZXNzaW9uT3V0cHV0KGRpc3BsYXlpbmcsIHN0YXR1cywgaW5mb0ZsYWdzLCBpbWFnZUJ1ZmZlciwg
cHJlc2VudGF0aW9uVGltZVN0YW1wLCBwcmVzZW50YXRpb25EdXJhdGlvbik7CkBAIC0yODksNyAr
MjkyLDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJl
c3Npb25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKICAgICAgICAgKyttX2Ryb3BwZWRWaWRl
b0ZyYW1lczsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiByYXdJbWFnZUJ1ZmZl
ckRlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8IG5vRXJy
ICE9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9j
YXRvckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbikp
IHsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8IG5vRXJyICE9IFBBTDo6Q01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3
SW1hZ2VCdWZmZXIsICZyYXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uKSkgewogICAgICAgICArK21f
Y29ycnVwdGVkVmlkZW9GcmFtZXM7CiAgICAgICAgIC0tbV9mcmFtZXNCZWluZ0RlY29kZWQ7CiAg
ICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMDQsNyArMzA3
LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Np
b25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKICAgICB9OwogCiAgICAgQ01TYW1wbGVCdWZm
ZXJSZWYgcmF3SW1hZ2VTYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChub0VyciAhPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHJhd0ltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdldCgpLCAmaW1hZ2VC
dWZmZXJUaW1pbmcsICZyYXdJbWFnZVNhbXBsZUJ1ZmZlcikpIHsKKyAgICBpZiAobm9FcnIgIT0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdldCgpLCAm
aW1hZ2VCdWZmZXJUaW1pbmcsICZyYXdJbWFnZVNhbXBsZUJ1ZmZlcikpIHsKICAgICAgICAgKytt
X2NvcnJ1cHRlZFZpZGVvRnJhbWVzOwogICAgICAgICAtLW1fZnJhbWVzQmVpbmdEZWNvZGVkOwog
ICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzE4LDExICsz
MjEsMTEgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJl
c3Npb25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKIAogUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0Rmlyc3RWaWRlb0ZyYW1lKCkK
IHsKLSAgICBpZiAoIW1fcHJvZHVjZXJRdWV1ZSB8fCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKQorICAgIGlmICghbV9wcm9kdWNlclF1ZXVlIHx8IFBBTDo6Q01C
dWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1w
bGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJR
dWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOwotICAgIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKUNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CisgICAgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2Vk
X2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRS
ZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOworICAgIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKICAgICBBU1NFUlQoQ0ZHZXRU
eXBlSUQoaW1hZ2VCdWZmZXIuZ2V0KCkpID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQoKSk7CiAK
ICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzM1LDI1ICszMzgs
MjUgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUo
KQogICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB0aW1l
ID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7
CisgICAgYXV0byB0aW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1l
KG1fdGltZWJhc2UuZ2V0KCkpKTsKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoJXApIC0gcHVyZ2luZyBhbGwgc2FtcGxlcyBiZWZv
cmUgdGltZSglcykiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKIAogICAg
IE1lZGlhVGltZSBuZXh0RmlyZVRpbWUgPSBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1l
KCk7CiAgICAgYm9vbCByZWxlYXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAgd2hpbGUg
KENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxl
QnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkg
ewotICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlh
VGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkp
OwotICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxl
QnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZm
ZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBB
TDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsKKyAgICAg
ICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOwor
ICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRpbWUgcHJl
c2VudGF0aW9uRW5kVGltZXN0YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVyYXRpb247
CiAgICAgICAgIGlmICh0aW1lID4gcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wKSB7Ci0gICAgICAg
ICAgICBDRlJlbGVhc2UoQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1
ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1ZXVlRGVx
dWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIHJlbGVh
c2VkSW1hZ2VCdWZmZXJzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFU
aW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2Vy
UXVldWUuZ2V0KCkpKTsKLSAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVm
ZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSk7CisgICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJR
dWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkp
OworICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVl
R2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAg
ICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0Rl
cXVldWUoJXApIC0gcXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcoYmVnaW4pLnV0Zjgo
KS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKIApAQCAtMzY1
LDcgKzM2OCw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNE
ZXF1ZXVlKCkKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKIAog
ICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVx
dWV1ZSglcCkgLSBxdWV1ZSBlbXB0eSIsIHRoaXMpOwotICAgIENNVGltZWJhc2VTZXRUaW1lckRp
c3BhdGNoU291cmNlTmV4dEZpcmVUaW1lKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2Uu
Z2V0KCksIFBBTDo6dG9DTVRpbWUobmV4dEZpcmVUaW1lKSwgMCk7CisgICAgUEFMOjpDTVRpbWVi
YXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZU5leHRGaXJlVGltZShtX3RpbWViYXNlLmdldCgpLCBt
X3RpbWVyU291cmNlLmdldCgpLCBQQUw6OnRvQ01UaW1lKG5leHRGaXJlVGltZSksIDApOwogfQog
CiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBib29sIGRpc3BsYXlpbmcpCkBAIC0zODMsMTcgKzM4
NiwxNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRT
YW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLAogICAgIGJvb2wgc2hvdWxkTm90aWZ5ID0g
dHJ1ZTsKIAogICAgIGlmIChkaXNwbGF5aW5nICYmIG1fdGltZWJhc2UpIHsKLSAgICAgICAgYXV0
byBjdXJyZW50UmF0ZSA9IENNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOwotICAg
ICAgICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGlt
ZShtX3RpbWViYXNlLmdldCgpKSk7Ci0gICAgICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1l
ID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFt
cChzYW1wbGUpKTsKLSAgICAgICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJlc2VudGF0
aW9uU3RhcnRUaW1lICsgUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9u
KHNhbXBsZSkpOworICAgICAgICBhdXRvIGN1cnJlbnRSYXRlID0gUEFMOjpDTVRpbWViYXNlR2V0
UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKKyAgICAgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6
dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7Cisg
ICAgICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOworICAgICAg
ICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBwcmVzZW50YXRpb25TdGFydFRpbWUgKyBQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpKTsKICAg
ICAgICAgaWYgKGN1cnJlbnRUaW1lIDwgcHJlc2VudGF0aW9uU3RhcnRUaW1lIHx8IGN1cnJlbnRU
aW1lID49IHByZXNlbnRhdGlvbkVuZFRpbWUpCiAgICAgICAgICAgICBzaG91bGROb3RpZnkgPSBm
YWxzZTsKIAogICAgICAgICBpZiAoY3VycmVudFJhdGUgPiAwICYmIHByZXNlbnRhdGlvbkVuZFRp
bWUgPCBjdXJyZW50VGltZSkgewogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgICAgIGF1dG8g
YmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICAgICAgICAgIGF1dG8gZW5k
ID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0
YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgYXV0byBiZWdpbiA9IFBB
TDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1l
U3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBhdXRvIGVuZCA9IFBB
TDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0
YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSglcCkgLSBkcm9w
cGluZyBmcmFtZSBsYXRlIGJ5ICVzLCBmcmFtZXNCZWluZ0RlY29kZWQoJWQpLCBwcm9kdWNlclF1
ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHByZXNlbnRhdGlvbkVuZFRpbWUgLSBjdXJy
ZW50VGltZSkudXRmOCgpLmRhdGEoKSwgbV9mcmFtZXNCZWluZ0RlY29kZWQsIHRvU3RyaW5nKGJl
Z2luKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlm
CiAgICAgICAgICAgICArK21fZHJvcHBlZFZpZGVvRnJhbWVzOwpAQCAtNDAxLDE3ICs0MDQsMTcg
QEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxl
KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKICAgICAgICAgfQogICAgIH0KIAotICAgIENNQnVm
ZmVyUXVldWVFbnF1ZXVlKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxlKTsKKyAgICBQQUw6
OkNNQnVmZmVyUXVldWVFbnF1ZXVlKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxlKTsKIAog
I2lmICFMT0dfRElTQUJMRUQKLSAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1
ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdl
dCgpKSk7Ci0gICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRF
bmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgYXV0
byBwcmVzZW50YXRpb25UaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFBy
ZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKKyAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01l
ZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSkpOworICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsK
ICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNv
ZGVkU2FtcGxlKCVwKSAtIHByZXNlbnRhdGlvblRpbWUoJXMpLCBmcmFtZXNCZWluZ0RlY29kZWQo
JWQpLCBwcm9kdWNlclF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHByZXNlbnRhdGlv
blRpbWUpLnV0ZjgoKS5kYXRhKCksIG1fZnJhbWVzQmVpbmdEZWNvZGVkLCB0b1N0cmluZyhiZWdp
bikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgog
CiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNo
U291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5n
ZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0Zp
cmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAog
ICAgIGlmICghbV9oYXNBdmFpbGFibGVGcmFtZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CkBA
IC00MjYsNyArNDI5LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVl
dWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKIAogYm9vbCBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkgY29uc3QKIHsK
LSAgICBDTUl0ZW1Db3VudCBwcm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVlID8gQ01CdWZm
ZXJRdWV1ZUdldEJ1ZmZlckNvdW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOworICAgIENN
SXRlbUNvdW50IHByb2R1Y2VyQ291bnQgPSBtX3Byb2R1Y2VyUXVldWUgPyBQQUw6OkNNQnVmZmVy
UXVldWVHZXRCdWZmZXJDb3VudChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpIDogMDsKICAgICByZXR1
cm4gbV9mcmFtZXNCZWluZ0RlY29kZWQgKyBwcm9kdWNlckNvdW50IDw9IGtIaWdoV2F0ZXJNYXJr
OwogfQogCkBAIC00NTIsNyArNDU1LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246OnN0b3BSZXF1ZXN0aW5nTWVkaWFEYXRhKCkKIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246Om5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBjYWxsYmFjaykKIHsKLSAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNlclF1ZXVl
ICYmICFDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CisgICAg
aWYgKGNhbGxiYWNrICYmIG1fcHJvZHVjZXJRdWV1ZSAmJiAhUEFMOjpDTUJ1ZmZlclF1ZXVlSXNF
bXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbY2FsbGJhY2tdIHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0p
OwpAQCAtNDYzLDcgKzQ2Niw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpu
b3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFtZShzdGQ6OmZ1bmN0aW9uCiAKIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9y
VGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIEltYWdlRm9yVGltZUZsYWdzIGZsYWdzKQogewot
ICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7Cisg
ICAgaWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkg
ewogICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdl
Rm9yVGltZSglcCkgLSB0aW1lKCVzKSwgcXVldWUgZW1wdHkiLCB0aGlzLCB0b1N0cmluZyh0aW1l
KS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtNDcx
LDkgKzQ3NCw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiAgICAgYm9vbCBhbGxvd0Vhcmxp
ZXIgPSBmbGFncyA9PSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OkFsbG93RWFybGllcjsK
ICAgICBib29sIGFsbG93TGF0ZXIgPSBmbGFncyA9PSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246OkFsbG93TGF0ZXI7CiAKLSAgICBNZWRpYVRpbWUgc3RhcnRUaW1lID0gUEFMOjp0b01lZGlh
VGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CisgICAgTWVkaWFUaW1lIHN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9k
dWNlclF1ZXVlLmdldCgpKSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIE1lZGlhVGltZSBlbmRU
aW1lID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGlt
ZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIE1lZGlhVGltZSBlbmRUaW1lID0g
UEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1l
U3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAjZW5kaWYKICAgICBpZiAoIWFsbG93TGF0
ZXIgJiYgdGltZSA8IHN0YXJ0VGltZSkgewogICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZSglcCkgLSB0aW1lKCVzKSB0b28gZWFybHkg
Zm9yIHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCks
IHRvU3RyaW5nKHN0YXJ0VGltZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kVGltZSkudXRm
OCgpLmRhdGEoKSk7CkBAIC00ODIsMjQgKzQ4NSwyNCBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVk
aQogCiAgICAgYm9vbCByZWxlYXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAgd2hpbGUg
KENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxl
QnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkg
ewotICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlh
VGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkp
OwotICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxl
QnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZm
ZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBB
TDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsKKyAgICAg
ICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOwor
ICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRpbWUgcHJl
c2VudGF0aW9uRW5kVGltZXN0YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVyYXRpb247
CiAgICAgICAgIGlmICghYWxsb3dMYXRlciAmJiBwcmVzZW50YXRpb25UaW1lc3RhbXAgPiB0aW1l
KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGlmICghYWxsb3dFYXJsaWVy
ICYmIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA8IHRpbWUpIHsKLSAgICAgICAgICAgIENGUmVs
ZWFzZShDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KTsKKyAgICAgICAgICAgIENGUmVsZWFzZShQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0
YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVsZWFzZWRJbWFnZUJ1
ZmZlcnMgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAg
ICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNo
ZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRS
ZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOwotICAgICAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilDTVNhbXBsZUJ1ZmZl
ckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOworICAgICAgICBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2Fz
dDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbiht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7CisgICAgICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKICAgICAgICAgQVNTRVJUKENGR2V0
VHlwZUlEKGltYWdlQnVmZmVyLmdldCgpKSA9PSBDVlBpeGVsQnVmZmVyR2V0VHlwZUlEKCkpOwog
CiAgICAgICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVy
RGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVy
U291cmNlLmdldCgpKTsKKyAgICAgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0
Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNl
LmdldCgpKTsKIAogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwog
CkBAIC01MDgsNyArNTExLDcgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKICAgICB9CiAKICAg
ICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3Vy
Y2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgp
KTsKKyAgICAgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUlt
bWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAg
aWYgKHJlbGVhc2VkSW1hZ2VCdWZmZXJzKQogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9y
ZU1lZGlhRGF0YSgpOwpAQCAtNTIwLDkgKzUyMyw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRp
CiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQogewogICAgIG1fZGVj
b21wcmVzc2lvblF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHByb3Rl
Y3RlZFRoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJR
dWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAg
IG1fZW5xdWVpbmdRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKV0gewotICAgICAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3Rl
ZFRoaXMtPm1fY29uc3VtZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgICAgICBQQUw6OkNNQnVmZmVy
UXVldWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX2NvbnN1bWVyUXVldWUuZ2V0KCkpOwogICAgICAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+bV9mcmFtZXNTaW5jZUxhc3RRb3NDaGVjayA9IDA7CiAgICAg
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2N1cnJlbnRRb3NUaWVyID0gMDsKICAgICAgICAgICAg
IHByb3RlY3RlZFRoaXMtPnJlc2V0UW9zVGllcigpOwpAQCAtNTMzLDI0ICs1MzYsMjQgQEAgdm9p
ZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmZsdXNoKCkKIENNVGltZSBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUoQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikK
IHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1w
bGVCdWZmZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGlt
ZVN0YW1wKHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVU
aW1lU3RhbXAoc2FtcGxlKTsKIH0KIAogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6Z2V0UHJlc2VudGF0aW9uVGltZShDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJl
Zj4oYnVmKTsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3Rh
bXAoc2FtcGxlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlv
blRpbWVTdGFtcChzYW1wbGUpOwogfQogCiBDTVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjpnZXREdXJhdGlvbihDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oYnVm
KTsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOworICAgIHJl
dHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKIH0KIAogQ0ZDb21w
YXJpc29uUmVzdWx0IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZlcnMo
Q01CdWZmZXJSZWYgYnVmMSwgQ01CdWZmZXJSZWYgYnVmMiwgdm9pZCogcmVmY29uKQogewotICAg
IHJldHVybiAoQ0ZDb21wYXJpc29uUmVzdWx0KUNNVGltZUNvbXBhcmUoZ2V0UHJlc2VudGF0aW9u
VGltZShidWYxLCByZWZjb24pLCBnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjIsIHJlZmNvbikpOwor
ICAgIHJldHVybiAoQ0ZDb21wYXJpc29uUmVzdWx0KVBBTDo6Q01UaW1lQ29tcGFyZShnZXRQcmVz
ZW50YXRpb25UaW1lKGJ1ZjEsIHJlZmNvbiksIGdldFByZXNlbnRhdGlvblRpbWUoYnVmMiwgcmVm
Y29uKSk7CiB9CiAKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpyZXNldFFvc1Rp
ZXIoKQpAQCAtNjAyLDcgKzYwNSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
Ojp1cGRhdGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MoZG91YmxlIHJhdGlvCiAgICAgaWYg
KCFtX3RpbWViYXNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBkb3VibGUgcmF0ZSA9IENNVGlt
ZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOworICAgIGRvdWJsZSByYXRlID0gUEFMOjpD
TVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKICAgICBpZiAoIXJhdGUpCiAgICAg
ICAgIHJhdGUgPSAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQppbmRleCBlM2YwOTI3MDM0
OGU3YTVhZWY3MjY2ZWI0NzJkZGJhZTczYmMzNDA3Li5mMzE2OWFiYzAyNzcwODJmMGNmY2U0NzI2
NzllMTEwNzk3YzhjOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KQEAgLTQyLDcgKzQy
LDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIENGU3RyaW5n
UmVmIGN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKQogewpAQCAtMTM4LDcgKzEzNyw3IEBAIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4
ZWxCdWZmZXIoQ1ZQaXhlbEJ1CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzb3Vy
Y2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGNvbnZlcnRQaXhl
bEJ1ZmZlcihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUp
OworICAgIHJldHVybiBjb252ZXJ0UGl4ZWxCdWZmZXIoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldElt
YWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUpOwogfQogCiBSZXRhaW5QdHI8Q01TYW1wbGVC
dWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihD
TVNhbXBsZUJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0x
NDYsOSArMTQ1LDkgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBpZiAoIXNvdXJjZUJ1
ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGRlc2NyaXB0aW9uID0g
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIpOwotICAgIGF1
dG8gc291cmNlU2l6ZSA9IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVz
ZW50YXRpb25EaW1lbnNpb25zKGRlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7Ci0gICAgYXV0byBw
aXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSk7CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIpOworICAg
IGF1dG8gc291cmNlU2l6ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOwogICAgIGlmIChzaXpl
ID09IGV4cGFuZGVkSW50U2l6ZShzb3VyY2VTaXplKSAmJiBtX3BpeGVsRm9ybWF0ID09IENWUGl4
ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQogICAgICAgICByZXR1cm4g
cmV0YWluUHRyKHNvdXJjZUJ1ZmZlcik7CiAKQEAgLTE2MCw3ICsxNTksNyBAQCBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBs
ZUJ1ZmZlcihDTVNhbQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENNSXRlbUNvdW50
IGl0ZW1Db3VudCA9IDA7Ci0gICAgYXV0byBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIDEsIG51bGxwdHIsICZpdGVtQ291bnQpOwor
ICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9B
cnJheShzb3VyY2VCdWZmZXIsIDEsIG51bGxwdHIsICZpdGVtQ291bnQpOwogICAgIGlmIChzdGF0
dXMgIT0gbm9FcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mb0FycmF5IGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8
aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNjksNyArMTY4LDcg
QEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
b252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWVp
bmdJbmZvUHRyID0gbnVsbHB0cjsKICAgICBpZiAoaXRlbUNvdW50KSB7CiAgICAgICAgIHRpbWlu
Z0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgICAgIHN0YXR1cyA9IENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1p
bmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsKKyAgICAgICAgc3RhdHVzID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIGl0ZW1Db3Vu
dCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CiAgICAgICAgIGlmIChzdGF0dXMg
IT0gbm9FcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0
PGludD4oc3RhdHVzKSk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE3OCwxNCAr
MTc3LDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgfQogCiAgICAgQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBzdGF0
dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0
aW9uKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZv
ckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdl
dCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0
Q01TYW1wbGVCdWZmZXI6IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyIHJldHVybmVkOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJlc2l6ZWRTYW1w
bGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFn
ZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwg
Zm9ybWF0RGVzY3JpcHRpb24sIHRpbWVpbmdJbmZvUHRyLCAmcmVzaXplZFNhbXBsZUJ1ZmZlcik7
CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVm
ZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCBmb3Jt
YXREZXNjcmlwdGlvbiwgdGltZWluZ0luZm9QdHIsICZyZXNpemVkU2FtcGxlQnVmZmVyKTsKICAg
ICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIp
IHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
b252ZXJ0Q01TYW1wbGVCdWZmZXI6IGZhaWxlZCB0byBjcmVhdGUgQ01TYW1wbGVCdWZmZXIgd2l0
aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CkBAIC0yMzcsMTYg
KzIzNiwxNiBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKENWUGl4ZQogICAgIH0KIAogICAgIENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgYXV0
byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwg
JmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENW
SW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAg
ICAgaWYgKHN0YXR1cykgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRpYWxpemUgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxp
bnQ+KHN0YXR1cykpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgYXV0byBjbVRpbWUgPSB0b0NNVGltZShz
YW1wbGVUaW1lKTsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsga0NNVGlt
ZUludmFsaWQsIGNtVGltZSwgY21UaW1lIH07Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJD
cmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1
ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZv
LCAmc2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGNtVGltZSA9IFBBTDo6dG9DTVRpbWUoc2FtcGxl
VGltZSk7CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IFBBTDo6a0NNVGlt
ZUludmFsaWQsIGNtVGltZSwgY21UaW1lIH07CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVklt
YWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWlu
Z0luZm8sICZzYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7
CiAgICAgaWYgKHN0YXR1cykgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRpYWxpemUg
Q01TYW1wbGVCdWZmZXIgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3Rh
dHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tT
ZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZTBkYWFjODViODczYWQ2YWE5YjRh
YjJkYjdhMDA5Y2MzN2Q0Nzg5NS4uMzJhMDQ0OTZjZmY3ZDg0MTExMjBmY2QxMzNlNmQ2NzQyNTRh
ODZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vz
c2lvbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Q
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQpAQCAtNDcsNyArNDcsNiBAQCBTT0ZUTElO
S19BVktJVF9GUkFNRVdPUksoKQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlZh
bHVlVGltaW5nKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwog
CiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
QVZLaXQoUGxheWJhY2tTZXNzaW9uTW9kZWwmIG1vZGVsKQogICAgIDogbV9wbGF5ZXJDb250cm9s
bGVyKGFkb3B0TlMoW1tXZWJBVlBsYXllckNvbnRyb2xsZXIgYWxsb2NdIGluaXRdKSkKQEAgLTE0
NSw3ICsxNDQsNyBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVrYWJs
ZVJhbmdlc0NoYW5nZWQoY29uc3QgVGltZVJhbmdlcyYgdGltZQogICAgICAgICBkb3VibGUgc3Rh
cnQgPSB0aW1lUmFuZ2VzLnN0YXJ0KGkpLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgICAgICBk
b3VibGUgZW5kID0gdGltZVJhbmdlcy5lbmQoaSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAg
ICAgICAgQ01UaW1lUmFuZ2UgcmFuZ2UgPSBDTVRpbWVSYW5nZU1ha2UoQ01UaW1lTWFrZVdpdGhT
ZWNvbmRzKHN0YXJ0LCAxMDAwKSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAw
MCkpOworICAgICAgICBDTVRpbWVSYW5nZSByYW5nZSA9IFBBTDo6Q01UaW1lUmFuZ2VNYWtlKFBB
TDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHN0YXJ0LCAxMDAwKSwgUEFMOjpDTVRpbWVNYWtlV2l0
aFNlY29uZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CiAgICAgICAgIFtzZWVrYWJsZVJhbmdlcyBhZGRP
YmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lUmFuZ2U6cmFuZ2VdXTsKICAgICB9CiAjZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWMubW0KaW5kZXggZWE0MjNjNzE3YzdhZTkxYmQ0ZWU5OTA4N2UwN2M0
ZTVjMzdlNGMzZi4uNWRmMzQ5ZmM2ZmNkZmNmYWVhNzU1NjMyMGYzYWU2ZTY2NzYzNGU5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjLm1tCkBAIC0zNzMsNyArMzczLDYgQEAgLSAodm9pZClwaXBBY3Rpb25T
dG9wOihQSVBWaWV3Q29udHJvbGxlciAqKXBpcAogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYyhQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMmIHBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZSkKICAgICA6IG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
KHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsLmNwcAppbmRleCA4ODQwOTQyOTc5MjZjOGFlYmRlZjZmM2U5NTc4NDJmODM0MjhiODky
Li5kNDE5ZTBlMTkyNTU1ZDczNjA4NTg1MWY1NGNhMDA0MGQ0NmI2NjNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGw+IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKE1lZGlhU3RyZWFt
UHJpdmF0ZSYgc3RyZWFtLCBjb25zdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlv
bnMpCiB7CkBAIC04OCwxMiArODcsMTIgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKIHsKICAg
ICBpZiAoc2hvdWxkTXV0ZVZpZGVvKCkpIHsKICAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWUpIHsK
LSAgICAgICAgICAgIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRG
b3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIpOwotICAgICAgICAgICAgYXV0byBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSk7
CisgICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgYXV0byBkaW1lbnNpb25zID0gUEFMOjpD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0
aW9uLmdldCgpKTsKICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNrUGl4ZWxC
dWZmZXIoZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQpOwogCiAgICAgICAgICAg
ICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRy
OwotICAgICAgICAgICAgYXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCks
ICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgICAgICAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgbV9ibGFja0ZyYW1lLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgICAgICAg
ICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhLCAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWls
YWJsZSA6OnVuYWJsZSB0byBjcmVhdGUgYSBibGFjayBmcmFtZSBkZXNjcmlwdGlvbjogJWQiLCBz
dGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9
IG51bGxwdHI7CkBAIC0xMDMsOCArMTAyLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKICAg
ICAgICAgfQogCiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IG51bGxwdHI7Ci0g
ICAgICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvIHsga0NNVGltZUludmFsaWQsIHRv
Q01UaW1lKHNhbXBsZUJ1ZmZlci5wcmVzZW50YXRpb25UaW1lKCkpLCB0b0NNVGltZShzYW1wbGVC
dWZmZXIuZGVjb2RlVGltZSgpKSB9OwotICAgICAgICBhdXRvIHN0YXR1cyA9IENNU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1h
Z2VCdWZmZXJSZWYpbV9ibGFja0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5n
ZXQoKSwgJnRpbWluZ0luZm8sICZzYW1wbGUpOworICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8g
dGltaW5nSW5mbyB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVm
ZmVyLnByZXNlbnRhdGlvblRpbWUoKSksIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVyLmRlY29k
ZVRpbWUoKSkgfTsKKyAgICAgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZm
ZXJSZWYpbV9ibGFja0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSwg
JnRpbWluZ0luZm8sICZzYW1wbGUpOwogCiAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsK
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSAtIHVuYWJsZSB0byBjcmVhdGUg
YSBibGFjayBmcmFtZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA1MWEzZTE4YTJj
ZWRkM2NkNWRhOTNmMzRlYmYzNzExZTAyMGY4YjYyLi41ZTExMGVjZDdkZTM4NDYxYjQyOTA0YTBl
YjQ4ODM0MTg0M2U3NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvci5tbQpAQCAtMzYsMTMgKzM2LDEyIEBACiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+
CiAKICNpbXBvcnQgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNkZWZpbmUgTE9XX1dBVEVSX1RJTUVfSU5fU0VD
T05EUyAwLjEKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwot
CiBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNh
bGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBhdXRvIGNvbXByZXNzb3IgPSBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPihuZXcgQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yKCkpOwpAQCAtNTIsMTUgKzUxLDE1IEBAIHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6Y3JlYXRlCiB9CiAKIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yKCkKLSAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZSB7IFdvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikgfQotICAg
ICwgbV9sb3dXYXRlclRpbWUgeyBDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dBVEVSX1RJTUVf
SU5fU0VDT05EUywgMTAwMCkgfQorICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikpCisgICAg
LCBtX2xvd1dhdGVyVGltZShQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FURVJfVElN
RV9JTl9TRUNPTkRTLCAxMDAwKSkKIHsKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV9jb252ZXJ0ZXIp
IHsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAg
UEFMOjpBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZl
cnRlciA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNjgsMTkgKzY3LDE5IEBAIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBib29sIEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dl
ckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZl
clF1ZXVlUmVmIGlucHV0QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZl
clF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxs
YmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUpKSB7Cisg
ICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1w
bGVCdWZmZXJzKCksICZpbnB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1
ZXVlQ3JlYXRlIGZvciBtX2lucHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9pbnB1dEJ1ZmZlclF1ZXVlID0g
YWRvcHRDRihpbnB1dEJ1ZmZlclF1ZXVlKTsKIAogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0
QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRl
ZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBB
TDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAm
b3V0cHV0QnVmZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVhdGUgZm9y
IG1fb3V0cHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0
cHV0QnVmZmVyUXVldWUpOwotICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1
dEJ1ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1
ZXVlVHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwpOworICAg
IFBBTDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0
KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1doZW5E
YXRhQmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1faXNFbmNv
ZGluZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBAIC04OSw4ICs4OCw4IEBAIGJvb2wgQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q2FsbGJhY2sgY2FsbGJhCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNo
KCkKIHsKICAgICBtX3NlcmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10gewot
ICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKGtDTVRpbWVJbnZh
bGlkKTsKLSAgICAgICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1f
b3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpOworICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1Vu
dGlsTG93V2F0ZXJUaW1lKFBBTDo6a0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9y
ID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdl
dCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZh
aWxlZCAlZCIsIGVycm9yKTsKICAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CiAgICAgfSk7
CkBAIC0xMTIsNyArMTExLDcgQEAgVUludDMyIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
ZGVmYXVsdE91dHB1dEJpdFJhdGUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0QKIAogYm9vbCBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1h
dERlc2NyaXB0aW9uKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIEF1
ZGlvRm9ybWF0SUQgb3V0cHV0Rm9ybWF0SUQpCiB7Ci0gICAgY29uc3QgYXV0byAqYXVkaW9Gb3Jt
YXRMaXN0SXRlbSA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVG
b3JtYXQoZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGNvbnN0IGF1dG8gKmF1ZGlvRm9ybWF0TGlz
dEl0ZW0gPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVG
b3JtYXQoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIG1fc291cmNlRm9ybWF0ID0gYXVkaW9Gb3Jt
YXRMaXN0SXRlbS0+bUFTQkQ7CiAKICAgICBtZW1zZXQoJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAs
IHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKQEAgLTEyMSwzNCArMTIwLDM0
IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJG
b3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgbV9kZXN0aW5hdGlvbkZvcm1hdC5tQ2hh
bm5lbHNQZXJGcmFtZSA9IG1fc291cmNlRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lOwogCiAgICAg
VUludDMyIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5X0Zvcm1h
dEluZm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAo
YXV0byBlcnJvciA9IFBBTDo6QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9w
ZXJ0eV9Gb3JtYXRJbmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHkgZmFpbGVkIHdpdGggJWQiLCBlcnJv
cik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBBdWRpb0NvbnZlcnRlclJl
ZiBjb252ZXJ0ZXI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlck5ldygmbV9z
b3VyY2VGb3JtYXQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgeworICAgIGlm
IChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZt
X2Rlc3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZl
cnRlck5ldyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KICAgICBtX2NvbnZlcnRlciA9IGNvbnZlcnRlcjsKIAogICAgIGF1dG8gY2xlYW51cElu
Q2FzZU9mRXJyb3IgPSBtYWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVy
RGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3Nl
KG1fY29udmVydGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0pOwog
CiAgICAgc2l6ZV90IGNvb2tpZVNpemUgPSAwOwotICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IENN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAm
Y29va2llU2l6ZSk7CisgICAgY29uc3Qgdm9pZCAqY29va2llID0gUEFMOjpDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNvb2tpZVNpemUp
OwogICAgIGlmIChjb29raWVTaXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9D
b252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVz
c2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKKyAgICAgICAg
aWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0
ZXIsIGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29r
aWVTaXplLCBjb29raWUpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRl
ckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIHNpemUgPSBzaXpl
b2YobV9zb3VyY2VGb3JtYXQpOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJH
ZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFt
RGVzY3JpcHRpb24sICZzaXplLCAmbV9zb3VyY2VGb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJy
b3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0Nv
bnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9y
bWF0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0
cmVhbURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQpAQCAtMTU5LDcgKzE1OCw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihD
CiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtB
dWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rl
c3RpbmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0
U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRp
b24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CkBAIC0xNjcsMTQgKzE2NiwxNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIGlmICht
X2Rlc3RpbmF0aW9uRm9ybWF0Lm1Gb3JtYXRJRCA9PSBrQXVkaW9Gb3JtYXRNUEVHNEFBQykgewog
ICAgICAgICBib29sIHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gdHJ1ZTsKICAgICAg
ICAgaWYgKG1fb3V0cHV0Qml0UmF0ZSkgewotICAgICAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJp
dFJhdGUsIHNpemVvZigqbV9vdXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgp
KTsKKyAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigqbV9v
dXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0
ZSA9ICEhZXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZFNldERlZmF1bHRPdXRw
dXRCaXRSYXRlKSB7CiAgICAgICAgICAgICBhdXRvIG91dHB1dEJpdFJhdGUgPSBkZWZhdWx0T3V0
cHV0Qml0UmF0ZShtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKICAgICAgICAgICAgIHNpemUgPSBzaXpl
b2Yob3V0cHV0Qml0UmF0ZSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29u
dmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJh
dGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0
ZXJFbmNvZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCiAgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3Igc2V0dGluZyBkZWZhdWx0IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0xODMsNyArMTgyLDcgQEAgYm9v
bCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJj
ZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9uIGZvcm1h
dCBpcyBWQlIsIHdlIG5lZWQgdG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0aGUgY29u
dmVydGVyLgogICAgICAgICBzaXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CiAK
LSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29u
dmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAm
c2l6ZSwgJm1fbWF4T3V0cHV0UGFja2V0U2l6ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlclByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQ
YWNrZXRTaXplKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0s
ICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9w
ZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0yMTEsNiArMjEwLDggQEAgc2l6
ZV90IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y29tcHV0ZUJ1ZmZlclNpemVGb3JBdWRp
b0Zvcm1hdChBdWRpb1N0cmVhbUIKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmF0dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsK
KyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOworCiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1f
cmVtYWluaW5nUHJpbWVEdXJhdGlvbikpIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUlu
Zm8gcHJpbWVJbmZvIHsgMCwgMCB9OwogICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmlt
ZUluZm8pOwpAQCAtMjM2LDI1ICsyMzcsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkKIHsKICAg
ICBVSW50MzIgZGVsYXlTaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJfdCBvcmln
aW5hbERlbGF5TW9kZSA9IDA7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVs
YXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6
OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVy
dHlEZWxheU1vZGUsICZkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIHVpbnQzMl90IG9wdGlt
YWxEZWxheU1vZGUgPSBrQXVkaW9Db2RlY0RlbGF5TW9kZV9PcHRpbWFsOwotICAgIGlmIChhdXRv
IGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29k
ZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERl
bGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlN
b2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0K
IAogICAgIFVJbnQzMiBwcmltZVNpemUgPSBzaXplb2YoQXVkaW9Db2RlY1ByaW1lSW5mbyk7CiAg
ICAgQXVkaW9Db2RlY1ByaW1lSW5mbyBwcmltZUluZm8geyAwLCAwIH07Ci0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2Rl
Y1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBr
QXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKGF1
dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsK
KyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2lu
YWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURl
bGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAg
ICB9CkBAIC0yNjcsMTggKzI2OCwxOCBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIGlm
ICghbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIFVJbnQzMiBjb29r
aWVTaXplID0gMDsKIAotICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9w
ZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29r
aWUsICZjb29raWVTaXplLCBOVUxMKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9D
b252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXBy
ZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBOVUxMKTsKICAgICAgICAgaWYgKChlcnJv
ciA9PSBub0VycikgJiYgISFjb29raWVTaXplKSB7CiAgICAgICAgICAgICBjb29raWUucmVzaXpl
KGNvb2tpZVNpemUpOwogCi0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFn
aWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUuZGF0YSgpKSkgeworICAgICAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIs
IGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29r
aWUuZGF0YSgpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVy
Q29tcHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uOwotICAg
ICAgICBpZiAoYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29va2llU2l6
ZSwgY29va2llLmRhdGEoKSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pKSB7
CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEws
IGNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2Ny
aXB0aW9uKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAg
ICAgfQpAQCAtMjkwLDI2ICsyOTEsMjYgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBz
aXplX3QgZGF0YVNpemUgPSBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXpl
OwogCiAgICAgQ01CbG9ja0J1ZmZlclJlZiBibG9ja0J1ZmZlcjsKLSAgICBpZiAoYXV0byBlcnJv
ciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVs
dCwgTlVMTCwgZGF0YVNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXpl
LCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9j
ayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwgTlVMTCwgMCwgZGF0YVNpemUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywg
JmJsb2NrQnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
IkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAg
IH0KICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgaWYgKGF1
dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0
KCksIDAsIGRhdGFTaXplKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVm
ZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5n
ZXQoKSwgdHJ1ZSwgTlVMTCwgTlVMTCwgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdl
dCgpLCBudW1QYWNrZXRzLCBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1f
ZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKKyAg
ICBhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERl
c2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIHRydWUsIE5VTEws
IE5VTEwsIG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgbnVtUGFja2V0cywg
bV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wLCBtX2Rlc3RpbmF0aW9uUGFja2V0
RGVzY3JpcHRpb25zLmRhdGEoKSwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25z
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAog
ICAgIGlmIChbbV9nZHJDb3VudE51bSBpbnRWYWx1ZV0pCi0gICAgICAgIENNU2V0QXR0YWNobWVu
dChzYW1wbGVCdWZmZXIsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29k
ZXJSZWZyZXNoLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCksIGtDTUF0
dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CisgICAgICAgIFBBTDo6Q01TZXRBdHRhY2ht
ZW50KHNhbXBsZUJ1ZmZlciwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1
YWxEZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgp
LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogCiAgICAgcmV0dXJuIHNhbXBs
ZUJ1ZmZlcjsKIH0KQEAgLTM0MSwyNCArMzQyLDI0IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioK
ICAgICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eSht
X2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGlmIChQQUw6OkNNQnVm
ZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9w
dENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURl
cXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAg
ICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNh
bXBsZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBh
ZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZl
clF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAg
ICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmICghbV9z
YW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTVNhbXBsZUJ1ZmZl
ckdldERhdGFCdWZmZXIgZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxv
Y2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5T
YW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9
IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOwor
ICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVm
ZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAg
ICAgICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAg
ICAgICBzaXplX3QgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5
dGVzVG9Db3B5LCAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNh
bXBsZUJsb2NrQnVmZmVyKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJl
bnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVm
LCAobV9zb3VyY2VCdWZmZXIuZGF0YSgpICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNv
cHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5T
YW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNl
QnVmZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAg
ICAgICAgfQpAQCAtMzkzLDI4ICszOTQsMjggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAg
ICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1
ZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lu
cHV0QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAg
ICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25z
dF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVy
UXVldWUuZ2V0KCkpKSkpOwotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0
Q0YoKENNQmxvY2tCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENNU2FtcGxl
QnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAgICAgICAg
IGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZl
clF1ZXVlLmdldCgpKSkpKTsKKyAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBhZG9w
dENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKICAgICAg
ICAgICAgIGlmICghbV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENN
U2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICBtX3Nh
bXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0
SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tC
dWZmZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKKyAgICAg
ICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0
YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7CiAgICAgICAgICAgICBtX2N1
cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgfQogCiAgICAgICAg
IGlmIChtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICBzaXplX3QgbnVtQnl0ZXNU
b0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9zYW1wbGVC
bG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyKSk7Ci0g
ICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1f
c2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZm
ZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50
T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQ
QUw6OkNNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCks
IG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNh
bXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkg
ewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZpcnN0IGNo
YW5uZWwgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVy
cm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2Nr
QnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRP
ZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5
dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldElu
U291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJs
b2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJl
bnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51
bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNl
dEluU291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29w
eURhdGFCeXRlcyBzZWNvbmQgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICB9CkBAIC00MzgsNiArNDM5LDgg
QEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0
YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbG93V2F0
ZXJUaW1lKQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFS
RV9JTkxJTkUKKwogICAgIGlmICghbV9jb252ZXJ0ZXIpIHsKICAgICAgICAgaWYgKENNQnVmZmVy
UXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1
cm47CkBAIC01MDEsNyArNTA0LDcgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGwKIAogdm9pZCBB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVC
dWZmZXJSZWYgYnVmZmVyKQogewotICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1
ZShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBB
TDo6Q01CdWZmZXJRdWV1ZUVucXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIp
OwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKIAogICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUobV9s
b3dXYXRlclRpbWUpOwpAQCAtNTIwLDEyICs1MjMsMTIgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAK
IENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0
U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9j
YXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
KSkpOworICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBB
TDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0K
IAogUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNh
bXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRS
ZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0Yo
KENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVE
ZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNp
Z25lZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBm
NWY4NTU4NzFmYzcwODU2NmY3ZWY4YjlhMTYxZTI3YjhlNWQ4OWVkLi5iNzU1OGQyODBjMmVmNzk2
MDY4Y2FjMGNjOTZiNTAzM2RjMzcwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtMTI3LDggKzEyNyw4IEBAIHByaXZhdGU6
CiAgICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3JtYXREZXNj
cmlwdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
PiBtX3ZpZGVvQ29tcHJlc3NvcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBt
X3ZpZGVvQXNzZXRXcml0ZXJJbnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRp
b25UaW1lIHsga0NNVGltZUludmFsaWQgfTsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGlu
Z1RpbWUgeyBrQ01UaW1lSW52YWxpZCB9OworICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRh
dGlvblRpbWU7CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lOwogICAgIGJvb2wg
bV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0cjxXZWJB
VkFzc2V0V3JpdGVyRGVsZWdhdGU+IG1fd3JpdGVyRGVsZWdhdGU7CkBAIC0xMzksOSArMTM5LDkg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RvcEFmdGVyRmx1c2hpbmdTYW1wbGVzIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fZmlyc3RWaWRlb0ZyYW1lIHsgZmFsc2UgfTsKICAgICBzdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBtX3ZpZGVvVHJhbnNmb3JtOwotICAgIENNVGlt
ZSBtX3Jlc3VtZWRWaWRlb1RpbWUgeyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBtX2N1cnJl
bnRWaWRlb0R1cmF0aW9uIHsga0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUgbV9jdXJyZW50QXVk
aW9TYW1wbGVUaW1lIHsga0NNVGltZVplcm8gfTsKKyAgICBDTVRpbWUgbV9yZXN1bWVkVmlkZW9U
aW1lOworICAgIENNVGltZSBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uOworICAgIENNVGltZSBtX2N1
cnJlbnRBdWRpb1NhbXBsZVRpbWU7CiAgICAgZG91YmxlIG1fdGltZUNvZGUgeyAwIH07CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
bW0KaW5kZXggNjNiZDY1OThkMDJhNWM3MDA2ZGE5MjlmYzk0ZjFmNWY2NmE3MTZkYS4uNmFkMjBi
ZThjYjU3OTIzYTBlNzg0MmUzNzAxZDMzYTZhYTAzYWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtOTMsOCArOTMsNiBA
QCBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQog
UmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y3JlYXRlKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGNvbnN0IE1lZGlhUmVj
b3JkZXJQcml2YXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvIHdyaXRlciA9IGFkb3B0
UmVmKCpuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIGhhc1ZpZGVvKSk7
CkBAIC0xMjIsNiArMTIwLDExIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNv
bXByZXNzZWRBdWRpb091dHB1dEJ1ZmZlckNhbGxiYWNrKHZvaWQgKm1lZGlhCiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoYm9vbCBoYXNBdWRp
bywgYm9vbCBoYXNWaWRlbykKICAgICA6IG1faGFzQXVkaW8oaGFzQXVkaW8pCiAgICAgLCBtX2hh
c1ZpZGVvKGhhc1ZpZGVvKQorICAgICwgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lKFBBTDo6
a0NNVGltZUludmFsaWQpCisgICAgLCBtX2xhc3RWaWRlb0RlY29kaW5nVGltZShQQUw6OmtDTVRp
bWVJbnZhbGlkKQorICAgICwgbV9yZXN1bWVkVmlkZW9UaW1lKFBBTDo6a0NNVGltZVplcm8pCisg
ICAgLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKFBBTDo6a0NNVGltZVplcm8pCisgICAgLCBtX2N1
cnJlbnRBdWRpb1NhbXBsZVRpbWUoUEFMOjprQ01UaW1lWmVybykKIHsKIH0KIApAQCAtMTc5LDcg
KzE4Miw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21w
cmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNWaWRlbyk7CiAg
ICAgaWYgKCFtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV92aWRlb0Zvcm1h
dERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVv
Q29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX3ZpZGVvRm9y
bWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24o
bV92aWRlb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKIAogICAgICAgICBp
ZiAobV9oYXNBdWRpbyAmJiAhbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMTk2LDcgKzE5OSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NF
UlQobV9oYXNBdWRpbyk7CiAgICAgaWYgKCFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAg
ICAgICAgbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXRE
ZXNjcmlwdGlvbihtX2F1ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOwor
ICAgICAgICBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
Rm9ybWF0RGVzY3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZl
cigpKTsKICAgICAgICAgaWYgKG1faGFzVmlkZW8gJiYgIW1fdmlkZW9Gb3JtYXREZXNjcmlwdGlv
bikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIoKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTpr
Q01UaW1lWmVyb107CisgICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGlt
ZTpQQUw6OmtDTVRpbWVaZXJvXTsKIAogICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJz
KCk7CiAKQEAgLTMwMCw4ICszMDMsOCBAQCBib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJJZlBvc3NpYmxlKCkKIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZl
cihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKFttX3ZpZGVvQXNzZXRX
cml0ZXJJbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pOwotICAgIG1fbGFzdFZpZGVvUHJl
c2VudGF0aW9uVGltZSA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1
ZmZlcik7Ci0gICAgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldERl
Y29kZVRpbWVTdGFtcChidWZmZXIpOworICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAg
ICBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVU
aW1lU3RhbXAoYnVmZmVyKTsKICAgICBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgPSB0cnVlOwog
CiAgICAgW21fdmlkZW9Bc3NldFdyaXRlcklucHV0LmdldCgpIGFwcGVuZFNhbXBsZUJ1ZmZlcjpi
dWZmZXJdOwpAQCAtMzE0LDE3ICszMTcsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6YXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKQogCiBzdGF0aWMgaW5saW5lIHZv
aWQgYXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIoQVZBc3NldFdyaXRlcklu
cHV0ICphc3NldFdyaXRlcklucHV0LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRp
bWUgZGVjb2RpbmdUaW1lU3RhbXApCiB7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0lu
Zm8gPSB7IGtDTVRpbWVJbnZhbGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGlt
ZVN0YW1wfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01U
aW1lSW52YWxpZCwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkZWNvZGluZ1RpbWVTdGFtcH07CiAK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIgPSBOVUxMOwotICAgIGF1dG8gZXJyb3IgPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVlLCBOVUxM
LCBOVUxMLCBOVUxMLCAwLCAxLCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7CisgICAg
YXV0byBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgTlVMTCwgdHJ1ZSwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5V
TEwsICZidWZmZXIpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZEVuZHNQcmV2
aW91c1NhbXBsZUR1cmF0aW9uTWFya2VyIGZhaWxlZCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gc2FtcGxlQnVm
ZmVyID0gYWRvcHRDRihidWZmZXIpOwogCi0gICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZl
ci5nZXQoKSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVE
dXJhdGlvbiwga0NGQm9vbGVhblRydWUsIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0
ZSk7CisgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBQQUw6OmtD
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtD
RkJvb2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogICAgIGlm
ICghW2Fzc2V0V3JpdGVySW5wdXQgYXBwZW5kU2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZlci5nZXQo
KV0pCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXIgYXBwZW5kU2FtcGxlQnVmZmVyIHRvIHdyaXRlciBpbnB1dCBmYWlsZWQi
KTsKIH0KQEAgLTM4MiwxOCArMzg1LDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYmCiBzdGF0
aWMgaW5saW5lIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY29weVNhbXBsZUJ1ZmZlcldp
dGhDdXJyZW50VGltZVN0YW1wKENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsQnVmZmVyLCBDTVRp
bWUgc3RhcnRUaW1lKQogewogICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKLSAgICBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAm
Y291bnQpOworICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
b3JpZ2luYWxCdWZmZXIsIDAsIG5pbCwgJmNvdW50KTsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRp
bWluZ0luZm8+IHRpbWVJbmZvKGNvdW50KTsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNv
dW50KTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9y
aWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOwogCiAgICAgZm9y
IChhdXRvIGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICB0aW1lSW5mb1tpXS5kZWNv
ZGVUaW1lU3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKKyAgICAgICAgdGltZUluZm9baV0uZGVjb2Rl
VGltZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKICAgICAgICAgdGltZUluZm9baV0ucHJl
c2VudGF0aW9uVGltZVN0YW1wID0gc3RhcnRUaW1lOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVm
ZmVyUmVmIG5ld0J1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdp
bmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkgeworICAgIGlm
IChhdXRvIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5n
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0
YSgpLCAmbmV3QnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdp
dGhOZXdUaW1pbmcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KQEAgLTQwNCw3ICs0MDcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogewog
ICAgIGlmICghbV9maXJzdFZpZGVvRnJhbWUpIHsKICAgICAgICAgbV9maXJzdFZpZGVvRnJhbWUg
PSB0cnVlOwotICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNs
b2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKKyAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFM
OjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogICAgICAg
ICBpZiAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6Tm9uZSB8fCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpKSB7CiAgICAgICAgICAgICBtX3ZpZGVv
VHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlUm90YXRpb24oc3RhdGljX2Nhc3Q8aW50
PihzYW1wbGUudmlkZW9Sb3RhdGlvbigpKSAqIE1fUEkgLyAxODApOwogICAgICAgICAgICAgaWYg
KHNhbXBsZS52aWRlb01pcnJvcmVkKCkpCkBAIC00MTIsOCArNDE1LDggQEAgdm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUm
IHNhbXBsZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gc2FtcGxlVGltZSA9IENNVGlt
ZVN1YnRyYWN0KENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jl
c3VtZWRWaWRlb1RpbWUpOwotICAgIHNhbXBsZVRpbWUgPSBDTVRpbWVBZGQoc2FtcGxlVGltZSwg
bV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CisgICAgYXV0byBzYW1wbGVUaW1lID0gUEFMOjpDTVRp
bWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xv
Y2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1l
QWRkKHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOwogICAgIGlmIChhdXRvIGJ1
ZmZlcldpdGhDdXJyZW50VGltZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFt
cChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHNhbXBsZVRp
bWUpKQogICAgICAgICBtX3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldp
dGhDdXJyZW50VGltZS5nZXQoKSk7CiB9CkBAIC00MjIsNyArNDI1LDcgQEAgdm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZv
cm1BdWRpb0RhdGEKIHsKICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1Nh
bXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBz
YW1wbGVDb3VudCkpCiAgICAgICAgIG1fYXVkaW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIo
c2FtcGxlQnVmZmVyLmdldCgpKTsKLSAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBDTVRp
bWVBZGQobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCB0b0NNVGltZShNZWRpYVRpbWUoc2FtcGxl
Q291bnQsIGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSkpKTsKKyAgICBtX2N1cnJlbnRBdWRpb1Nh
bXBsZVRpbWUgPSBQQUw6OkNNVGltZUFkZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIFBBTDo6
dG9DTVRpbWUoTWVkaWFUaW1lKHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkp
KSk7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZpbmlzaGVkRmx1c2hp
bmdTYW1wbGVzKCkKQEAgLTUyMywxMCArNTI2LDEwIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKCkKIHsKICAgICBhdXRvIGN1cnJlbnRUaW1lQ29k
ZSA9IG1fdGltZUNvZGU7CiAgICAgaWYgKG1faGFzQXVkaW8pCi0gICAgICAgIG1fdGltZUNvZGUg
PSBDTVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CisgICAgICAgIG1f
dGltZUNvZGUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1l
KTsKICAgICBlbHNlIHsKLSAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3Qo
Q01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVv
VGltZSk7Ci0gICAgICAgIG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZUFkZChz
YW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKSk7CisgICAgICAgIGF1dG8gc2FtcGxl
VGltZSA9IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xv
Y2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgICAgICBtX3Rp
bWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUs
IG1fY3VycmVudFZpZGVvRHVyYXRpb24pKTsKICAgICB9CiAgICAgbV9mZXRjaERhdGFDb21wbGV0
aW9uSGFuZGxlcih0YWtlRGF0YSgpLCBjdXJyZW50VGltZUNvZGUpOwogfQpAQCAtNTUwLDEzICs1
NTMsMTMgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OnRha2VEYXRhKCkKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cGF1c2UoKQog
ewotICAgIGF1dG8gcmVjb3JkaW5nRHVyYXRpb24gPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0
VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAg
ICBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uID0gQ01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBt
X2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKKyAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gUEFM
OjpDTVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RU
aW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgbV9jdXJyZW50VmlkZW9EdXJh
dGlvbiA9IFBBTDo6Q01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1
cmF0aW9uKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cmVzdW1lKCkK
IHsKLSAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9z
dFRpbWVDbG9jaygpKTsKKyAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRU
aW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Om1pbWVUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNzZkNTZkN2I4ZDEz
YzcyZWEzOWZjMzQ5OWQxNzk4OTk3MTdmMGU3OC4uZDA3NjBmMDdlMzcwODEyN2Y5ZGUyZWZhZjky
ZjBlMDc3MmZkMzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IubW0KQEAgLTM0LDEyICszNCwxMSBAQAogI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZU
Q29tcHJlc3Npb25TZXNzaW9uLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAorI2lt
cG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvVmlkZW9U
b29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3Bh
Y2UgUEFMOwotCiBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShTdHJpbmcgbWltZVR5cGUsIENNQnVm
ZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQog
ewogICAgIGF1dG8gcHJvZmlsZSA9IFByb2ZpbGU6OkJhc2VsaW5lOwpAQCAtNjksNyArNjgsNyBA
QCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cihDTVZpZGVvQ29kZWNUeXBlIG91dHB1dAogVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV92dFNlc3Npb24pIHsK
LSAgICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgp
KTsKKyAgICAgICAgUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Np
b24uZ2V0KCkpOwogICAgICAgICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAt
NzcsMTIgKzc2LDEyIEBAIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvcigpCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5p
dGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOwot
ICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJz
KCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01C
dWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVl
dWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1
ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciB1bmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBxdWV1ZSAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1
ZXVlID0gb3V0cHV0QnVmZmVyUXVldWU7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2Vy
KG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NN
QnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVM
TCk7CisgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJR
dWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdn
ZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAg
bV9pc0VuY29kaW5nID0gdHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk2LDEwICs5NSwxMCBA
QCB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2V0Qml0c1BlclNlY29uZCh1bnNp
Z25lZCBiaXRSYXRlKQogdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCgp
CiB7CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAg
ICAgICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92
dFNlc3Npb24uZ2V0KCksIGtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBB
TDo6VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSwg
UEFMOjprQ01UaW1lSW52YWxpZCk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9y
LCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9u
U2Vzc2lvbkNvbXBsZXRlRnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgICAg
IGVycm9yID0gQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5n
ZXQoKSk7CisgICAgICAgIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSht
X291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYo
ZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVy
UXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAgICAgIG1f
aXNFbmNvZGluZyA9IGZhbHNlOwpAQCAtMTE0LDcgKzExMyw3IEBAIHZvaWQgVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2sodm9pZCAqcmVmQ29uLCB2
b2lkKiwKIAogICAgIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciAqY29tcHJlc3NvciA9IHN0
YXRpY19jYXN0PFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcio+KHJlZkNvbik7CiAKLSAgICBh
dXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1
ZXVlRW5xdWV1ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIp
OwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKIH0KIApAQCAtMTMwLDUzICsxMjksNTMgQEAgQ0ZTdHJpbmdSZWYgVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCgpIGNvbnN0CiB7CiAgICAgc3dpdGNo
IChtX3Byb2ZpbGUpIHsKICAgICBjYXNlIFByb2ZpbGU6OkJhc2VsaW5lOgotICAgICAgICByZXR1
cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOworICAgICAgICByZXR1
cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CiAgICAgY2Fz
ZSBQcm9maWxlOjpIaWdoOgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGln
aF9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0hp
Z2hfQXV0b0xldmVsOwogICAgIGNhc2UgUHJvZmlsZTo6TWFpbjoKLSAgICAgICAgcmV0dXJuIGtW
VFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjpr
VlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbDsKICAgICB9CiB9CiAKIGJvb2wgVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbikKIHsKLSAgICBDTVZpZGVvRGlt
ZW5zaW9ucyBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9u
cyhmb3JtYXREZXNjcmlwdGlvbik7CisgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9
IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlw
dGlvbik7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNp
ZmljYXRpb25zID0gbmlsOwogI2Vsc2UKLSAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZp
Y2F0aW9ucyA9IEB7KF9fYnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNh
dGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyOkBZRVN9OworICAgIE5T
RGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcg
KilQQUw6OmtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVy
YXRlZFZpZGVvRW5jb2RlcjpAWUVTfTsKICNlbmRpZgogCiAgICAgVlRDb21wcmVzc2lvblNlc3Np
b25SZWYgdnRTZXNzaW9uOwotICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhl
aWdodCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2Rl
clNwZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRo
aXMsICZ2dFNlc3Npb24pOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNz
aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lv
bnMuaGVpZ2h0LCBtX291dHB1dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZill
bmNvZGVyU3BlY2lmaWNhdGlvbnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFj
aywgdGhpcywgJnZ0U2Vzc2lvbik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29t
cHJlc3Npb25TZXNzaW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICBy
ZXR1cm4gTk87CiAgICAgfQogICAgIG1fdnRTZXNzaW9uID0gYWRvcHRDRih2dFNlc3Npb24pOwog
Ci0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworICAgIGVy
cm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOwogICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Jl
YWxUaW1lIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0Q29tcHJlc3Np
b25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVy
dHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxE
dXJhdGlvbik7CisgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0
U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1l
SW50ZXJ2YWxEdXJhdGlvbiwgbV9tYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24pOwogICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAg
ICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVk
RnJhbWVSYXRlKTsKKyAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1f
dnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRG
cmFtZVJhdGUsIG1fZXhwZWN0ZWRGcmFtZVJhdGUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Np
b25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRl
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9w
ZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxl
TGV2ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9m
aWxlTGV2ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVM
ZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgcHJvZmlsZSAlZCIsIGVycm9yLCBtX3Byb2ZpbGUpOwog
ICAgICAgICBpZiAobV9wcm9maWxlICE9IFByb2ZpbGU6OkJhc2VsaW5lKSB7Ci0gICAgICAgICAg
ICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFz
ZWxpbmVfQXV0b0xldmVsKTsKKyAgICAgICAgICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9m
aWxlTGV2ZWwsIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKTsK
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgZGVmYXVsdCBw
cm9maWxlIiwgZXJyb3IpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fb3V0cHV0Qml0
UmF0ZSkgewotICAgICAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1f
dnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRl
LCAqbV9vdXRwdXRCaXRSYXRlKTsKKyAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Np
b25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X0F2ZXJhZ2VCaXRSYXRlLCAqbV9vdXRwdXRCaXRSYXRlKTsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFn
ZUJpdFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgfQogCi0gICAgZXJyb3IgPSBW
VENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQo
KSk7CisgICAgZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2Rl
RnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJv
ciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lv
blNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAK
ICAgICByZXR1cm4gWUVTOwpAQCAtMTg1LDE0ICsxODQsMTQgQEAgYm9vbCBWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW8KIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVm
ZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBpZiAoIW1fdnRTZXNzaW9uKSB7
Ci0gICAgICAgIGlmICghaW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQorICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNl
c3Npb24oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNh
bXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7Ci0gICAgYXV0byBwcmVzZW50YXRpb25U
aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIp
OwotICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7
Ci0gICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNl
c3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9u
LCBOVUxMLCB0aGlzLCBOVUxMKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1l
U3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZl
cik7CisgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihi
dWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2Rl
RnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3Rh
bXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBOVUxMKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
RihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21w
cmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApA
QCAtMjA4LDEyICsyMDcsMTIgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFk
ZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVy
UmVmIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkK
IHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1
ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVy
biAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1
ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRT
YW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZiko
Y29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRC
dWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVy
UmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWlu
KG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwCmlu
ZGV4IGMzZmU4MjFiOWM1MjBjOTIyNGU1ZGU4ODhlNTE4YzMxOTZmMzFjYjUuLmEwMjQwODRjMjRl
NmQzNjM5NjA4YTY0NjUyZWNjNWQ2ZDllZmFjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IgogI2VuZGlmCiAKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNp
bmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTIzLDkgKzEyNCw5IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdDo6c3RhcnQoKQogICAgIGlmICghbV9yZW1vdGVJT1VuaXQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9PdXRwdXRVbml0U3RhcnQo
bV9yZW1vdGVJT1VuaXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvT3V0cHV0
VW5pdFN0YXJ0KG1fcmVtb3RlSU9Vbml0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQg
QXVkaW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwotICAgICAg
ICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CisgICAgICAg
IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAg
ICAgICBtX3JlbW90ZUlPVW5pdCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xMzksMTEgKzE0MCwxMSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQ6OnN0b3AoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1N0
YXJ0ZWQpIHsKLSAgICAgICAgQXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7Cisg
ICAgICAgIFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CiAgICAgICAg
IG1faXNTdGFydGVkID0gZmFsc2U7CiAgICAgfQogCi0gICAgQXVkaW9Db21wb25lbnRJbnN0YW5j
ZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOworICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5j
ZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAgIG1fcmVtb3RlSU9Vbml0ID0gbnVsbHB0cjsK
IH0KIApAQCAtMTYzLDE0ICsxNjQsMTQgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgaW9V
bml0RGVzY3JpcHRpb24uY29tcG9uZW50U3ViVHlwZSA9IGtBdWRpb1VuaXRTdWJUeXBlX0RlZmF1
bHRPdXRwdXQ7CiAjZW5kaWYKIAotICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVk
aW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1
ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51
bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAg
ICBpZiAoIWlvQ29tcG9uZW50KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1Vu
aXQgdW5hYmxlIHRvIGZpbmQgcmVtb3RlIElPIHVuaXQgY29tcG9uZW50Iik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBhdXRvIGVycm9yID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6QXVk
aW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CiAgICAg
aWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxl
IHRvIG9wZW4gdnBpbyB1bml0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47
CkBAIC0xNzgsNyArMTc5LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIFVJbnQzMiBwYXJhbSA9IDE7Ci0gICAgZXJyb3IgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFi
bGVJTywga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsK
KyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVk
aW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAs
ICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgb3V0cHV0
LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xODcsNyArMTg4LDcg
QEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0Ojpj
cmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1f
ZGV2aWNlSUQpIHsKLSAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJ
T1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0
U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAg
ICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlv
T3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWws
IDAsICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOwogICAgICAgICBpZiAoZXJyb3Ip
IHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNl
dCB1bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludCltX2RldmljZUlELCAo
aW50KWVycm9yLCAoY2hhciopJmVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5Niwx
NCArMTk3LDE0IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogI2VuZGlmCiAKICAgICBBVVJlbmRl
ckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0OjpyZW5kZXJpbmdDYWxsYmFjaywgdGhpcyB9OwotICAgIGVycm9y
ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlf
U2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywg
c2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5
KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVk
aW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAg
IGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJs
ZSB0byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG91dHB1dERl
c2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkpOwotICAgIGVycm9yICA9IEF1ZGlvVW5pdEdl
dFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3Jp
cHRpb24oKSwgJnNpemUpOworICAgIGVycm9yICA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHko
cmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0
U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCAm
c2l6ZSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRp
b1VuaXQgdW5hYmxlIHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm47CkBAIC0yMTEsMTMgKzIxMiwxMyBAQCB2b2lkIExvY2FsQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElm
TmVlZGVkKCkKIAogICAgIG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkubVNh
bXBsZVJhdGUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCk7CiAK
LSAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0
RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9u
LnN0cmVhbURlc2NyaXB0aW9uKCkpKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJv
cGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlv
bigpLCBzaXplb2Yob3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSkpOwogICAg
IGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJs
ZSB0byBzZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGVycm9yID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1v
dGVJT1VuaXQpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlP
VW5pdCk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRp
b1VuaXQgQXVkaW9Vbml0SW5pdGlhbGl6ZSgpIGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDRiNzg4
YWU1YWE4N2I3MjllNWJkY2Y5Y2Y3MTM4MTJjNjc3MGEzMjUuLjQ4NWU0Y2U0YzZkOGMzMjQ1Yjc3
OWQ2MWE2NzZjYmJiOTdiYWQ5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAg
LTUxLDcgKzUxLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIEBpbnRlcmZh
Y2UgV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgOiBOU09iamVjdDxBVkNhcHR1
cmVWaWRlb0RhdGFPdXRwdXRTYW1wbGVCdWZmZXJEZWxlZ2F0ZT4gewogICAgIEFWVmlkZW9DYXB0
dXJlU291cmNlKiBtX2NhbGxiYWNrOwpAQCAtMzUxLDEwICszNTAsMTAgQEAgdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUoKQogICAgICAgICAgICAg
aWYgKGZyYW1lUmF0ZVJhbmdlKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50RnJhbWVSYXRl
ID0gY2xhbXBUbyhtX2N1cnJlbnRGcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lUmF0
ZSwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVSYXRlKTsKIAotICAgICAgICAgICAgICAgIGF1dG8g
ZnJhbWVEdXJhdGlvbiA9IENNVGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKLSAgICAg
ICAgICAgICAgICBpZiAoQ01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5n
ZS5taW5GcmFtZUR1cmF0aW9uKSA8IDApCisgICAgICAgICAgICAgICAgYXV0byBmcmFtZUR1cmF0
aW9uID0gUEFMOjpDTVRpbWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7CisgICAgICAgICAg
ICAgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5n
ZS5taW5GcmFtZUR1cmF0aW9uKSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRp
b24gPSBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0aW9uOwotICAgICAgICAgICAgICAgIGVs
c2UgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJh
bWVEdXJhdGlvbikgPiAwKQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBBTDo6Q01UaW1lQ29t
cGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uKSA+IDAp
CiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVSYW5nZS5tYXhG
cmFtZUR1cmF0aW9uOwogCiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIo
KSwgTE9HSURFTlRJRklFUiwgInNldHRpbmcgZnJhbWUgcmF0ZSB0byAiLCBtX2N1cnJlbnRGcmFt
ZVJhdGUsICIsIGR1cmF0aW9uICIsIFBBTDo6dG9NZWRpYVRpbWUoZnJhbWVEdXJhdGlvbikpOwpA
QCAtNDE4LDcgKzQxNyw3IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lv
bigpCiAKICAgICBtX3Nlc3Npb24gPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZDYXB0dXJlU2Vzc2lv
bkluc3RhbmNlKCkgaW5pdF0pOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQVZDYXB0
dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5kQXBw
TGF5b3V0KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgUEFMOjpBVkNhcHR1cmVTZXNzaW9uU2V0QXV0
aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQobV9zZXNzaW9u
LmdldCgpKTsKICNlbmRpZgogICAgIFttX3Nlc3Npb24gYWRkT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2
ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInJ1bm5pbmciIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2Vydmlu
Z09wdGlvbk5ldyBjb250ZXh0Oih2b2lkICopbmlsXTsKIApAQCAtNDM0LDYgKzQzMyw4IEBAIGJv
b2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCiAKIEFWRnJhbWVSYXRlUmFu
Z2UqIEFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKGRvdWJs
ZSByYXRlKQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFS
RV9JTkxJTkUKKwogICAgIEFWRnJhbWVSYXRlUmFuZ2UgKmJlc3RGcmFtZVJhdGVSYW5nZSA9IG5p
bDsKICAgICBmb3IgKEFWRnJhbWVSYXRlUmFuZ2UgKmZyYW1lUmF0ZVJhbmdlIGluIFtbZGV2aWNl
KCkgYWN0aXZlRm9ybWF0XSB2aWRlb1N1cHBvcnRlZEZyYW1lUmF0ZVJhbmdlc10pIHsKICAgICAg
ICAgaWYgKGZyYW1lUmF0ZVJhbmdlSW5jbHVkZXNSYXRlKHsgW2ZyYW1lUmF0ZVJhbmdlIG1pbkZy
YW1lUmF0ZV0sIFtmcmFtZVJhdGVSYW5nZSBtYXhGcmFtZVJhdGVdIH0sIHJhdGUpKSB7CkBAIC01
OTgsNyArNTk5LDcgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJhdGVQcmVzZXRz
KCkKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKICAgICBmb3IgKEFWQ2Fw
dHVyZURldmljZUZvcm1hdCogZm9ybWF0IGluIFtkZXZpY2UoKSBmb3JtYXRzXSkgewogCi0gICAg
ICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CisgICAgICAgIENNVmlk
ZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dERpbWVuc2lvbnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICAgICAgSW50U2l6ZSBz
aXplID0geyBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCB9OwogICAgICAgICBh
dXRvIGluZGV4ID0gcHJlc2V0cy5maW5kTWF0Y2hpbmcoWyZzaXplXShhdXRvJiBwcmVzZXQpIHsK
ICAgICAgICAgICAgIHJldHVybiBzaXplID09IHByZXNldC0+c2l6ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlRGV2aWNlLmNwcAppbmRleCA2ZTI2YzhmYTRlY2QzMGFjMWU1MmZlYzM4YWY1N2Qw
ZTMzZDliYzI0Li5lMTU1NDYyZjUxODE1ODhiYTNiYzk0NTZjNmI2YWU5YWZlMjFiNWMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCkBAIC0xOSw3ICsxOSw3IEBACiAgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VQQUw6Ok5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCkBAIC0zNiw3ICszNiw2IEBACiAj
aW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGJvb2wgZ2V0RGV2aWNlSW5mbyh1aW50
MzJfdCBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBTdHJpbmcmIHBl
cnNpc3RlbnRJRCwgU3RyaW5nJiBsYWJlbCkKIHsKQEAgLTIwNSw3ICsyMDQsNyBAQCBSZXRhaW5Q
dHI8Q01DbG9ja1JlZj4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNlQ2xvY2soKQogICAg
ICAgICByZXR1cm4gbV9kZXZpY2VDbG9jazsKIAogICAgIENNQ2xvY2tSZWYgY2xvY2s7Ci0gICAg
YXV0byBlcnIgPSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
cGVyc2lzdGVudElkKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmNsb2NrKTsKKyAgICBhdXRv
IGVyciA9IFBBTDo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHBlcnNpc3RlbnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZjbG9jayk7CiAgICAgaWYg
KGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9DYXB0
dXJlRGV2aWNlOjpDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoJXApIENNQXVkaW9EZXZpY2VDbG9j
a0NyZWF0ZSBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcAppbmRleCAwM2YzZTYyYTI2MzdjM2U5MDFiYWY2OTRkM2M1MjY1ZWZhNzRh
ZWIyLi5mNGIzNjU4OTRkMzdjZDk0ZmYyMWI3ZmI1NGZkYjI2NDFmMzZmZTk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00OCw2ICs0OCw4IEBACiAjaW5jbHVkZSA8
d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNv
ZnRMaW5rLmg+CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTcsNyArNTksNiBAQAogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShNQUMpCiBD
b3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rv
cnk6OnNpbmdsZXRvbigpCkBAIC0yMDMsNyArMjA0LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIG1fRFRTQ29udmVyc2lvblJhdGlvID0gMWUt
OSAqIHN0YXRpY19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZvLm51bWVyKSAvIHN0YXRpY19jYXN0
PGRvdWJsZT4odGltZWJhc2VJbmZvLmRlbm9tKTsKIAogICAgIEF1ZGlvQ29tcG9uZW50RGVzY3Jp
cHRpb24gaW9Vbml0RGVzY3JpcHRpb24gPSB7IGtBdWRpb1VuaXRUeXBlX091dHB1dCwga0F1ZGlv
VW5pdFN1YlR5cGVfVm9pY2VQcm9jZXNzaW5nSU8sIGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBw
bGUsIDAsIDAgfTsKLSAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IEF1ZGlvQ29tcG9u
ZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKKyAgICBBdWRpb0NvbXBv
bmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAm
aW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChpb0NvbXBvbmVudCk7CiAgICAgaWYgKCFp
b0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIGZpbmQgdnBpbyB1bml0
IGNvbXBvbmVudCIsIHRoaXMpOwpAQCAtMjEyLDcgKzIxMyw3IEBAIE9TU3RhdHVzIENvcmVBdWRp
b1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmICFMT0dfRElTQUJMRUQKICAgICBD
RlN0cmluZ1JlZiBuYW1lID0gbnVsbHB0cjsKLSAgICBBdWRpb0NvbXBvbmVudENvcHlOYW1lKGlv
Q29tcG9uZW50LCAmbmFtZSk7CisgICAgUEFMOjpBdWRpb0NvbXBvbmVudENvcHlOYW1lKGlvQ29t
cG9uZW50LCAmbmFtZSk7CiAgICAgaWYgKG5hbWUpIHsKICAgICAgICAgbV9pb1VuaXROYW1lID0g
bmFtZTsKICAgICAgICAgQ0ZSZWxlYXNlKG5hbWUpOwpAQCAtMjIwLDcgKzIyMSw3IEBAIE9TU3Rh
dHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICB9CiAjZW5kaWYK
IAotICAgIGF1dG8gZXJyID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwg
Jm1faW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0
KCVwKSB1bmFibGUgdG8gb3BlbiB2cGlvIHVuaXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChp
bnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yMjgsMTMgKzIy
OSwxMyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAK
ICAgICBpZiAoIWVuYWJsZUVjaG9DYW5jZWxsYXRpb24oKSkgewogICAgICAgICB1aW50MzJfdCBw
YXJhbSA9IDA7Ci0gICAgICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBr
QVVWb2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNzaW5nRW5hYmxlQUdDLCBrQXVkaW9Vbml0U2Nv
cGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICAgICAgZXJy
ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5
X1ZvaWNlUHJvY2Vzc2luZ0VuYWJsZUFHQywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRC
dXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVw
QXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gYXV0b21hdGljIGdhaW4gY29udHJvbCwg
ZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAg
ICAgIHJldHVybiBlcnI7CiAgICAgICAgIH0KICAgICAgICAgcGFyYW0gPSAxOwotICAgICAgICBl
cnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X0J5
cGFzc1ZvaWNlUHJvY2Vzc2luZywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZw
YXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJv
cGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9CeXBhc3NWb2ljZVByb2Nlc3Npbmcs
IGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkp
OwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJS
VEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNl
dCB2cGlvIHVuaXQgZWNobyBjYW5jZWxsYXRpb24sIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChp
bnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjQzLDcg
KzI0NCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWludDMyX3QgcGFyYW0gPSAxOwotICAg
IGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJv
cGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRCdXMsICZwYXJhbSwg
c2l6ZW9mKHBhcmFtKSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lv
VW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVf
SW5wdXQsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IGlucHV0LCBlcnJv
ciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1
cm4gZXJyOwpAQCAtMjU1LDcgKzI1Niw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6
OnNldHVwQXVkaW9Vbml0KCkKICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCi0gICAg
ZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9w
ZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJm1f
Y2FwdHVyZURldmljZUlELCBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpKTsKKyAgICBlcnIgPSBQ
QUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVy
dHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZtX2Nh
cHR1cmVEZXZpY2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmljZUlEKSk7CiAgICAgaWYgKGVycikg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0
OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgY2FwdHVyZSBkZXZp
Y2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpbV9jYXB0dXJlRGV2aWNlSUQs
IChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yNzAsNyAr
MjcxLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQog
ICAgIGlmIChlcnIpCiAgICAgICAgIHJldHVybiBlcnI7CiAKLSAgICBlcnIgPSBBdWRpb1VuaXRJ
bml0aWFsaXplKG1faW9Vbml0KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUo
bV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIEF1ZGlvVW5pdElu
aXRpYWxpemUoKSBmYWlsZWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hh
ciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yOTIsNyArMjkzLDcgQEAgdm9pZCBD
b3JlQXVkaW9TaGFyZWRVbml0Ojp1bmR1Y2soKQogT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5p
dDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1
Y3QgY2FsbGJhY2sgPSB7IG1pY3JvcGhvbmVDYWxsYmFjaywgdGhpcyB9OwotICAgIGF1dG8gZXJy
ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0
eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNh
bGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJbnB1dENh
bGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNrLCBzaXpl
b2YoY2FsbGJhY2spKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCVw
KSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBtaWMgcHJvYywgZXJyb3IgJWQgKCUuNHMpIiwgdGhp
cywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMwMSwx
NCArMzAyLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3Jv
cGhvbmVQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbWljcm9waG9uZVBy
b2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtaWNyb3Bob25lUHJv
Y0Zvcm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRp
b1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0
QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlv
VW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0
LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0
LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJS
VEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5h
YmxlIHRvIGdldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywg
KGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKICAg
ICBtaWNyb3Bob25lUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGUoKTsKLSAgICBl
cnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0
cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25l
UHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3Bl
X091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CiAgICAgaWYg
KGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCBvdXRwdXQg
c3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikm
ZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMyMyw3ICszMjQsNyBAQCBPU1N0YXR1cyBD
b3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiBPU1N0YXR1cyBD
b3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYygpCiB7CiAgICAgQVVSZW5k
ZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgc3BlYWtlckNhbGxiYWNrLCB0aGlzIH07Ci0g
ICAgYXV0byBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFBy
b3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1
cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVk
aW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJD
YWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZjYWxsYmFjaywgc2l6
ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkg
dW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgc3BlYWtlciBwcm9jLCBlcnJvciAlZCAoJS40cykiLCB0
aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMzMy
LDE0ICszMzMsMTQgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3Bl
YWtlclByb2MoKQogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzcGVha2VyUHJvY0Zv
cm1hdCA9IHsgfTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKHNwZWFrZXJQcm9jRm9ybWF0
KTsKLSAgICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFBy
b3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZz
cGVha2VyUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0UHJv
cGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1Vu
aXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXplKTsKICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlucHV0
IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciop
JmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCiAgICAgc3BlYWtlclByb2NGb3Jt
YXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJv
cGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1Vu
aXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUpOworICAg
IGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9w
ZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3Bl
YWtlclByb2NGb3JtYXQsIHNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclBy
b2MoJXApIHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMp
IiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAg
LTQ1OSw3ICs0NjAsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1Vu
aXQoKQogICAgIH0KIAogICAgIGlmIChtX2lvVW5pdCkgewotICAgICAgICBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlRGlzcG9zZShtX2lvVW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21wb25lbnRJ
bnN0YW5jZURpc3Bvc2UobV9pb1VuaXQpOwogICAgICAgICBtX2lvVW5pdCA9IG51bGxwdHI7CiAg
ICAgfQogCkBAIC00NzcsNyArNDc4LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
cmVjb25maWd1cmVBdWRpb1VuaXQoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmIChtX2lv
VW5pdFN0YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5p
dCk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CiAg
ICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1
dFVuaXRTdG9wIGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtNDkwLDcgKzQ5MSw3IEBA
IE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCkKICAg
ICAgICAgcmV0dXJuIGVycjsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAgICAgICAg
ZXJyID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOworICAgICAgICBlcnIgPSBQQUw6
OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKICAgICAgICAgaWYgKGVycikgewogICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
cmVjb25maWd1cmVBdWRpb1VuaXQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCB3aXRo
IGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAg
ICAgICByZXR1cm4gZXJyOwpAQCAtNTE0LDcgKzUxNSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1No
YXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwoKQogCiAgICAgdW5kdWNrKCk7CiAKLSAgICBlcnIgPSBB
dWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAgZXJyID0gUEFMOjpBdWRpb091dHB1
dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzdGFydCglcCkgQXVkaW9PdXRw
dXRVbml0U3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIs
IChjaGFyKikmZXJyKTsKICAgICAgICAgY2xlYW51cEF1ZGlvVW5pdCgpOwpAQCAtNTUxLDcgKzU1
Miw3IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKCkKICAgICBpZiAo
IW1faW9Vbml0IHx8ICFtX2lvVW5pdFN0YXJ0ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1
dG8gZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgYXV0byBlcnIgPSBQ
QUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcCgl
cCkgQXVkaW9PdXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlz
LCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm47CkBAIC01NjUsNyArNTY2
LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKHVp
bnQzMl90KiBkZXZpY2VJRCkKICAgICBBU1NFUlQobV9pb1VuaXQpOwogCiAgICAgVUludDMyIHBy
b3BlcnR5U2l6ZSA9IHNpemVvZigqZGV2aWNlSUQpOwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0
R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2
aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0
eVNpemUpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5p
dCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29w
ZV9HbG9iYWwsIGlucHV0QnVzLCBkZXZpY2VJRCwgJnByb3BlcnR5U2l6ZSk7CiAgICAgaWYgKGVy
cikKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5p
dDo6ZGVmYXVsdElucHV0RGV2aWNlKCVwKSB1bmFibGUgdG8gZ2V0IGRlZmF1bHQgaW5wdXQgZGV2
aWNlIElELCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggM2Y0ZTRkY2Y0
MmMwZmE5M2VmOWFiNjJkZDIyYTk3YzUxMzg3MDY2My4uNTgyZjRiMjZjZjExOGM0OTcxYWNkN2Qx
ODMwOTIxOTdlMWU3NjgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
LmNwcApAQCAtNTYsNyArNTYsNiBAQAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3Vy
Y2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tB
dWRpb1NoYXJlZFVuaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQppbmRleCBhYTdmZjA4NzUwNTQyNTgyZjFlZjkxNjdh
ODFlNmZiNWE1NDhmMTUyLi5iODZiMDVlOGM2NjViYzJlODA1ZjI3YjM4YjFhNGZkMzMxM2Y5MmMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a0F1ZGlvU2hhcmVkVW5pdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAtNDQsMTQgKzQ0LDEwIEBACiAjaW1w
b3J0IDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KICNpbXBvcnQgPENvcmVBdWRpby9D
b3JlQXVkaW9UeXBlcy5oPgogCisjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsu
aD4KICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCi1TT0ZUX0xJTktfRlJB
TUVXT1JLKEF1ZGlvVG9vbGJveCkKLQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBp
blNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3Rp
bmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5T
b3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGlu
ZSBzaXplX3QgYWxpZ25UbzE2Qnl0ZXMoc2l6ZV90IHNpemUpCiB7CkBAIC0yMjEsNyArMjE3LDcg
QEAgdm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSgpCiAgICAgbV9hdWRpb0J1
ZmZlckxpc3QgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9zdHJlYW1Gb3JtYXQs
IG1fbWF4aW1pdW1GcmFtZUNvdW50KTsKIAogICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9y
bWF0RGVzY3JpcHRpb247Ci0gICAgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKE5VTEws
ICZtX3N0cmVhbUZvcm1hdCwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERlc2NyaXB0
aW9uKTsKKyAgICBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShOVUxMLCAmbV9z
dHJlYW1Gb3JtYXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXREZXNjcmlwdGlvbik7
CiAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRpb24pOwog
CiAgICAgc2l6ZV90IHNhbXBsZUNvdW50ID0gMiAqIHJhdGU7CkBAIC0yNDMsNyArMjM5LDcgQEAg
dm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyh1aW50MzJfdCBmcmFt
ZUNvdW50KQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2Zvcm1h
dERlc2NyaXB0aW9uKTsKIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fc2Ft
cGxlc0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6
Q01UaW1lTWFrZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOwogICAgIG1fc2FtcGxl
c0VtaXR0ZWQgKz0gZnJhbWVDb3VudDsKIAogICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShQQUw6
OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSksICptX2F1ZGlvQnVmZmVyTGlzdCwgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uKG1fc3RyZWFtRm9ybWF0KSwgZnJhbWVDb3VudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggYjA1OWEzMjUxZDhiOTY1N2JhOTAxNGM0
NGY4MDYzYWY4MjdiMWQ0My4uYjYwYjg4NjZmYmI4MDQ4OGMyM2ZlMmI1NzY5MmIzMGY4N2UzODY5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAtNTEsNyAr
NTEsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VPckVycm9y
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
Q29jb2EuY3BwCmluZGV4IDU4MDk0YjM0MjBmMzljOGYyNmMxNzc3YTJhZWQwMTIzZGJlYTI2Mjgu
LmFhNjk2YWRkZjdmNzc5MjU5MTUyOTU4M2MyMTYwYzEyNDkxMWQ1NWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVk
aW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNDAsNyArNDAs
NiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlPiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmIGF1ZGlvVHJhY2ssIFN0cmlu
ZyYmIGF1ZGlvVHJhY2tJZCkKIHsKQEAgLTEzMSw3ICsxMzAsNyBAQCB2b2lkIFJlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZUNvY29hOjpPbkRhdGEoY29uc3Qgdm9pZCogYXVkaW9EYXRhLCBpbnQg
Yml0c1BlcgogICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IDA7CiAgICAgfQogCi0gICAg
Q01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0
ZSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX251bWJlck9mRnJh
bWVzLCBzYW1wbGVSYXRlKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUo
c3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJhbWVzOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXgg
OGRmOGY2OGY2ZjcyNDA0NzVkYmQ0MzIzMDZhYTNhNTY5ZjZlNDhjZi4uMGM3MWUxZGIxMGZhNDM3
YTdjMDA0M2QzNjRmNDRiZjcyMzcxMWM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtNDIsNyArNDIsNiBAQCBBTExPV19VTlVTRURf
UEFSQU1FVEVSU19FTkQKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlPiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmIHZpZGVvVHJh
Y2ssIFN0cmluZyYmIHRyYWNrSWQpCiB7CkBAIC0xNzMsMTkgKzE3MiwxOSBAQCB2b2lkIFJlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpPbkZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9G
cmFtZSYgZnJhbWUpCiAgICAgfQogCiAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm87
Ci0gICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVRpbWVNYWtlKGZyYW1l
LnRpbWVzdGFtcF91cygpLCAxMDAwMDAwKTsKLSAgICB0aW1pbmdJbmZvLmRlY29kZVRpbWVTdGFt
cCA9IGtDTVRpbWVJbnZhbGlkOwotICAgIHRpbWluZ0luZm8uZHVyYXRpb24gPSBrQ01UaW1lSW52
YWxpZDsKKyAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IFBBTDo6Q01UaW1l
TWFrZShmcmFtZS50aW1lc3RhbXBfdXMoKSwgMTAwMDAwMCk7CisgICAgdGltaW5nSW5mby5kZWNv
ZGVUaW1lU3RhbXAgPSBQQUw6OmtDTVRpbWVJbnZhbGlkOworICAgIHRpbWluZ0luZm8uZHVyYXRp
b24gPSBQQUw6OmtDTVRpbWVJbnZhbGlkOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIE9TU3RhdHVzIG9zdGF0dXMgPSBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAo
Q1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBP
U1N0YXR1cyBvc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1
ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAob3N0YXR1cyAhPSBub0Vycikgewog
ICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJGYWlsZWQg
dG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciAiLCBzdGF0
aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBvc3RhdHVzID0gQ01TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFn
ZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAm
c2FtcGxlQnVmZmVyKTsKKyAgICBvc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVm
KXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZm
ZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9zdGF0dXMg
IT0gbm9FcnIpIHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElG
SUVSLCAiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgc2FtcGxlIGJ1ZmZlciB3aXRoIGVycm9yICIsIHN0
YXRpY19jYXN0PGludD4ob3N0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNmJmMGNhNDg3ZGQ2NGRiZWY1MzlkOTQ4ODBm
NjI4YzdmYTE2MWJmMS4uZTMzYmI2ZGE5ZGRkZDAxYTAwZDk5NmZkOWVmMDJhYzk4MTRhMWViNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3Bw
CkBAIC00NSw3ICs0NSw2IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogI2luY2x1ZGUg
IkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+IFJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiB2
aWRlb1NvdXJjZSkKIHsKQEAgLTg1LDcgKzg0LDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkK
ICAgICB9CiAKICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0
Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0g
c3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBh
dXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlcikpOwogICAgIGF1dG8gcGl4ZWxGb3JtYXRUeXBlID0gQ1ZQaXhlbEJ1ZmZl
ckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiAKICAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gY29udmVydGVkQnVmZmVyID0gcGl4ZWxCdWZmZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1
cmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRv
d0Rpc3BsYXlDYXB0dXJlck1hYy5tbQppbmRleCA3OGJiY2FkMTM5OTg2MmY1NWI5NzBiZTQ3N2Yy
NTE0YzRmMzQ4NDU0Li4xMjkzZGE1NTlmOTI5YTdhZWVjNTRkMDdhYTlhZTRmOTk0Zjk1YjQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93
RGlzcGxheUNhcHR1cmVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KQEAgLTQ2LDcgKzQ2LDYgQEAK
IFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0dJbWFnZSk7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29sIGFueU9mQ0dXaW5kb3coY29u
c3QgRnVuY3Rpb248Ym9vbChDRkRpY3Rpb25hcnlSZWYgaW5mbywgdW5zaWduZWQgaWQsIGNvbnN0
IFN0cmluZyYgdGl0bGUpPiYgcHJlZGljYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvV2ViSWNvblV0aWxpdGllcy5tbQppbmRleCA0ZWEzZGU4NmNiYjQ0NDE5ZGE2ZTFmNDkzYmVh
ODM5MDU1ZGQxODVlLi5mNmIzY2U5MWQ1MjU2MjJkMWRiMWYyMDE3ZTgxMTExNTU1OTZlM2Y1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGllcy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGllcy5tbQpAQCAtMTI0
LDcgKzEyNCw3IEBAIFJldGFpblB0cjxVSUltYWdlPiBpY29uRm9yVmlkZW9GaWxlKE5TVVJMICpm
aWxlKQogICAgIFtnZW5lcmF0b3Igc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtOllF
U107CiAKICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gaW1hZ2VSZWYgPSBhZG9wdENGKFtnZW5lcmF0b3IgY29weUNHSW1hZ2VBdFRpbWU6a0NNVGlt
ZVplcm8gYWN0dWFsVGltZTpuaWwgZXJyb3I6JmVycm9yXSk7CisgICAgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IGltYWdlUmVmID0gYWRvcHRDRihbZ2VuZXJhdG9yIGNvcHlDR0ltYWdlQXRUaW1lOlBB
TDo6a0NNVGltZVplcm8gYWN0dWFsVGltZTpuaWwgZXJyb3I6JmVycm9yXSk7CiAgICAgaWYgKCFp
bWFnZVJlZikgewogICAgICAgICBMT0dfRVJST1IoIkVycm9yIGNyZWF0aW5nIGltYWdlIGZvciB2
aWRlbyAnJUAnOiAlQCIsIGZpbGUsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbGxiYWNrSWNv
bkZvckZpbGUoZmlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKaW5kZXggYTE2ZDI0
MjU2NDFmMzdhMTlkMGMwOWU1NGJjM2VlZjRhYTI4MThlYS4uMGJhYzFlMjg5ZTc3NzJlYWU3ZTZi
MzY5ODEwODU5NGI3YTY4Njg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcApAQCAt
MzQsMTcgKzM0LDE3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIGNyZWF0ZVdyYXBwZXIo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFibGUqIGJhc2VWVGFibGUs
IENNQmFzZUNsYXNzSUQgY2xhc3NJRCwgQ01CYXNlT2JqZWN0UmVmKiB3cmFwcGVyKQogewotICAg
IHJldHVybiBDTURlcml2ZWRPYmplY3RDcmVhdGUoYWxsb2NhdG9yLCBiYXNlVlRhYmxlLCBjbGFz
c0lELCB3cmFwcGVyKSA9PSBub0VycjsKKyAgICByZXR1cm4gUEFMOjpDTURlcml2ZWRPYmplY3RD
cmVhdGUoYWxsb2NhdG9yLCBiYXNlVlRhYmxlLCBjbGFzc0lELCB3cmFwcGVyKSA9PSBub0VycjsK
IH0KIAogdm9pZCogd3JhcHBlclN0b3JhZ2UoQ01CYXNlT2JqZWN0UmVmIHdyYXBwZXIpCiB7Ci0g
ICAgcmV0dXJuIENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOworICAgIHJl
dHVybiBQQUw6OkNNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOwogfQogCiBj
b25zdCBDTUJhc2VWVGFibGUqIHdyYXBwZXJWVGFibGUoQ01CYXNlT2JqZWN0UmVmIHdyYXBwZXIp
CiB7Ci0gICAgcmV0dXJuIENNQmFzZU9iamVjdEdldFZUYWJsZSh3cmFwcGVyKTsKKyAgICByZXR1
cm4gUEFMOjpDTUJhc2VPYmplY3RHZXRWVGFibGUod3JhcHBlcik7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKaW5kZXggYzE4NGU0NDdi
MmNkNDQyYTg0N2VjMzE2MjMzNmI2ZmFmNzg3M2M3Yy4uNWU3NzhjYzBiN2JkYTc0ZTNmNzVjOTli
NThiYThiZmEyNTE3MjkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCkBAIC00
Nyw3ICs0Nyw2IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoTVRQbHVnaW5Gb3JtYXRSZWFk
ZXIpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50aWZp
ZXIoKQpAQCAtMjQ1LDcgKzI0NCw3IEBAIE9TU3RhdHVzIE1lZGlhRm9ybWF0UmVhZGVyOjpjb3B5
UHJvcGVydHkoQ0ZTdHJpbmdSZWYga2V5LCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0CiAgICAgaWYg
KG1fZHVyYXRpb24uaXNJbmRlZmluaXRlKCkpCiAgICAgICAgIHJldHVybiBrQ01CYXNlT2JqZWN0
RXJyb3JfVmFsdWVOb3RBdmFpbGFibGU7CiAKLSAgICBpZiAoYXV0byBsZWFrZWREdXJhdGlvbiA9
IGFkb3B0Q0YoQ01UaW1lQ29weUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1lKG1fZHVyYXRpb24p
LCBhbGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKKyAgICBpZiAoYXV0byBsZWFrZWREdXJhdGlvbiA9
IGFkb3B0Q0YoUEFMOjpDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5KFBBTDo6dG9DTVRpbWUobV9kdXJh
dGlvbiksIGFsbG9jYXRvcikpLmxlYWtSZWYoKSkgewogICAgICAgICAqcmVpbnRlcnByZXRfY2Fz
dDxDRkRpY3Rpb25hcnlSZWYqPih2YWx1ZUNvcHkpID0gbGVha2VkRHVyYXRpb247CiAgICAgICAg
IHJldHVybiBub0VycjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNw
cAppbmRleCBkODNlZmNmNDc3NWNlOTZiMTJhODc2MGY4ZDE3MjM0YWIwZjFlZTdkLi40ZGUxZDBl
ZDJhN2JlNDllM2NiYmI5NWUzNzdmNTQ1MDlmYWMwN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNh
bXBsZUJ5dGVSYW5nZS5jcHAKQEAgLTI1LDEyICsyNSwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVCeXRlUmFuZ2UuaCIKKyNpbmNsdWRlIDxwYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaD4KIAogI2lmIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5n
ZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSwg
dWludDY0X3QgdHJhY2tJRCkKQEAgLTUwLDcgKzUwLDcgQEAgTWVkaWFTYW1wbGVCeXRlUmFuZ2U6
Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNv
dXIKICAgICBhdXRvIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCk7CiAg
ICAgc3dpdGNoIChwbGF0Zm9ybVNhbXBsZS50eXBlKSB7CiAgICAgY2FzZSBQbGF0Zm9ybVNhbXBs
ZTo6Q01TYW1wbGVCdWZmZXJUeXBlOgotICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gQ01T
YW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIpOworICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBs
ZUJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6OkJ5dGVS
YW5nZVNhbXBsZVR5cGU6CiAgICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBwbGF0Zm9ybVNh
bXBsZS5zYW1wbGUuYnl0ZVJhbmdlU2FtcGxlLnNlY29uZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVD
dXJzb3IuY3BwCmluZGV4IGNlMjkwNmRjNDQyOWI4NzUxNGE3YjAwYzMyMTczOTJkNTA3YjNmOTUu
LmZiZTQyMjczMDZmODBmNjFjMTI3YzMzOGM3MWVmYTU0YTJkMjBjODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhU2FtcGxlQ3Vyc29yLmNwcApAQCAtNDMsNyArNDMsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBF
X1RSQUlUKE1UUGx1Z2luU2FtcGxlQ3Vyc29yKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIE1l
ZGlhVGltZSBhc3N1bWVkRGVjb2RlVGltZShjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRp
bWUsIERlY29kZU9yZGVyU2FtcGxlTWFwJiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5j
cHAKaW5kZXggOTA4NjFjODRkZGU2YzY2ZGRiODc3OTNhYjIzMDZhNjZlNGRlYjczMS4uMWRjMWNh
ZTAzMDA4ZTBhMjBhNDRhYzczZDFhYTM3MjUzNTdmMjBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNr
UmVhZGVyLmNwcApAQCAtNDcsNyArNDcsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKE1U
UGx1Z2luVHJhY2tSZWFkZXIpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBDTUJhc2VDbGFzc0lEIE1lZGlh
VHJhY2tSZWFkZXI6OndyYXBwZXJDbGFzc0lEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRv
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91
cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbQppbmRleCAxN2Q3OWYxNjEwNTZhMDEwYTRlYWM1ODJm
ZDI3ODY4ZjM4OGE2MjExLi4xZTM4ZGU1ZGJkYTllMTU3MTI4ZjFmNDBkYWFkMWM0OTE5MGUzMDBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRp
ZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1t
CkBAIC0xMDIsOCArMTAyLDYgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKLQogUmVmPEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yPiBHcm91cEFj
dGl2aXRpZXNDb29yZGluYXRvcjo6Y3JlYXRlKEdyb3VwQWN0aXZpdGllc1Nlc3Npb24mIHNlc3Np
b24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0
b3Ioc2Vzc2lvbikpOwpAQCAtMTU0LDcgKzE1Miw3IEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29v
cmRpbmF0b3I6OmxlYXZlKCkKIAogdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6c2Vl
a1RvKGRvdWJsZSB0aW1lLCBDb29yZGluYXRvckNvbXBsZXRpb25IYW5kbGVyJiYgY2FsbGJhY2sp
CiB7Ci0gICAgW21fcGxheWJhY2tDb29yZGluYXRvciBjb29yZGluYXRlU2Vla1RvVGltZTpDTVRp
bWVNYWtlV2l0aFNlY29uZHModGltZSwgMTAwMCkgb3B0aW9uczowXTsKKyAgICBbbV9wbGF5YmFj
a0Nvb3JkaW5hdG9yIGNvb3JkaW5hdGVTZWVrVG9UaW1lOlBBTDo6Q01UaW1lTWFrZVdpdGhTZWNv
bmRzKHRpbWUsIDEwMDApIG9wdGlvbnM6MF07CiAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsK
IH0KIApAQCAtMjExLDEwICsyMDksMTAgQEAgdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRv
cjo6aXNzdWVQbGF5Q29tbWFuZChBVkRlbGVnYXRpbmdQbGF5YmFja0Nvb3JkaW5hdG8KIAogICAg
IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBpdGVtVGltZTsKICAgICBpZiAoQ01USU1FX0lTX05VTUVS
SUMocGxheUNvbW1hbmQuaXRlbVRpbWUpKQotICAgICAgICBpdGVtVGltZSA9IENNVGltZUdldFNl
Y29uZHMocGxheUNvbW1hbmQuaXRlbVRpbWUpOworICAgICAgICBpdGVtVGltZSA9IFBBTDo6Q01U
aW1lR2V0U2Vjb25kcyhwbGF5Q29tbWFuZC5pdGVtVGltZSk7CiAgICAgc3RkOjpvcHRpb25hbDxN
b25vdG9uaWNUaW1lPiBob3N0VGltZTsKICAgICBpZiAoQ01USU1FX0lTX05VTUVSSUMocGxheUNv
bW1hbmQuaG9zdENsb2NrVGltZSkpCi0gICAgICAgIGhvc3RUaW1lID0gTW9ub3RvbmljVGltZTo6
ZnJvbU1hY2hBYnNvbHV0ZVRpbWUoQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMo
cGxheUNvbW1hbmQuaG9zdENsb2NrVGltZSkpOworICAgICAgICBob3N0VGltZSA9IE1vbm90b25p
Y1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKFBBTDo6Q01DbG9ja0NvbnZlcnRIb3N0VGltZVRv
U3lzdGVtVW5pdHMocGxheUNvbW1hbmQuaG9zdENsb2NrVGltZSkpOwogCiAgICAgY2xpZW50KCkt
PnBsYXlTZXNzaW9uKGl0ZW1UaW1lLCBob3N0VGltZSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldIChib29sKSB7CiAgICAgICAgIGNhbGxiYWNrKCk7CkBAIC0yNDYsNyArMjQ0LDcgQEAg
dm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6aXNzdWVTZWVrQ29tbWFuZChBVkRlbGVn
YXRpbmdQbGF5YmFja0Nvb3JkaW5hdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNs
aWVudCgpLT5zZWVrU2Vzc2lvblRvVGltZShDTVRpbWVHZXRTZWNvbmRzKHNlZWtDb21tYW5kLml0
ZW1UaW1lKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChib29sKSBtdXRhYmxlIHsK
KyAgICBjbGllbnQoKS0+c2Vla1Nlc3Npb25Ub1RpbWUoUEFMOjpDTVRpbWVHZXRTZWNvbmRzKHNl
ZWtDb21tYW5kLml0ZW1UaW1lKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChib29s
KSBtdXRhYmxlIHsKICAgICAgICAgY2FsbGJhY2soKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5k
ZXggNDI3OTY5YzI4MjExOGFjM2MzZDc3MDgzZWFiODJkOTVmZDBhYmVmZi4uMTcxZDljYTQ4NDkx
NWQ3YWY0ZWVhZDY5NzA5OTkxZTUwNGQ0Mjc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTI2OSw3ICsyNjks
NyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9u
cygpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAgIGlmICghaXNBdWRpb1Rvb2xi
b3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxvYWRfQXVkaW9Ub29sYm94Q29yZV9B
dWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucygpKQorICAgIGlmICghUEFMOjpp
c0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhUEFMOjpjYW5Mb2FkX0F1
ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2Jh
bF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bQppbmRleCBmMzc4NGZjMjcxMmIwZGY2Mzg3MTIwNDdjZDcyZjg1MzBjNzc3MjM0Li4yYTgzZDk3
MTBiZjcyNTVlNTkzODVjMWIxZjY1OTM0YzI2MzA1NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29j
b2EubW0KQEAgLTQyLDcgKzQyLDYgQEAgQGVuZAogTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKIG5h
bWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBzdGF0aWMgYm9vbCB1c2FnZVRyYWNraW5nQXZhaWxhYmxlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlLmNwcAppbmRleCBjMzIzYTZhNzhiNDUwMDViNjc3NDA4NjJiNjI5YjE2ZmJiODBm
NDBiLi5mODkxYTUzMzE0NTBiZjE3ZWFmOTViMDBlMzE4ZGFlM2M3Mzg3NTRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJB
dWRpb0J1ZmZlckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2Ug
UEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkuY3BwCmluZGV4IDk1YmJkNTQ4M2NmZWExN2M5MTJlZDViNWYxM2Y0MzFmYWUzNzEyNjcuLjhh
NTlhZTFhMjhmYTQzYTliMmYyMTU3NjIxMTg5YWU5NzZkMTAyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlUHJveHkuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3Bh
Y2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA2NmEx
OWU3M2E5ZWI1NjRkY2NlMDc3N2RjMzIwMGU0YzBiYzkzYzYwLi44YWNjM2QwYThhYjFjY2Q0YjNm
ZWNhZDYwYjNhNmJjM2FlNjQzMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEzOTIsNyArMTM5Miw3IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyhjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmIGRhCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAgIGlmICgh
aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxvYWRfQXVkaW9U
b29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucygpKQorICAg
IGlmICghUEFMOjppc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhUEFM
OjpjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lz
dHJhdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZWdpc3RyYXRpb25zID0g
YWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YS5kYXRhKCksIGRh
dGEuc2l6ZSgpKSk7Cg==
</data>
<flag name="commit-queue"
          id="454070"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432122</attachid>
            <date>2021-06-23 18:29:11 -0700</date>
            <delta_ts>2021-06-23 19:25:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210624112909.patch</filename>
            <type>text/plain</type>
            <size>314773</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxYWM3ZDA0MjEwOWQ2
MDlmMGU3ZTdjN2MyNjQ1MGE1ZWJkYjY0Ni4uY2VjOTc1OTMzODFjNGE1NTljNmRlYWRkYTE4OGQ4
ZGFiOWRlMGM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlcyBv
ZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFVuaWZ5IEF1ZGlvVG9vbGJveCwgQ29yZU1lZGlhLCBWaWRlb1Rvb2xib3ggYW5k
IE1lZGlhVG9vbGJveCdzIG1ldGhvZAorICAgICAgICBkZWZpbml0aW9ucyBhbmQgdGhlaXIgdXNl
LCBlbnN1cmluZyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzb2Z0LWxpbmtlZC4KKyAgICAgICAgVW5p
ZmllZCBidWlsZHMgYW5kIHRoZSBpbmNvbnNpc3RlbnQgdXNlIG9mIGV4cGxpY2l0bHkgdXNpbmcg
dGhlIFBBTCBuYW1lc3BhY2UKKyAgICAgICAgY2F1c2VkIHNvbWUgY2FsbHMgdG8gYmUgYW1iaWd1
b3VzIGxlYWRpbmcgdG8gY29tcGlsYXRpb24gZXJyb3JzOyBzb21lCisgICAgICAgIGNvZGUgd291
bGQgYWxzbyB1c2UgdGhlIHNvZnRsaW5rZWQgbWV0aG9kcyB3aGlsZSBvdGhlcnMgY2FsbGVkIGlu
dG8gdGhlIGZyYW1ld29ya3MKKyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIFRvIGdldCBhcm91
bmQgdGhvc2Ugd2UgZW5zdXJlIHRoYXQgYW55IGNhbGxzIHRvIEF1ZGlvVG9vbGJveCBvciBDb3Jl
TWVkaWEgaXMgYWx3YXlzIHVzaW5nCisgICAgICAgIHRoZSBmdWxseSByZXNvbHZlZCBQQUwgbmFt
ZS4KKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGB1c2luZyBuYW1lc3BhY2UgUEFMO2Agc3Rh
dGVtZW50cyB3aGVyZXZlciBhcHBsaWNhYmxlLgorICAgICAgICBObyBjaGFuZ2UgaW4gb2JzZXJ2
YWJsZSBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5w
cmVwYXJlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUltYWdlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50
TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlk
Q2hhbmdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpk
ZXN0cm95TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjp2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJS
ZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGVJbWFnZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnBy
ZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkZWNvZGVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6ZHVyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpzaXplSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFW
Rk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZG9l
c0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1ZmZl
ckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1wbGVC
dWZmZXJOb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6cHJlc2VudGF0aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1w
bGVBVkZPYmpDOjppc0RpdmlzYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OmRpdmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZm
ZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3Vt
ZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpB
dWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0NNQ29sb3JQcmltYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01U
cmFuc2ZlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0NNWUNiQ1JNYXRy
aXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJh
aXQ8Q01TYW1wbGVCdWZmZXJSZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmRlY29kZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjph
dXRvbWF0aWNEZXF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5I
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRh
dGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVr
YWJsZVJhbmdlc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93
V2F0ZXJUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0Nv
bXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFz
c2V0V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVk
aW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmlj
ZUNsb2NrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpj
b25maWd1cmVNaWNyb3Bob25lUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVk
aW9TaGFyZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2E6Ok9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW06CisKIDIwMjEtMDYtMjEgIEplYW4t
WXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1l
dGhvZCBpbiBBdWRpb0ZpbGVSZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGRlZmQ3Yjc2ZTc2
YTAwODNiNmY4YjU2MzY4MjcwZGNmMjM3OWRlYTYuLjgxMWQ2ODY2YTM0MDc0YjNmNDc0ZTQxNzNj
ZjQ3NzZmMDM1ODA5NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIx
LTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgTm90
IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgor
ICAgICAgICAqIHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWV0aG9kcyB3aG9z
ZSBkZWZpbml0aW9ucyB3ZXJlIHNjYXR0ZXJlZCBhY3Jvc3MKKyAgICAgICAgdGhlIGNvZGUuCisg
ICAgICAgICogcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBw
YWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaDogU2FtZSBhcyBhYm92ZS4KKyAgICAgICAg
KiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9BdWRp
b1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisgICAgICAgICogcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kcworICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hT
b2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg6IEFk
ZCBtaXNzaW5nIG1ldGhvZHMgYW5kIGZpeCBzb21lIHNwZWxsaW5nIGluIGRlZmluZSBuYW1lcwor
ICAgICAgICAqIHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICog
cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmg6IEFkZCBtaXNzaW5nIG1ldGhvZHMKKwog
MjAyMS0wNi0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29jb2FdIE1ha2UgdGhlIGhvc3RUaW1lIHBhcmFtZXRlciB0byBwbGF5U2Vzc2lvbiBhIE1vbm90
b25pYyB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU3ZGNiNTZmYmE4MDNmNmZjMTJkMTk0NGE1MGNiNWNjZmI4
MWY2MjQuLjFkNTkyOTQwNjJhNzE2ODY2NzFkMjAxNmU3ZmM5YjRjNjE2YTBmNjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFw
cGxlLmNvbT4KKworICAgICAgICBOb3QgYWxsIHVzZXMgb2YgQXVkaW9Ub29sYm94IGZyYW1ld29y
ayB1c2Ugc29mdCBsaW5raW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjcyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NjA2MDkwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpjb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBT
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpjcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKFdlYktpdDo6d3JhcHBlclN0b3Jh
Z2UpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyVlRhYmxlKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFGb3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eSk6CisgICAgICAgICogU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZSk6Cisg
ICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5j
cHA6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVh
ZGVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50
UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNh
Z2VNYW5hZ2VyQ29jb2EubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVB
dWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorCiAyMDIxLTA2LTIzICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbaU9TIDE1IFJlZ3Jlc3Npb25d
OiBzY3JvbGwgcG9zaXRpb24gcmVzZXRzIHdoZW4gdXNpbmcgc2Nyb2xsIHNuYXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcAppbmRleCA2YTgyM2Q2MWFkMTAxMDMyYmJlMTk0YTYyYjViNjE1NmQyM2Nh
YjEyLi4wOWMyZWEzMjljMmMwY2E2ZWU2ZjdiYTNhMmM0NGFkZjgzNDhlNWY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwCkBAIC01Myw4ICs1Myw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogI2lmICFVU0UoTElCV0VCUlRDKQogc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxQZWVyQ29ubmVjdGlvbkJhY2tlbmQ+IGNyZWF0ZU5vUGVlckNvbm5lY3Rp
b25CYWNrZW5kKFJUQ1BlZXJDb25uZWN0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpp
bmRleCA0MDBmOWI4ZDE2YjU5M2I0ODVlMDBjN2Y3OGY1OWRlOThkYzM3ZDlmLi43NDk5NGUyYzUx
MDBlY2FiYTYxNTkwZmIxMTgwYWEwYmMzN2IwZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1t
CkBAIC01OCw3ICs1OCw2IEBACiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiBzdGF0aWMgSlNWYWx1ZSAqanNWYWx1ZVdpdGhWYWx1ZUlu
Q29udGV4dChpZCwgSlNDb250ZXh0ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCmlu
ZGV4IDViMTM1YjM5YTVhMGExZDgwMWJlNjg3OGZiZGZmNjc2NmMyZThhY2UuLmYxYzJhZjMzYzVm
YTJhYjZmYzUxNjY5OTgzZmE3MGU3Njk2NDAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2Nv
YS5jcHAKQEAgLTM3LDggKzM3LDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCi11c2luZyBuYW1lc3BhY2Ug
UEFMOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIHN0cmVhbURlc2NyaXB0aW9uKHNpemVfdCBzYW1wbGVSYXRlLCBzaXplX3Qg
Y2hhbm5lbENvdW50KQpAQCAtNzEsNyArNjksNyBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2U6OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyYgYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFr
ZShtX251bWJlck9mRnJhbWVzLCBtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCkpOworICAg
IENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9j
dXJyZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6
dG9NZWRpYVRpbWUoc3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9m
RnJhbWVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9v
bGJveFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuY3BwCmluZGV4IDY3Yjc4ZjQ2YTc4MTE3ODg4ZjAwZDA4OTdkYmE1N2U3YWM1Mzg1
MDIuLjMzM2FhMjI0YzcxYTc1MGNkOWEwZjY5Zjc4M2RkMDE1OTc1MTBhYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0y
NiwyMCArMjYsNDYgQEAKIAogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxBdWRp
b1Rvb2xib3gvQXVkaW9Db21wb25lbnQuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9D
b252ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+CiAjaW5jbHVk
ZSA8QXVkaW9Ub29sYm94L0F1ZGlvRm9ybWF0Lmg+Ci0KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gv
QXVkaW9Vbml0Lmg+CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+
CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgUEFMX0VYUE9SVCkK
IAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHlJbmZvLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGlu
QXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJ
bnQzMiogb3V0U2l6ZSwgQm9vbGVhbiogb3V0V3JpdGFibGUpLCAoaW5BdWRpb0NvbnZlcnRlciwg
aW5Qcm9wZXJ0eUlELCBvdXRTaXplLCBvdXRXcml0YWJsZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVj
aWZpZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0
YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVy
U2l6ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24q
IGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVz
dGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChp
blNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyRGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVy
dGVyKSwgKGluQXVkaW9Db252ZXJ0ZXIpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAo
QXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0
eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCog
aW5Qcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3Bl
cnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJv
cGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBv
dXRQcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3Bl
cnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZl
ciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBVSW50MzIg
aW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1dERhdGEsIEF1
ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpbk51bWJl
clBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRmlsbENvbXBs
ZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwg
QXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyBpbklucHV0RGF0YVByb2MsIHZvaWQq
IGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0YVBhY2tldFNpemUs
IEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlw
dGlvbiogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5JbnB1dERh
dGFQcm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwg
b3V0T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRpb24pKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0LCBPU1N0
YXR1cywgKEF1ZGlvVW5pdCBjaSksIChjaSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RvcCwgT1NTdGF0dXMsIChBdWRp
b1VuaXQgY2kpLCAoY2kpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRp
b1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlv
Q29tcG9uZW50SW5zdGFuY2UgaW5JbnN0YW5jZSksIChpbkluc3RhbmNlKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudENvcHlO
YW1lLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBDRlN0cmluZ1JlZiog
b3V0TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisKIFNPRlRfTElOS19GVU5DVElPTl9N
QVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVk
aW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVm
KiBvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSwgKG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0
cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYgaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgKGlu
QnVuZGxlUmVnaXN0cmF0aW9ucyksIFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChB
dWRpb0ZpbGVJRCBpbkF1ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFj
a3MsIE9TU3RhdHVzLCAodm9pZCAqaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5S
ZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNp
emVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5j
LCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0Zp
bGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVu
YywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlz
cG9zZSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRB
dWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xi
b3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBp
bkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
MiAqaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRp
b0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBV
SW50MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0YSksIChpbkV4dEF1
ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3Rh
dHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0
eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCAq
aW5Qcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0
eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1
cywgKEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9G
aWxlUmVmICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0
QXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRB
dWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkK
KworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
Q29tcG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21w
b25lbnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChpbkNvbXBv
bmVudCwgaW5EZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9u
ZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5jZSksIChp
bkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlv
VW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5T
Y29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQqIG91dERhdGEsIFVJbnQzMiog
aW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwg
aW9EYXRhU2l6ZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwg
KGluVW5pdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVk
aW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRF
bGVtZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSks
IChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkK
IAogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKaW5kZXggNDllMzJlMTc5NDAzNjNiODQ5Nzc0
NDM1YmQyMDk1ZTY0YWI0ODgxYi4uZGRmMTNhMDI3YTQ1YTIyYjgzOThkMTM1ZThlMGIzZGZjNjg1
NTJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hT
b2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaApAQCAtMjYsMjcgKzI2LDExNCBAQAogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAor
I2luY2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0
TGlua2luZy5oPgogCiB0eXBlZGVmIFVJbnQzMiBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQ7CiB0
eXBlZGVmIFVJbnQzMiBBdWRpb0Zvcm1hdFByb3BlcnR5SUQ7CiB0eXBlZGVmIHN0cnVjdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uOwogdHlw
ZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db252ZXJ0ZXIqIEF1ZGlvQ29udmVydGVyUmVmOwordHlw
ZWRlZiBzdHJ1Y3QgQXVkaW9CdWZmZXJMaXN0IEF1ZGlvQnVmZmVyTGlzdDsKK3R5cGVkZWYgT1NT
dGF0dXMgKCpBdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKShBdWRpb0NvbnZlcnRl
clJlZiBpbkF1ZGlvQ29udmVydGVyLAorICAgIFVJbnQzMiogaW9OdW1iZXJEYXRhUGFja2V0cywK
KyAgICBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSwKKyAgICBBdWRpb1N0cmVhbVBhY2tldERlc2Ny
aXB0aW9uKiogb3V0RGF0YVBhY2tldERlc2NyaXB0aW9uLAorICAgIHZvaWQqIGluVXNlckRhdGEp
OworCit0eXBlZGVmIHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqIEV4dEF1ZGlvRmlsZVJlZjsK
K3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvRmlsZUlEKiBBdWRpb0ZpbGVJRDsKK3R5cGVkZWYg
VUludDMyIEF1ZGlvRmlsZVR5cGVJRDsKK3R5cGVkZWYgVUludDMyIEV4dEF1ZGlvRmlsZVByb3Bl
cnR5SUQ7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1JlYWRQcm9jKSgKKyAgICB2b2lk
KiBpbkNsaWVudERhdGEsCisgICAgU0ludDY0IGluUG9zaXRpb24sCisgICAgVUludDMyIHJlcXVl
c3RDb3VudCwKKyAgICB2b2lkKiBidWZmZXIsCisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7Cit0
eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1dyaXRlUHJvYykoCisgICAgdm9pZCogaW5DbGll
bnREYXRhLAorICAgIFNJbnQ2NCBpblBvc2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQs
CisgICAgY29uc3Qgdm9pZCogYnVmZmVyLAorICAgIFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlw
ZWRlZiBTSW50NjQgKCpBdWRpb0ZpbGVfR2V0U2l6ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50
RGF0YSk7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9GaWxlX1NldFNpemVQcm9jKSgKKyAgICB2
b2lkKiBpbkNsaWVudERhdGEsCisgICAgU0ludDY0IGluU2l6ZSk7Cit0eXBlZGVmIHN0cnVjdCBP
cGFxdWVBdWRpb0NvbXBvbmVudCogQXVkaW9Db21wb25lbnQ7CisKKyNpZiBUQVJHRVRfT1NfSVBI
T05FIHx8IChkZWZpbmVkKEFVRElPQ09NUE9ORU5UX05PQ0FSQk9OSU5TVEFOQ0VTKSAmJiBBVURJ
T0NPTVBPTkVOVF9OT0NBUkJPTklOU1RBTkNFUykKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlv
Q29tcG9uZW50SW5zdGFuY2UqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7CisjZWxzZQordHlwZWRl
ZiBzdHJ1Y3QgQ29tcG9uZW50SW5zdGFuY2VSZWNvcmQqIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2U7
CisjZW5kaWYKK3R5cGVkZWYgQXVkaW9Db21wb25lbnRJbnN0YW5jZSBBdWRpb1VuaXQ7CisKK3R5
cGVkZWYgc3RydWN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gQXVkaW9Db21wb25lbnREZXNj
cmlwdGlvbjsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdFByb3BlcnR5SUQ7Cit0eXBlZGVmIFVJ
bnQzMiBBdWRpb1VuaXRTY29wZTsKK3R5cGVkZWYgVUludDMyIEF1ZGlvVW5pdEVsZW1lbnQ7CiAK
IFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCkKIFNPRlRf
TElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUpCiAKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRl
ckdldFByb3BlcnR5SW5mbywgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIG91
dFNpemUsIEJvb2xlYW4qIG91dFdyaXRhYmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVy
dHlJRCwgb3V0U2l6ZSwgb3V0V3JpdGFibGUpKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFBy
b3BlcnR5SW5mbyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0
eUluZm8KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGlu
QXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJ
bnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5BdWRp
b0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5
RGF0YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChj
b25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29u
dmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5h
dGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlck5l
dyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJOZXcKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2Us
IE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlv
Q29udmVydGVyKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlIHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9BdWRpb0NvbnZlcnRlckRpc3Bvc2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJv
cGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZv
aWQqIGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW5Q
cm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiAjZGVmaW5lIEF1ZGlvQ29udmVydGVy
U2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyU2V0UHJvcGVy
dHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRp
b0Zvcm1hdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvRm9ybWF0UHJvcGVydHlJRCBpblBy
b3BlcnR5SUQsIFVJbnQzMiBpblNwZWNpZmllclNpemUsIGNvbnN0IHZvaWQqIGluU3BlY2lmaWVy
LCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGlu
UHJvcGVydHlJRCwgaW5TcGVjaWZpZXJTaXplLCBpblNwZWNpZmllciwgaW9Qcm9wZXJ0eURhdGFT
aXplLCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5IHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0Zvcm1hdEdldFByb3BlcnR5CitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0
Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVy
dGVyLCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5J
bnB1dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVy
dGVyLCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQorI2Rl
ZmluZSBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9BdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxl
eEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBB
dWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywgdm9pZCog
aW5JbnB1dERhdGFQcm9jVXNlckRhdGEsIFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwg
QXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0
aW9uKiBvdXRQYWNrZXREZXNjcmlwdGlvbiksIChpbkF1ZGlvQ29udmVydGVyLCBpbklucHV0RGF0
YVByb2MsIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRTaXplLCBv
dXRPdXRwdXREYXRhLCBvdXRQYWNrZXREZXNjcmlwdGlvbikpCisjZGVmaW5lIEF1ZGlvQ29udmVy
dGVyRmlsbENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVy
RmlsbENvbXBsZXhCdWZmZXIKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVk
aW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kp
LCAoY2kpKQorI2RlZmluZSBBdWRpb091dHB1dFVuaXRTdGFydCBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9PdXRwdXRVbml0U3RhcnQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBjaSksIChjaSkpCisjZGVmaW5lIEF1ZGlvT3V0cHV0VW5pdFN0b3Agc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvT3V0cHV0VW5pdFN0b3AKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSwgT1NTdGF0
dXMsIChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAoaW5JbnN0YW5jZSkpCisj
ZGVmaW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUsIE9TU3RhdHVz
LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5nUmVmKiBvdXROYW1lKSwgKGlu
Q29tcG9uZW50LCBvdXROYW1lKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRDb3B5TmFtZSBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRDb3B5TmFtZQorCiBTT0ZUX0xJTktfRlVO
Q1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29t
cG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0
QnVuZGxlUmVnaXN0cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSkKICNkZWZpbmUg
QXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExpbmtBdWRpb1Rvb2xi
b3hDb3JlQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMKIFNPRlRfTElOS19G
VU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9D
b21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGlu
QnVuZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2RlZmluZSBB
dWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlvVG9vbGJv
eENvcmVBdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucwogCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9T
U3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQorI2RlZmlu
ZSBBdWRpb0ZpbGVDbG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9GaWxlQ2xvc2UKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVP
cGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkKiBpbkNsaWVudERhdGEsIEF1ZGlvRmls
ZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBB
dWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9j
IGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxl
SUQqIG91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5j
LCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9G
aWxlKSkKKyNkZWZpbmUgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mgc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlRGlzcG9zZSwgT1NTdGF0dXMs
IChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5FeHRBdWRpb0ZpbGUpKQorI2Rl
ZmluZSBFeHRBdWRpb0ZpbGVEaXNwb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0Zp
bGVEaXNwb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgRXh0QXVkaW9GaWxlR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGlu
RXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMy
KiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlv
RmlsZSwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkp
CisjZGVmaW5lIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9F
eHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxl
UmVmIGluRXh0QXVkaW9GaWxlLCBVSW50MzIqIGlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxp
c3QqIGlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCisj
ZGVmaW5lIEV4dEF1ZGlvRmlsZVJlYWQgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmls
ZVJlYWQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBF
eHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRB
dWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Q
cm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlv
RmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkK
KyNkZWZpbmUgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4
dEF1ZGlvRmlsZVNldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0YXR1cywgKEF1
ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVkaW9GaWxlUmVm
KiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0RXh0QXVkaW9G
aWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEIHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9FeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1
cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChp
blVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlT3BlblVSTCBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlT3BlblVSTAorCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRGaW5kTmV4dCwg
QXVkaW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgY29uc3QgQXVkaW9D
b21wb25lbnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGluQ29tcG9uZW50LCBpbkRlc2MpKQorI2Rl
ZmluZSBBdWRpb0NvbXBvbmVudEZpbmROZXh0IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0Nv
bXBvbmVudEZpbmROZXh0CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBv
bmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0SW5zdGFuY2UpLCAo
aW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRJbnN0YW5j
ZU5ldyBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldworU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdl
dFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5
SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1l
bnQsIHZvaWQqIG91dERhdGEsIFVJbnQzMiogaW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGlu
U2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5p
dEdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRHZXRQcm9wZXJ0eQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5p
dEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorI2Rl
ZmluZSBBdWRpb1VuaXRJbml0aWFsaXplIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRJ
bml0aWFsaXplCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Vbml0U2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVk
aW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRF
bGVtZW50IGluRWxlbWVudCwgY29uc3Qgdm9pZCogaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSks
IChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkK
KyNkZWZpbmUgQXVkaW9Vbml0U2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
VW5pdFNldFByb3BlcnR5CisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAppbmRleCBjMTQzOTJi
YTJjOTE0MmQ1MWI0NzRlN2QyNDQ4MGI5NzE5ZjhhNGM2Li5kZjk4N2NmNzgwZjlkNDllOGQ1MGUx
YWVhM2Y2YTlkY2IwZGE0MDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Tb2Z0
TGlua2luZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NN
QnVmZmVyUXVldWUuaD4KICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAjZW5kaWYK
IApAQCAtNDcsNiArNDgsOCBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNvcHlEYXRh
Qnl0ZXMsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVTb3VyY2VCdWZmZXIsIHNpemVf
dCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCB2b2lkKiBkZXN0aW5hdGlvbiksICh0
aGVTb3VyY2VCdWZmZXIsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZGVzdGluYXRpb24pLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QsIChDTUJsb2Nr
QnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tC
dWZmZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVz
LCBDTUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rl
c3RpbmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25C
dWZmZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJS
ZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdl
dERhdGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyLCBzaXpl
X3Qgb2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXplX3QqIHRvdGFsTGVuZ3Ro
T3V0LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBvZmZzZXQsIGxlbmd0aEF0
T2Zmc2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZv
cm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAodm9pZCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01CbG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCkBAIC0xMDQsOSArMTA3LDkgQEAgU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9y
bWF0RGVzY3JpcHRpb25HZXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENl
bnRlciwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlv
bkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNh
bGxiYWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9i
amVjdCwgVUludDMyIGZsYWdzKSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmlj
YXRpb24sIG9iamVjdCwgZmxhZ3MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVy
UmVtb3ZlTGlzdGVuZXIsIE9TU3RhdHVzLCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVy
LCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywg
Q0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBs
aXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0KSwgUEFMX0VYUE9SVCkKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxl
QnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAq
bWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlw
dGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5n
RW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01J
dGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFy
cmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIs
IGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBm
b3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2Ft
cGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNC
dWZPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2Ft
cGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0
KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3Jp
Z2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNh
bXBsZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1
ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJp
ZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJs
b2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZl
ck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VE
YXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24s
IENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJp
ZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNv
dW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwg
Q01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRh
UmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0
RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRp
bWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0
KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1
ZmZlclJlZiogc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCksIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFs
U0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVU
aW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZDb3B5
T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBz
YW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyog
c2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGlt
YWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwg
Qm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1h
a2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWlu
Z0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCks
IChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFj
aywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywg
c2FtcGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRp
bWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VY
UE9SVCkKQEAgLTExNiwxNCArMTE5LDE0IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFByZXNlCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbiwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNl
bnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVm
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXks
IENGQXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVj
ZXNzYXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5n
SW5mbyAqdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVk
ZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5n
QXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBD
TUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5n
QXJyYXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1
ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVz
TmVlZGVkT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENN
VGltZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0
aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXIsIE9T
U3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01CbG9ja0J1ZmZlclJlZiBidWZmZXIp
LCAoc2J1ZiwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUdldEF0dGFjaG1lbnQsIENGVHlwZVJl
ZiwgKENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ01BdHRh
Y2htZW50TW9kZSogYXR0YWNobWVudE1vZGVPdXQpLCAodGFyZ2V0LCBrZXksIGF0dGFjaG1lbnRN
b2RlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1l
bnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENGVHlwZVJlZiB2YWx1ZSwgQ01B
dHRhY2htZW50TW9kZSBhdHRhY2htZW50TW9kZSksICh0YXJnZXQsIGtleSwgdmFsdWUsIGF0dGFj
aG1lbnRNb2RlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZvaWQsIChDTUF0
dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFyZ2V0LCBrZXkp
LCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRp
bWViYXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFz
ZU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ss
IENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRp
bWViYXNlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01U
aW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFz
ZUdldFJhdGUsIEZsb2F0NjQsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0UmF0ZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVm
IHRpbWViYXNlLCBGbG9hdDY0IHJhdGUpLCAodGltZWJhc2UsIHJhdGUpLCBQQUxfRVhQT1JUKQpA
QCAtMTQ0LDExICsxNDcsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVEZXF1ZXVlQW4KIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1
ZXVlRW5xdWV1ZSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclJl
ZiBidWZmZXIpLCAocXVldWUsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUlz
RW1wdHksIEJvb2xlYW4sIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlbUNvdW50LCAoQ01CdWZm
ZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdl
dENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFj
a3MgKiwgKCksICgpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JV
bnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiwgKCksICgpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwg
Q01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZm
ZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUlu
c3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVy
UXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1
ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRy
aWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBj
b25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZm
ZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2Fs
bGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9u
IHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVy
UXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxi
YWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0
cmlnZ2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRh
LCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JU
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQnVmZmVyUXVldWVHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBx
dWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rv
Tm90RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVu
dEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE2OCw0MCArMTczLDQy
IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9F
ZmZlY3RpdmVSYXRlQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJh
c2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYg
ZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRT
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24q
LCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaywgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1lbW9yeUJsb2NrLCBzaXplX3QgYmxv
Y2tMZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2NhdG9yLCBjb25zdCBDTUJsb2NrQnVm
ZmVyQ3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291cmNlLCBzaXplX3Qgb2Zmc2V0VG9E
YXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZlckZsYWdzIGZsYWdzLCBDTUJsb2Nr
QnVmZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1cmVBbGxvY2F0b3IsIG1lbW9yeUJs
b2NrLCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1c3RvbUJsb2NrU291cmNlLCBvZmZz
ZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQp
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZl
ciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RT
aXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZm
ZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0
b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJS
ZWYgKmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZm
ZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9y
eUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1
cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRP
dXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXpl
LCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVm
TWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tC
dWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQs
IGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9y
LCBmbGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0
TnVtU2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgQ0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQs
IENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJh
eUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9F
WFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9u
cywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYg
ZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFk
eUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNv
biwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3Jp
cHRpb24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAo
YWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywg
bWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQ
VFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFs
bG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJi
dWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9v
bGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01U
aW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERl
c2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRh
QnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJl
ZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2Ny
aXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHBy
ZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiog
cGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwg
KGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHBy
ZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQp
LCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVm
ZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJl
ZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9y
LCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0KSwgKHNi
dWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZm
ZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlv
blRpbWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVRpbWUgb3V0
cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNidWYsIG91dHB1dFByZXNlbnRhdGlvblRpbWVT
dGFtcCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVz
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0Fy
cmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1w
bGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2Nh
dG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBz
YW1wbGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0
U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tp
ZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9u
cywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNi
ZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRl
bnNpb25zLCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25H
ZXRNYWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYg
ZGVzYywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQT1JUKQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1
ZGlvRm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwg
KGRlc2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3RE
ZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0qLCAoQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhv
c3RUaW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9j
a0dldFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzLCB1aW50NjRfdCwgKENNVGlt
ZSBob3N0VGltZSksIChob3N0VGltZSksIFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNh
bGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3Rh
dHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoIENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZv
aWQgKnJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRs
ZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlciksIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VT
Q0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3Vu
dCBpbmRleCwgdm9pZCogcmVmY29uKSwgdm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCBy
ZWZjb24pLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBs
ZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNNU0FNUExF
QlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291
bnQpKSwgKHNidWYsIGhhbmRsZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERl
c2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJp
bmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX3NSR0IsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9j
a091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tD
cmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBj
bG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhp
bXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01U
aW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250
YWluc1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFu
Z2UsIHRpbWUpLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSwgUEFM
X0VYUE9SVCkKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaWYgUExBVEZPUk0o
TUFDKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQp
LCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
RGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
RlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwg
ZGV2aWNlVUlELCBjbG9ja091dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZl
ZFN0b3JhZ2UsIHZvaWQqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVj
dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFi
bGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgY29uc3QgQ01CYXNlVlRhYmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJ
RCwgQ01CYXNlT2JqZWN0UmVmKiBiYXNlT2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFz
c0lELCBiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaAppbmRleCA3NTI1YjkxOWM2OTVkMzYwOTdiMTExMDMyYjk0
Zjc0N2YxNTFmMWYwLi45OGNjYjc5YWE0ZDkzZTU4M2ZlNTYzNTdhNjE5Y2I4MTdiZTBjYzY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC01
MSw2ICs1MSwxMCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdAogI2RlZmluZSBDTUJsb2NrQnVm
ZmVyR2V0RGF0YUxlbmd0aCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VC
eXRlcywgQ01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldElu
dG9EZXN0aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0
aW9uQnVmZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpKQogI2RlZmluZSBD
TUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1
ZmZlclJlcGxhY2VEYXRhQnl0ZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01C
bG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSkKKyNkZWZpbmUgQ01CbG9ja0J1
ZmZlckFzc3VyZUJsb2NrTWVtb3J5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQXNz
dXJlQmxvY2tNZW1vcnkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZl
clJlZiB0aGVCdWZmZXIsIHNpemVfdCBvZmZzZXQsIHNpemVfdCogbGVuZ3RoQXRPZmZzZXRPdXQs
IHNpemVfdCogdG90YWxMZW5ndGhPdXQsIGNoYXIqKiBkYXRhUG9pbnRlck91dCksICh0aGVCdWZm
ZXIsIG9mZnNldCwgbGVuZ3RoQXRPZmZzZXRPdXQsIHRvdGFsTGVuZ3RoT3V0LCBkYXRhUG9pbnRl
ck91dCkpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMs
IENGRGljdGlvbmFyeVJlZiwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkK
ICNkZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMgc29mdExpbmtfQ29yZU1l
ZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlw
ZUlELCAodm9pZCksICgpKQpAQCAtNjMsNiArNjcsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
LAogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8gc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbwogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHks
IEJvb2xlYW4sIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNh
bXBsZUJ1ZmZlckRhdGFJc1JlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckRh
dGFJc1JlYWR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVU
aW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVf
dCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwg
KGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51
bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50
cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01U
aW1lQ29udmVydFNjYWxlLCBDTVRpbWUsIChDTVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2Nh
bGUsIENNVGltZVJvdW5kaW5nTWV0aG9kIG1ldGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1l
dGhvZCkpCiAjZGVmaW5lIENNVGltZUNvbnZlcnRTY2FsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01U
aW1lQ29udmVydFNjYWxlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01UaW1lQWRkLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0
aW1lMSwgdGltZTIpKQpAQCAtODcsMjkgKzkzLDI5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUVxdWFsLCBCb29sZWFuLCAoQ01UaW1l
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcywgQ0ZT
dHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURl
c2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zKCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1Az
IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVz
Y3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0
aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9S
XzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lv
bl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNf
RDY1LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9r
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJp
bWFyaWVzX1AzX0Q2NSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJp
ZXNfUDNfRDY1IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmll
c19QM19ENjUoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VW
aWRlbygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZp
ZGVvIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdl
VmlkZW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
SVRVX1JfMjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAw
X0hMRywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9u
X2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCisjZGVmaW5lIGtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9r
Q01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKKyNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1Rf
MjA4NF9QUSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9T
TVBURV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9T
TVBURV9TVF80MjhfMSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9u
RXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80
MjhfMSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgpCisjZGVmaW5lIGtD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80Mjhf
MSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9y
bWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JD
ck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKKyNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVk
aWFfa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKIFNPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3Ry
aW5nUmVmKQogI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRD
b250ZW50T3JpZ2luYWxGb3JtYXQgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQoKQogU09GVF9MSU5LX0NPTlNU
QU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X3NSR0IgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpCisjZGVmaW5lIGtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCwgQ0ZT
dHJpbmdSZWYpCiAjZGVmaW5lIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCBnZXRfQ29y
ZU1lZGlhX2tDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX0VuZCgpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVf
TWlkZGxlLCBDRlN0cmluZ1JlZikKQEAgLTE1MSw3ICsxNTcsNyBAQCBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0
VG9MZWZ0LAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TVRpbWVJbnZhbGlkLCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVJbnZhbGlkIGdldF9Db3JlTWVk
aWFfa0NNVGltZUludmFsaWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVaZXJvIFBBTDo6
Z2V0X0NvcmVNZWRpYV9rQ01UaW1lWmVybygpCisjZGVmaW5lIGtDTVRpbWVaZXJvIGdldF9Db3Jl
TWVkaWFfa0NNVGltZVplcm8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5LCBDTVRpbWUpCiAjZGVmaW5lIGtDTVRp
bWVQb3NpdGl2ZUluZmluaXR5IGdldF9Db3JlTWVkaWFfa0NNVGltZVBvc2l0aXZlSW5maW5pdHko
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVS
YW5nZUludmFsaWQsIENNVGltZVJhbmdlKTsKQEAgLTE2OSwxMyArMTc1LDEzIEBAIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRl
ckFkZExpc3RlbmVyLCBPCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIg
c29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNl
bnRlclJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNl
bnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJh
Y2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0KSwgKGNlbnRl
ciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCkpCiAjZGVmaW5lIENN
Tm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90
aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVt
Q291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpz
YW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0
IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChh
bGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBt
YWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2Ft
cGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVz
LCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFu
IGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNh
bXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qg
c2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1h
a2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMs
IHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRl
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNi
dWZDb3B5T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2J1ZkNv
cHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyQ3JlYXRlQ29weSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVU
aW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwg
b3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwg
c0J1ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENN
SXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5m
byogc2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChh
bGxvY2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGlt
aW5nQXJyYXksIHNCdWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2Ft
cGxlVGltaW5nSW5mbyAqc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCks
IChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5n
LCBzQnVmT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAo
YWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywg
c0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZm
ZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVh
ZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxs
YmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRp
bWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGlt
YWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFk
eVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2FtcGxlQnVmZmVyT3V0
KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlcgpAQCAtMTkzLDcgKzE5
OSw3IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0
T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVu
dHNBcnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3Jl
YXRlSWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZOZWNlc3NhcnkpKQogI2RlZmluZSBDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50
IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwg
Q01JdGVtQ291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdB
cnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJ
bmZvKiB0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRl
ZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdB
cnJheUVudHJpZXNOZWVkZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNh
bXBsZVNpemUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVT
aXplCkBAIC0yMDUsNyArMjExLDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWUKICNkZWZpbmUg
Q01TZXRBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNldEF0dGFjaG1lbnQKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1l
bnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkp
LCAodGFyZ2V0LCBrZXkpKQogI2RlZmluZSBDTVJlbW92ZUF0dGFjaG1lbnQgc29mdExpbmtfQ29y
ZU1lZGlhX0NNUmVtb3ZlQXR0YWNobWVudAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRp
bWViYXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFz
ZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01U
aW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNl
T3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKICNkZWZpbmUgQ01U
aW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFz
ZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRp
bWViYXNlKSwgKHRpbWViYXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdldFRpbWUgc29mdExpbmtf
Q29yZU1lZGlhX0NNVGltZWJhc2VHZXRUaW1lCkBAIC0yMjcsNyArMjMzLDcgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lckRp
c3BhdGNoU291cmNlVG8KICNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VU
b0ZpcmVJbW1lZGlhdGVseSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlz
cGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvcHlBc0RpY3Rpb25hcnksIENGRGljdGlvbmFyeVJl
ZiwgKENNVGltZSB0aW1lLCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAodGltZSwgYWxsb2Nh
dG9yKSkKICNkZWZpbmUgQ01UaW1lQ29weUFzRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01UaW1lQ29weUFzRGljdGlvbmFyeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVy
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBp
bWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmICpvdXREZXNjKSwgKGFsbG9j
YXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdl
QnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZl
clJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwg
KGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRE
aW1lbnNpb25zLCBDTVZpZGVvRGltZW5zaW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiB2aWRlb0Rlc2MpLCAodmlkZW9EZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uR2V0RGltZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uR2V0RGltZW5zaW9ucwpAQCAtMjQ5LDE1ICsyNTUsMTggQEAgU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwg
Q01JdGUKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50IHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25U
aW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2Rl
ZmluZSBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtf
Q29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcAotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVH
ZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJh
Y2tzICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBj
b25zdCBDTUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdl
dENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycyBzb2Z0TGlua19Db3JlTWVkaWFfQ01C
dWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycwogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQ
cmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAo
cXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1w
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0
YW1wCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZm
ZXJRdWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUs
IENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01C
dWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZm
ZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywg
cmVmY29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCkpCisjZGVmaW5lIENNQnVm
ZmVyUXVldWVJbnN0YWxsVHJpZ2dlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUlu
c3RhbGxUcmlnZ2VyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3Rh
dHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFj
ayB0cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmln
Z2VyQ29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hv
bGQsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwg
dHJpZ2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2Vy
VGhyZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFs
bFRyaWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwg
T1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01C
dWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVN
YXJrRW5kT2ZEYXRhCi0KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYg
cXVldWUpLCAocXVldWUpKQorI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24gc29mdExp
bmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXREdXJhdGlvbgogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3RE
aXNwbGF5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05v
dERpc3BsYXkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxh
eSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2Ft
cGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZikKQEAgLTI5NSw0NiArMzA0LDQ4
IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29y
ZU1lZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tp
ZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6ZV90
KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25HZXRNYWdpY0Nvb2tpZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0TWFnaWNDb29raWUKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2lj
RGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFf
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbgogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDcmVh
dGVXaXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0dXJlQWxs
b2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFsbG9jYXRv
clJlZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNl
KiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5n
dGgsIENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZm
ZXJPdXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5ndGgsIGJs
b2NrQWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3Ro
LCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2RlZmluZSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1l
bW9yeUJsb2NrCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXpl
TmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJM
aXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYg
KmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJM
aXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdp
dGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVy
TGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0
QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBm
bGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlz
dFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0
QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQog
I2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2Nr
QnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlz
dFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzLCBDTUl0ZW1Db3VudCwg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVy
R2V0TnVtU2FtcGxlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1w
bGVzCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9G
b3JtYXRMaXN0SXRlbSAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9G
b3JtYXRMaXN0SXRlbSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNj
KSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZv
cm1hdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVz
dERlY29kYWJsZUZvcm1hdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZSYW5n
ZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBz
YnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ29weVNh
bXBsZUJ1ZmZlckZvclJhbmdlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNvcHlT
YW1wbGVCdWZmZXJGb3JSYW5nZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVf
dCogc2l6ZUFycmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCks
IChzYnVmLCBzaXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNO
ZWVkZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkKIAotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZm
ZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFk
eSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCB2b2lkICptYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZv
cm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywg
Y29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25zLCBD
TVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFS
ZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVm
T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9v
bGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01U
aW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERl
c2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRh
QnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJl
ZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2Ny
aXB0aW9ucywgc0J1Zk91dCkpCiAjZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRo
UGFja2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVy
Q3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1
ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRv
ciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChz
YnVmLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVm
ZmVyTGlzdCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1
ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291
bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9T
dHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZl
clJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVz
Y3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3Jp
cHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRh
QnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBi
YnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0
KiBidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxv
Y2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRh
QnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBPU1N0
YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyU2V0RGF0YVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERh
dGFSZWFkeQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAp
LCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSkKKyNkZWZpbmUgQ01TYW1wbGVC
dWZmZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVk
aW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZv
aWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwg
bGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNj
KSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaywgQ01DbG9j
a1JlZiwgKHZvaWQpLCAoKSkKLSNkZWZpbmUgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sgIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jaworI2RlZmluZSBDTUNsb2NrR2V0
SG9zdFRpbWVDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0
VGltZSwgQ01UaW1lLCAoQ01DbG9ja1JlZiBjbG9jayksIChjbG9jaykpCi0jZGVmaW5lIENNQ2xv
Y2tHZXRUaW1lICBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldFRpbWUKKyNkZWZpbmUgQ01D
bG9ja0dldFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0NvbnZlcnRIb3N0VGlt
ZVRvU3lzdGVtVW5pdHMsIHVpbnQ2NF90LCAoQ01UaW1lIGhvc3RUaW1lKSwgKGhvc3RUaW1lKSkK
ICNkZWZpbmUgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMgc29mdExpbmtfQ29y
ZU1lZGlhX0NNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzCiAKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JF
YWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgq
IENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVm
Y29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9T
U3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZF
UkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwg
Q01JdGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBj
YWxsYmFjaywgcmVmY29uKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBs
ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBPU1N0YXR1cyAoXiBDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1w
bGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9j
a0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0
dXMgKF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJS
ZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
ckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tP
dXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xv
Y2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpKQogI2RlZmluZSBDTUF1ZGlv
Q2xvY2tDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9DbG9ja0NyZWF0ZQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENN
VGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCiAjZGVm
aW5lIENNVGltZU1heGltdW0gc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1heGltdW0KQEAgLTM0
NiwxOCArMzU3LDE2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQog
I2RlZmluZSBrQ01UaW1lSW5kZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRl
KCkKIAotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KICNpZiBQTEFURk9STShNQUMp
CiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
RGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
RlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwg
ZGV2aWNlVUlELCBjbG9ja091dCkpCi0jZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSAg
c29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmlj
ZVVJRCwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2Nr
T3V0KSkKKyNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCosIChD
TUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkKLSNkZWZpbmUgQ01CYXNl
T2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2Jq
ZWN0R2V0RGVyaXZlZFN0b3JhZ2UKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3Jh
Z2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0
VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3Qp
LCAoYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9iamVjdEdldFZUYWJsZSBQQUw6OnNvZnRM
aW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKKyNkZWZpbmUgQ01CYXNlT2JqZWN0
R2V0VlRhYmxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRPYmplY3RD
cmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VW
VGFibGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIGJh
c2VPYmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3QpKQotI2Rl
ZmluZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJp
dmVkT2JqZWN0Q3JlYXRlCisjZGVmaW5lIENNRGVyaXZlZE9iamVjdENyZWF0ZSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGlu
ay5jcHAKaW5kZXggZjUxY2JiYjE2NjYzYjgxZWNlMjAxZThhZDU3MjVjMjUxMjFmNTZmYi4uNzJm
NDExNGVlYWFkZjYyMGNlMzcwMjMwOTk0NzY2YjQ4Yzc5NWIxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTM0LDEzICsz
NCwxOSBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBW
aWRlb1Rvb2xib3gsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQ
QUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1l
UmF0ZSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZp
ZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFs
RHVyYXRpb24sIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFM
LCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3Ry
aW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gs
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsIENGU3RyaW5nUmVmKQor
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKIAogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVvRW5jb2RlclNw
ZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgQ0ZTdHJp
bmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwg
a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxl
TGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFp
bl9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdo
dCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3Bl
Y2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywg
Q0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRw
dXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZU
Q29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9y
LCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJ
bWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxs
YmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJl
ZiBzZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChz
ZXNzaW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lv
bkVuY29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24s
IENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3Rh
bXAsIENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGllcywgdm9p
ZCogc291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAo
c2Vzc2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRpb24sIGZy
YW1lUHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24sIGluZm9GbGFnc091dCkpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNl
c3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Np
b25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUsIHZvaWQs
IChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9v
bGJveCwgVlRSZXN0cmljdFZpZGVvRGVjb2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJS
ZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25GbGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxs
b3dlZENvZGVjVHlwZUxpc3QsIENNSXRlbUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChy
ZXN0cmljdGlvbkZsYWdzLCBhbGxvd2VkQ29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNv
dW50KSwgUEFMX0VYUE9SVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
Zi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRl
b1Rvb2xib3hTb2Z0TGluay5oCmluZGV4IGVjMGZmMDFjYzFmZTFhMjEwNmNjN2E3ZjAyZThjODRi
N2RkMGRhODQuLjYwYThmZjM3NDJkNDk2MTA3YjE0ZmFjN2M0MTM3M2FiYzZkNjk0YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAg
LTM3LDkgKzM3LDIwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtlCiAjZGVmaW5lIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uIGdldF9WaWRlb1Rv
b2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRp
b24oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQogI2RlZmluZSBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hF
QURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdl
Qml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlf
QXZlcmFnZUJpdFJhdGUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X0F2ZXJhZ2VCaXRSYXRlKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlk
ZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJp
bmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsIGdl
dF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwoKQog
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlk
ZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNv
ZGVyLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9F
bmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZU
VmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9F
bmNvZGVyKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94
LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQor
I2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwgZ2V0X1ZpZGVv
VG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwoKQorU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZl
bF9IMjY0X0hpZ2hfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxl
dmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxf
SDI2NF9IaWdoX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3Ry
aW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCBnZXRf
VmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsKCkKKwogCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVz
c2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBp
bnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUs
IENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNv
dXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFB
bGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9p
ZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVz
c2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVu
Y29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNz
ZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNv
bXByZXNzaW9uU2Vzc2lvbk91dCkpCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRl
IHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZQpAQCAtNDks
NiArNjAsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJv
eCwgVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZQogI2RlZmluZSBWVENvbXByZXNzaW9u
U2Vzc2lvbkVuY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vz
c2lvbkVuY29kZUZyYW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVv
VG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3Rh
dHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKICNkZWZp
bmUgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgc29mdExpbmtfVmlk
ZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25JbnZhbGlkYXRlLCB2b2lkLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lv
biksIChzZXNzaW9uKSkKKyNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlIHNv
ZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUKIAogU09G
VF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZU
UmVzdHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlkZW9EZWNvZGVyUmVzdHJpY3Rp
b25zIHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2RlY1R5cGUqIGFsbG93ZWRDb2Rl
Y1R5cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCAocmVzdHJpY3Rp
b25GbGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRDb2RlY1R5cGVDb3VudCkpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29m
dExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0
TGluay5jcHAKaW5kZXggNjc0ZTY0OTRhMGE4YjU5NjkwM2UzY2E1Y2ZiNmEyM2RkYWMzNjM4Yy4u
ZDQ0NDkzMWVmZDhhZTU1NjBiOGMxYjI3ZjIyYWQ5MmU3OTM0ODVlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKQEAg
LTQxLDYgKzQxLDEwIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91CiAKIFNPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBr
TVRTdXBwb3J0Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQsIENGU3RyaW5n
UmVmLCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1l
ZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVk
aW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVk
aW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBu
dW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01J
dGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZyYW1lcywgYnVmZmVyTGlz
dEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRv
b2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxi
YWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFw
T3V0KSwgUEFMX0VYUE9SVCkKKwogI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCiAK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29s
Ym94LCBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYs
IFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01l
ZGlhVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlh
VG9vbGJveFNvZnRMaW5rLmgKaW5kZXggYzdkZTAyY2U2M2MyYzMwMGQ5NjU0ZjY2NzBiZmMxMjUw
MjI5MzQ0ZS4uMjU1YTc2N2I1NWVlZjRlOGVlZDE5ZGVmMjk3MTc4NDkwYmU5M2YxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsu
aApAQCAtNDEsNiArNDEsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UX0dldFNob3VsZFBsYXlIRFJWaWQKIAogU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBv
cnROb3RpZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYpCiAK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYg
dGFwKSwgKHRhcCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSBzb2Z0
TGlua19NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3Np
bmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0
YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0
SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAq
dGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVy
RnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZy
YW1lc091dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8gc29m
dExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8KK1NP
RlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBN
VEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzKiBjYWxsYmFja3MsIE1U
QXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91dCkpCisj
ZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlIHNvZnRMaW5rX01lZGlhVG9vbGJveF9N
VEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZQorCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JF
QURFUikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gs
IGtNVFBsdWdpbkZvcm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDU1MjRlZWM1NTg3ZDFlOTE3MGVmOWYxNDkyY2MwN2Rl
MjVjODBlYzcuLmM1NjJiZTc2MzVlYTZhMTU4NDA4MzNhYmMyZTE5MTAxMGNjMzE3NmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzUwLDcgKzM1MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEb2N1bWVudCk7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdU
Rjo6VW5pY29kZTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRl
cHRoID0gMjE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4
IDlmNTU2MDgwMmJhYzMyYmI0OTllYzk3YzliMGFlMzJlMTFjNjIxYzcuLjg1MGNkZTcyNzBmMGQ2
MWRjMjU0NDljMWRhODlhNDlhMWFmNDM2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTENhbnZhc0VsZW1lbnQpOwogCi11c2lu
ZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogLy8gVGhlc2Ug
dmFsdWVzIGNvbWUgZnJvbSB0aGUgV2hhdFdHL1czQyBIVE1MIHNwZWMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlMDUxNmE0YWYyNWQyYjVhNGQ0OTRjZTQz
NTA5Njg0MTQxYjY3ZDllLi42YWMyZGZiOWRkNjRmMGYzZmMwZDBlZjVmYzUxMTU5MWQyNWYwYmFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE5MCw4ICsx
OTAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChIVE1MTWVkaWFFbGVtZW50KTsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIGNv
bnN0IFNlY29uZHMgU2Vla1JlcGVhdERlbGF5IHsgMTAwX21zIH07CiBzdGF0aWMgY29uc3QgZG91
YmxlIFNlZWtUaW1lID0gMC4yOwogc3RhdGljIGNvbnN0IFNlY29uZHMgU2NhblJlcGVhdERlbGF5
IHsgMS41X3MgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcAppbmRleCBmZDNkM2UwM2EwM2YwODEw
NTIxMjg2YmQwMjZhOTEwMTExZDNjYzg0Li41ZDU2YjllZTFhMGQzZDY3YTc5YzMwNzYxZDEzODE1
ZDdjMDY0NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCkBAIC0zNiwyNSArMzYsMTMgQEAK
ICNpbmNsdWRlICJBdWRpb0ZpbGVSZWFkZXIuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24u
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVk
QXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4K
KyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYv
Q2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW5jbHVk
ZSA8d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29sYm94
KQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVk
aW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9v
bGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCAqaW5DbGll
bnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJv
YyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlv
RmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlw
ZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRG
dW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlw
ZUhpbnQsIG91dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0Zp
bGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChp
bkV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1
ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6
ZSwgdm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQs
IGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0
QXVkaW9GaWxlLCBVSW50MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmlvRGF0
YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCi1TT0ZUX0xJTkso
QXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRp
b0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0
eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblByb3BlcnR5RGF0
YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0YVNpemUsIGlu
UHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZv
cldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBp
bkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBF
eHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBFeHRBdWRpb0Zp
bGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxlKSkKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gQXVk
aW9CdWZmZXJMaXN0KiB0cnlDcmVhdGVBdWRpb0J1ZmZlckxpc3Qoc2l6ZV90IG51bWJlck9mQnVm
ZmVycykKQEAgLTEwMywyMiArOTEsMjIgQEAgQXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFk
ZXIoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQogICAgIDogbV9kYXRhKGRhdGEp
CiAgICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewotICAgIGlmIChBdWRpb0ZpbGVPcGVuV2l0
aENhbGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlv
RmlsZUlEKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNr
cyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlvRmlsZUlEKSAh
PSBub0VycikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEV4dEF1ZGlvRmlsZVdyYXBBdWRp
b0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0QXVkaW9GaWxlUmVmKSAhPSBub0Vy
cikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQobV9hdWRpb0ZpbGVJ
RCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIpCiAgICAgICAgIG1fZXh0QXVk
aW9GaWxlUmVmID0gMDsKIH0KIAogQXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKCkK
IHsKICAgICBpZiAobV9leHRBdWRpb0ZpbGVSZWYpCi0gICAgICAgIEV4dEF1ZGlvRmlsZURpc3Bv
c2UobV9leHRBdWRpb0ZpbGVSZWYpOworICAgICAgICBQQUw6OkV4dEF1ZGlvRmlsZURpc3Bvc2Uo
bV9leHRBdWRpb0ZpbGVSZWYpOwogCiAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwogCiAgICAg
aWYgKG1fYXVkaW9GaWxlSUQpCi0gICAgICAgIEF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQp
OworICAgICAgICBQQUw6OkF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwogCiAgICAgbV9h
dWRpb0ZpbGVJRCA9IDA7CiB9CkBAIC0xNTUsNyArMTQzLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBB
dWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9u
bykKIAogICAgIC8vIEdldCBmaWxlJ3MgZGF0YSBmb3JtYXQKICAgICBVSW50MzIgc2l6ZSA9IHNp
emVvZihtX2ZpbGVEYXRhRm9ybWF0KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHko
bV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlRGF0YUZvcm1hdCwg
JnNpemUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRp
b0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5
X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQpICE9IG5vRXJyKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzID0gbV9m
aWxlRGF0YUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKQEAgLTE2Myw3ICsxNTEsNyBAQCBSZWZQ
dHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUs
IGJvb2wgbWl4VG9Nb25vKQogICAgIC8vIE51bWJlciBvZiBmcmFtZXMKICAgICBTSW50NjQgbnVt
YmVyT2ZGcmFtZXM2NCA9IDA7CiAgICAgc2l6ZSA9IHNpemVvZihudW1iZXJPZkZyYW1lczY0KTsK
LSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRB
dWRpb0ZpbGVQcm9wZXJ0eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVz
NjQpICE9IG5vRXJyIHx8IG51bWJlck9mRnJhbWVzNjQgPD0gMCkKKyAgICBpZiAoUEFMOjpFeHRB
dWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3Bl
cnR5X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIg
fHwgbnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IGRvdWJsZSBmaWxlU2FtcGxlUmF0ZSA9IG1fZmlsZURhdGFGb3JtYXQubVNhbXBsZVJhdGU7CkBA
IC0xODUsNyArMTczLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0
ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKICAgICBpZiAoc2FtcGxlUmF0
ZSkKICAgICAgICAgbV9jbGllbnREYXRhRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsK
IAotICAgIGlmIChFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4
dEF1ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAo
UEFMOjpFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlv
RmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICAvLyBDaGFuZ2UgbnVtYmVyT2ZGcmFtZXM2NCB0byBkZXN0aW5hdGlv
biBzYW1wbGUtcmF0ZQpAQCAtMjQzLDcgKzIzMSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9G
aWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAK
ICAgICAvLyBSZWFkIGZyb20gdGhlIGZpbGUgKG9yIGluLW1lbW9yeSB2ZXJzaW9uKQogICAgIFVJ
bnQzMiBmcmFtZXNUb1JlYWQgPSBudW1iZXJPZkZyYW1lczsKLSAgICBpZiAoRXh0QXVkaW9GaWxl
UmVhZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZyYW1lc1RvUmVhZCwgYnVmZmVyTGlzdCkgIT0gbm9F
cnIpIHsKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9GaWxlUmVmLCAm
ZnJhbWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgewogICAgICAgICBkZXN0cm95QXVk
aW9CdWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Zp
bGVSZWFkZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9GaWxlUmVhZGVyQ29jb2EuaAppbmRleCBiN2I5MTYzYjU2ZTI2YzI5Y2FiODRlZTI0NzY5ZTI5
NzE0MTdhZmZjLi4wYmJiYmEyNzg1N2Q5NzllY2M2ODhmODdmMDMzOWY2NjVlZjQyNTI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFk
ZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RmlsZVJlYWRlckNvY29hLmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiAjaWYgRU5BQkxFKFdFQl9B
VURJTykKIAotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KLSNpbmNsdWRlIDxB
dWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29y
ZUF1ZGlvVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK3VzaW5nIEV4dEF1ZGlv
RmlsZVJlZiA9IHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqOwordXNpbmcgQXVkaW9GaWxlSUQg
PSBzdHJ1Y3QgT3BhcXVlQXVkaW9GaWxlSUQqOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEF1ZGlvQnVzOwpAQCAtNTgsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHZvaWQq
IG1fZGF0YSA9IHsgbnVsbHB0ciB9OwogICAgIHNpemVfdCBtX2RhdGFTaXplID0geyAwIH07CiAK
LSAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0geyAwIH07CisgICAgQXVkaW9GaWxlSUQg
bV9hdWRpb0ZpbGVJRCA9IHsgbnVsbHB0ciB9OwogICAgIEV4dEF1ZGlvRmlsZVJlZiBtX2V4dEF1
ZGlvRmlsZVJlZiA9IHsgbnVsbHB0ciB9OwogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uIG1fZmlsZURhdGFGb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCmluZGV4IDQ3
ODc1MDcyYTc4NmVkNjg2YzFkNDAxZTgyZTYyNTljYTIzYzU0YjYuLjE0OGIwNTVkYmVjODk0M2Vh
NWFhYzY4ZTY4NThkZTdkMGI4MjMxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSA8cGFs
L2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVk
aW9PdXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5k
ZXJlciYgcmVuZGVyZXIpCkBAIC0zOSwxMiArNDEsMTIgQEAgQXVkaW9PdXRwdXRVbml0QWRhcHRv
cjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCiBB
dWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcigpCiB7CiAgICAg
aWYgKG1fb3V0cHV0VW5pdCkKLSAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2Uo
bV9vdXRwdXRVbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9z
ZShtX291dHB1dFVuaXQpOwogfQogCiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpz
dGFydCgpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX291dHB1
dFVuaXQpOworICAgIGF1dG8gcmVzdWx0ID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX291
dHB1dFVuaXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCiAgICAgICAgIFdURkxvZ0Fsd2F5
cygiRVJST1I6IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KCkgY2FsbCBmYWlsZWQgd2l0aCBlcnJvciBj
b2RlOiAlbGQiLCBzdGF0aWNfY2FzdDxsb25nPihyZXN1bHQpKTsKICAgICByZXR1cm4gcmVzdWx0
OwpAQCAtNTIsNyArNTQsNyBAQCBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFy
dCgpCiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3AoKQogewotICAgIHJl
dHVybiBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgcmV0dXJuIFBBTDo6
QXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOwogfQogCiAvLyBEZWZhdWx0T3V0cHV0
VW5pdCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKaW5kZXggZmRmNjc3NTdkMWI0
Nzc2MDgwOGIxM2ZiNDM0ZTQwYjNkZmQzMGUwNC4uNGU5MDY0ZDBjNmU5MzA4OWFlMGVhYTZmOTk4
ZWNkNjUzNzM1ZDFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxl
cmF0ZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgorI2luY2x1
ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JT
Y29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzIsNyArMjczLDcgQEAgT1NTdGF0
dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3Qm
IHNvdXJjZSwgc2l6ZV90IGYKIAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBpbnB1
dEZvcm1hdDsKICAgICBVSW50MzIgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihpbnB1dEZvcm1h
dCk7Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlu
cHV0Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVy
LCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5
RGF0YVNpemUsICZpbnB1dEZvcm1hdCk7CiAgICAgQVNTRVJUKGZyYW1lQ291bnQgPD0gc291cmNl
Lm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQp
OwogCiAgICAgQXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ29udGV4dCBjb250ZXh0IHsgc291cmNlLCBm
cmFtZUNvdW50LCBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgfTsKQEAgLTI4MCw3ICsyODEs
NyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlv
QnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2lmICFMT0dfRElTQUJMRUQKICAgICBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0Rm9ybWF0OwogICAgIHByb3BlcnR5RGF0YVNp
emUgPSBzaXplb2Yob3V0cHV0Rm9ybWF0KTsKLSAgICBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9u
LCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CisgICAgUEFMOjpBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0
cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CiAKICAg
ICBBU1NFUlQoQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG91dHB1dEZvcm1hdCkubnVtYmVyT2ZD
aGFubmVsU3RyZWFtcygpID09IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKSk7CiAgICAgZm9y
ICh1aW50MzJfdCBpID0gMDsgaSA8IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKTsgKytpKSB7
CkBAIC0yOTAsNyArMjkxLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5
RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNlbmRpZgogCiAg
ICAgVUludDMyIHNhbXBsZXNDb252ZXJ0ZWQgPSBtX3NhbXBsZUNhcGFjaXR5OwotICAgIE9TU3Rh
dHVzIGVyciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRp
b0NvbnZlcnRlckZyb21BQkxDYWxsYmFjaywgJmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBt
X2J1ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0cik7CisgICAgT1NTdGF0dXMgZXJyID0gUEFMOjpB
dWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9Db252ZXJ0ZXJG
cm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9idWZmZXJMaXN0
LT5saXN0KCksIG51bGxwdHIpOwogICAgIGlmICghZXJyIHx8IGVyciA9PSBrUmFuT3V0T2ZJbnB1
dERhdGFTdGF0dXMpIHsKICAgICAgICAgbV9zYW1wbGVDb3VudCA9IHNhbXBsZXNDb252ZXJ0ZWQ7
CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4IGU1ZWM0Nzc3
ODU4MWE3YWNmMGU3MjU1MzMzZjllMjY5NDFjNDcyZDEuLmQyYjVhYzQ1ZjMwZmQ0YTNhZjUxYjQy
MGRlMzc2NDliMTE1MWMyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAgLTQyLDcgKzQy
LDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUo
c2l6ZV90IG1heGltdW1TYW1wbGVDb3VudCwgTG9nZ2VySGVscGVyJiBsb2dnZXJIZWxwZXIsIHNp
emVfdCB3YWl0VG9TdGFydEZvclB1c2hDb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCmluZGV4IDg5
ZWNlZWQ2MWNiMTliZmQ3ZDQyMGM3NzhhYWExMjBhYzM1NmRiZmQuLjMwZGViMmU0Yzc0MWRmNTQ4
OGIzOGY1ZWQ1OWVlYmU1YTAyODliZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApAQCAtMzIsNyAr
MzIsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBXZWJBdWRpb0J1ZmZlckxpc3Q6
OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1h
dCkKICAgICA6IG1fYnl0ZXNQZXJGcmFtZShmb3JtYXQuYnl0ZXNQZXJGcmFtZSgpKQpAQCAtMTE2
LDcgKzExNSw3IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBDCiAgICAgICAgIHJldHVybjsKIAog
ICAgIENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9FcnIgPT0g
Q01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihz
YW1wbGVCdWZmZXIsIG51bGxwdHIsIG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9saXN0QnVmZmVy
U2l6ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVs
dCwga0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25t
ZW50LCAmYnVmZmVyKSkKKyAgICBpZiAobm9FcnIgPT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEF1
ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwgbnVsbHB0
ciwgbV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JT
eXN0ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJG
bGFnX0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpKQogICAg
ICAgICBtX2Jsb2NrQnVmZmVyID0gYWRvcHRDRihidWZmZXIpOwogCiAgICAgcmVzZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVu
aXRBZGFwdG9ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRp
b091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAppbmRleCAyZTk2MzBmYjYwZjIyYjNlZTU2ZDI0MmQ3
MzA0MzQ4NmI4N2I1NjJmLi5mODkxMDdmZmIxYzNmNTNiZTMxOWFhMzg2ODE0Nzc0YmI0ZDI3YTQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRw
dXRVbml0QWRhcHRvcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwCkBAIC0zMywxNSArMzMsNyBAQAogI2lm
IEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJB
dWRpb1Nlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQotU09GVF9MSU5L
X0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9u
ZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uICppbkRlc2MpLCAoaW5Db21wb25l
bnQsIGluRGVzYykpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBv
bmVudEluc3RhbmNlICpvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0QWRkUHJvcGVydHlMaXN0ZW5lciwgT1NT
dGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlv
VW5pdFByb3BlcnR5TGlzdGVuZXJQcm9jIGluUHJvYywgdm9pZCAqaW5Qcm9jVXNlckRhdGEpLCAo
aW5Vbml0LCBpbklELCBpblByb2MsIGluUHJvY1VzZXJEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQs
IEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9V
bml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQgKm91dERhdGEsIFVJbnQzMiAqaW9EYXRhU2l6ZSks
IChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9EYXRhU2l6ZSkp
Ci1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywg
KEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1
ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5p
dFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVu
dCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQgKmluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5V
bml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjaW5j
bHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNTgsMTUgKzUwLDE1IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29u
ZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVz
Yy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwog
ICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNr
ID0gMDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAg
Y29tcCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NF
UlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNl
TmV3KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVk
aW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CiAKICAgICBVSW50MzIgZmxhZyA9IDE7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0
U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LAorICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LAogICAgICAgICBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlf
RW5hYmxlSU8sCiAgICAgICAgIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsCiAgICAgICAgIDAsCkBA
IC03NCwyMCArNjYsMjAgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUo
ZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICAgICAgc2l6ZW9m
KGZsYWcpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJ
bml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0
aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogICAgIC8vIFNldCBy
ZW5kZXIgY2FsbGJhY2sKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlu
cHV0LmlucHV0UHJvYyA9IGlucHV0UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0
aGlzOwotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1
ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQs
IDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxs
YmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwog
ICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCBzdHJlYW0gZm9ybWF0CiAgICAgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbUZvcm1hdDsKIAogICAgIFVJbnQzMiBzaXpl
ID0gc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbik7Ci0gICAgcmVzdWx0ID0gQXVk
aW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwg
JnNpemUpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRV
bml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0
cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOwogICAgIEFTU0VSVCghcmVzdWx0
KTsKIAogICAgIGNvbnN0ZXhwciBpbnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihGbG9hdDMyKTsK
QEAgLTEwMSw3ICs5Myw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgc3RyZWFtRm9y
bWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKICAgICBzdHJl
YW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBieXRlc1BlckZsb2F0Owog
Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lk
Kikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7Cisg
ICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRp
b1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZv
aWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsK
ICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtQcmVmZXJyZWRCdWZmZXJTaXplKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFw
dG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1
dFVuaXRBZGFwdG9yTWFjLmNwcAppbmRleCBjOGVkM2VmNzhjOGM2YTNiMWUwNzBjYjQ0MDU5Njlh
ZGE0YWMzZGEyLi43MTRjY2U4ODYyNTc1MTg2MWQ1ZTJiODUxMzEzYTg5ZDA0MTJlYWNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0
QWRhcHRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRl
ICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+CisjaW5j
bHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDgsMjEgKzQ5LDIxIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29u
ZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgZGVz
Yy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVyX0FwcGxlOwog
ICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3NNYXNr
ID0gMDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CisgICAg
Y29tcCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAKICAgICBBU1NF
UlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNl
TmV3KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9IFBBTDo6QXVk
aW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5p
dCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7
CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawogICAg
IEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0gaW5w
dXRQcm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0ID0g
QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0
UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9m
KGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1
dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNj
b3BlX0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKICAgICBBU1NFUlQoIXJlc3Vs
dCk7CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdApAQCAtNzksNyArODAsNyBAQCB2b2lkIEF1
ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUs
IHVuc2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51
bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFtRm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9
IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0
LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2Yo
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGll
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAK
aW5kZXggYTUzMzMyY2Y3ZGJkNjQ2NmY0NGY1NzZkMWNkN2FkZTc2MTUwYWE0Zi4uNzg0NzRkOGU1
YTVhYzA3MDM1MzM1OTkwY2RkZjhhZmNkODA1NjE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMzMsMTMgKzMzLDExIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmV0YWluUHRy
PENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBtYWdpY0Nvb2tp
ZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llKQogewogICAgIGF1dG8gYmFzaWNEZXNjcmlw
dGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2Ny
aXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CiAgICAgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlw
dGlvbiwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwg
JmZvcm1hdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxwdHIs
IG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZmb3JtYXQpOwogICAgIGlm
IChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
NTUsMTQgKzUzLDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9T
YW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsK
LSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51
bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVC
dWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVX
aXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNl
LCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxs
cHRyLCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9S
KCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVk
IC0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBhdXRv
IGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKIAotICAgIGVycm9yID0gQ01TYW1wbGVC
dWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFs
bG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlv
QnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VS
Uk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxl
ZCAtICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAppbmRl
eCA1N2NmMjlkMGQ3N2U2Nzg4OWJkY2VmZDQwNTg1MTI5ZWQxMmE0NTU1Li42NGUzMGJjMjkzY2E4
ZjkzODg0ODhmMTQ4ODUwNmM1N2JlMGE1MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC00MSw3ICs0MSw2
IEBACiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8
SU9TdXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpCiB7CkBAIC05MCw3ICs4OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYg
c2FtcGxlCiB7CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gUGxh
dGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7CiAKLSAgICBhdXRvIGltYWdlQnVmZmVy
ID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5z
YW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNt
U2FtcGxlQnVmZmVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZTogQ01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlciByZXR1cm5lZCBudWxscHRyIik7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
CmluZGV4IDk4MzliMzcwYTcxM2I3YzFkMjNkODQ3ZmE4NjUwNWQ1YWU5NzlhYjIuLmRmZjRmYTRl
ZGYyNjRiNDUyYmY4ZGE3YWZhZWY0Y2JkN2EwMjdiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTQ2LDIyICs0NiwxMyBAQAogI2lt
cG9ydCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjZW5kaWYKIAorI2ltcG9ydCA8cGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgotCi1TT0ZU
X0xJTktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKLVNPRlRfTElOS19GUkFNRVdPUksoQXVkaW9U
b29sYm94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRD
b21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0
ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklu
cHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCi1TT0ZU
X0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVy
UmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZv
cm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQotCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYgdGFwKSwgKHRhcCkpCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcEdldFNvdXJjZUF1ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRh
cCwgQ01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJ
bk91dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0
aW1lUmFuZ2VPdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJG
cmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJh
bWVzT3V0KSkKLVNPRlRfTElOS19NQVlfRkFJTChNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3Qg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MgKmNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3Np
bmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiAqdGFwT3V0
KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNpbXBvcnQgPHBhbC9j
b2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiBzdGF0aWMgY29uc3QgZG91YmxlIGtSaW5nQnVmZmVyRHVyYXRp
b24gPSAxOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFwU3RvcmFnZSA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
VGFwU3RvcmFnZT4gewpAQCAtNzMsNyArNjQsNyBAQCBwdWJsaWM6CiAKIFJlZlB0cjxBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShB
VlBsYXllckl0ZW0gKml0ZW0pCiB7Ci0gICAgaWYgKCFjYW5Mb2FkTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGUoKSkKKyAgICBpZiAoIVBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoaXRlbSkpOwogfQpAQCAt
MTUyLDcgKzE0Myw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJ
bnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgbV9yZWFkQ291bnQg
Kz0gZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRp
b0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNU
b1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgUEFMOjpBdWRp
b0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNU
b1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKIH0KIAogdm9pZCBBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQq
IGNsaWVudCkKQEAgLTIyNSw3ICsyMTYsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpjcmVhdGVNaXhJZk5lZWRlZCgpCiAgICAgfTsKIAogICAgIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwUmVmIHRhcCA9IG51bGxwdHI7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRBdWRpb1Byb2Nl
c3NpbmdUYXBDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwgJnRhcCk7
CisgICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKICAgICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CiAgICAgICAgIGlmICh0YXApCiAgICAgICAgICAgICBDRlJlbGVhc2UodGFw
KTsKQEAgLTI1OCwxNCArMjQ5LDE0IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OmluaXRDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIHZvaWQqCiB2b2lkIEF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpmaW5hbGl6ZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNz
aW5nVGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBT
dG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0
U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8
VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwog
ICAgIHRhcFN0b3JhZ2UtPmRlcmVmKCk7CiB9CiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRl
bUNvdW50IG1heEZyYW1lcywgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICpwcm9j
ZXNzaW5nRm9ybWF0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0
b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRT
dG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxU
YXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAK
ICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0yNzYsNyArMjY3
LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNhbGxiYWNrKE1U
QXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ00KIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsK
ICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nh
c3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAg
ICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6
TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgTG9ja2VyIGxvY2tl
ciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjg3LDcgKzI3OCw3IEBAIHZvaWQgQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5n
VGFwUmVmIHRhcCkKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3NDYWxs
YmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1l
cywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyBmbGFncywgQXVkaW9CdWZmZXJMaXN0ICpidWZm
ZXJMaXN0SW5PdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQsIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwRmxhZ3MgKmZsYWdzT3V0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3Jh
Z2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3Np
bmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0
aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2Uo
dGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0z
MTcsNyArMzA4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShD
TUl0ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEKIAogICAgIGlmICgqbV90YXBE
ZXNjcmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZl
cnRlclJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5l
dyhtX3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0
Q29udmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlck5ldyhtX3RhcERlc2NyaXB0
aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsKICAg
ICAgICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0zNTcsNyArMzQ4
LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2VzcyhNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW4KICAgICAKICAgICBDTUl0ZW1Db3VudCBpdGVt
Q291bnQgPSAwOwogICAgIENNVGltZVJhbmdlIHJhbmdlT3V0OwotICAgIE9TU3RhdHVzIHN0YXR1
cyA9IE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1l
cywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKKyAg
ICBPU1N0YXR1cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVk
aW8odGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdl
T3V0LCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8ICFpdGVtQ291bnQp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggMzA1YjNkMjdl
MzQyZjk4NzIxMTJmMTE3NGMxNGZmNGYzYzYwODU1ZC4uNTMyOWYxZDlkM2FlYTdjNTRkMzM2NmMz
MmFkMWE2MDM4YTc5ZWIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yMzIsNyArMjMy
LDYgQEAgc3RydWN0IExvZ0FyZ3VtZW50PEFWUGxheWVyVGltZUNvbnRyb2xTdGF0dXM+IHsKIH07
IC8vIG5hbWVzcGFjZSBXVEYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKIAogc3RhdGljIE5TQXJyYXkgKmFzc2V0TWV0YWRhdGFLZXlOYW1lcygpOwogc3RhdGlj
IE5TQXJyYXkgKml0ZW1LVk9Qcm9wZXJ0aWVzKCk7CkBAIC01NzIsNyArNTcxLDYgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0VmlkZW9SZW5k
ZXJlcigpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
SW1hZ2VHZW5lcmF0b3IoKQogewotICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAgICAgSU5GT19M
T0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAoIW1fYXZBc3NldCB8fCBtX2ltYWdlR2VuZXJh
dG9yKQpAQCAtNTgyLDggKzU4MCw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKQogCiAgICAgW21faW1hZ2VHZW5lcmF0b3Iu
Z2V0KCkgc2V0QXBlcnR1cmVNb2RlOkFWQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJlTW9kZUNs
ZWFuQXBlcnR1cmVdOwogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldEFwcGxpZXNQcmVm
ZXJyZWRUcmFja1RyYW5zZm9ybTpZRVNdOwotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNl
dFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZvcmU6a0NNVGltZVplcm9dOwotICAgIFttX2ltYWdl
R2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjprQ01UaW1lWmVy
b107CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5j
ZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKKyAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBz
ZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01UaW1lWmVyb107CiB9CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNvbnRleHRWaWRl
b1JlbmRlcmVyKCkKQEAgLTY3MSw3ICs2NjksNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlKCkgY29uc3QKICAgICBpZiAoIWRhdGUp
CiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CiAKLSAgICBkb3VibGUg
Y3VycmVudFRpbWUgPSBDTVRpbWVHZXRTZWNvbmRzKFttX2F2UGxheWVySXRlbSBjdXJyZW50VGlt
ZV0pICogMTAwMDsKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZUdldFNlY29u
ZHMoW21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAwOwogCiAgICAgLy8gUm91bmRp
bmcgZHVlIHRvIHNlY29uZCBvZmZzZXQgZXJyb3Igd2hlbiBzdWJ0cmFjdGluZy4KICAgICByZXR1
cm4gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKHJvdW5kKGRhdGUgLSBjdXJyZW50VGltZSkp
OwpAQCAtMTA4OSw3ICsxMDg3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiAKICAgICBBU1NFUlQoIW1fY3VycmVudFRpbWVPYnNl
cnZlcik7CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKLSAgICBtX2N1
cnJlbnRUaW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZv
ckludGVydmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCkgdXNpbmdCbG9jazpbd2Vha1RoaXNdIChDTVRpbWUgdGltZSkgeworICAgIG1fY3VycmVudFRp
bWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2
YWw6UEFMOjpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRpbWUpIHsKICAgICAgICAgaWYgKHdlYWtU
aGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPmN1cnJlbnRNZWRpYVRpbWVEaWRDaGFuZ2UoUEFM
Ojp0b01lZGlhVGltZSh0aW1lKSk7CiAgICAgfV07CkBAIC0xNDIzLDcgKzE0MjEsNyBAQCBNZWRp
YVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3VycmVudE1lZGlhVGlt
ZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKICAgICBp
ZiAoIW1fd2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGltZSkKLSAgICAgICAgY3VycmVudE1lZGlh
VGltZURpZENoYW5nZSh0b01lZGlhVGltZShbbV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRp
bWVdKSk7CisgICAgICAgIGN1cnJlbnRNZWRpYVRpbWVEaWRDaGFuZ2UoUEFMOjp0b01lZGlhVGlt
ZShbbV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVdKSk7CiAgICAgQVNTRVJUKG1fd2Fs
bENsb2NrQXRDYWNoZWRDdXJyZW50VGltZSk7CiAKICAgICBhdXRvIGl0ZW1UaW1lID0gbV9jYWNo
ZWRDdXJyZW50TWVkaWFUaW1lOwpAQCAtMTQ2OCw4ICsxNDY2LDggQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSwgY29uc3QKICAgICBDTVRpbWUgY21BZnRlciA9IFBBTDo6dG9DTVRpbWUocG9zaXRpdmVUb2xl
cmFuY2UpOwogCiAgICAgLy8gW0FWUGxheWVySXRlbSBzZWVrVG9UaW1lXSB3aWxsIHRocm93IGFu
IGV4Y2VwdGlvbiBpZiB0b2xlcmFuY2VCZWZvcmUgaXMgbmVnYXRpdmUuCi0gICAgaWYgKENNVGlt
ZUNvbXBhcmUoY21CZWZvcmUsIGtDTVRpbWVaZXJvKSA8IDApCi0gICAgICAgIGNtQmVmb3JlID0g
a0NNVGltZVplcm87CisgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShjbUJlZm9yZSwgUEFMOjpr
Q01UaW1lWmVybykgPCAwKQorICAgICAgICBjbUJlZm9yZSA9IFBBTDo6a0NNVGltZVplcm87CiAg
ICAgCiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKIApAQCAtMTU4Niw2
ICsxNTg0LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQ
aXRjaENvcnJlY3Rpb25BbGdvcml0aG0oTWVkaWFQbGF5ZXIKIAogc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxh
dGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMoKSBjb25zdAogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQ
QUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAgIGF1dG8gdGltZVJhbmdlcyA9
IG1ha2VVbmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwogCiAgICAgaWYgKCFtX2F2UGxheWVy
SXRlbSkKQEAgLTE1OTQsMTMgKzE1OTQsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGlt
ZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm0KICAg
ICBmb3IgKE5TVmFsdWUgKnRoaXNSYW5nZVZhbHVlIGluIG1fY2FjaGVkTG9hZGVkUmFuZ2VzLmdl
dCgpKSB7CiAgICAgICAgIENNVGltZVJhbmdlIHRpbWVSYW5nZSA9IFt0aGlzUmFuZ2VWYWx1ZSBD
TVRpbWVSYW5nZVZhbHVlXTsKICAgICAgICAgaWYgKENNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVS
YW5nZSkgJiYgIUNNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5nZSkpCi0gICAgICAgICAgICB0
aW1lUmFuZ2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRv
TWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKKyAgICAgICAgICAgIHRp
bWVSYW5nZXMtPmFkZChQQUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9N
ZWRpYVRpbWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CiAgICAgfQogICAg
IHJldHVybiB0aW1lUmFuZ2VzOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogeworICAgIHVz
aW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAgIGlm
ICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyB8fCAhW21fY2FjaGVkU2Vla2FibGVSYW5nZXMgY291
bnRdKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCkBAIC0xNjIxLDYg
KzE2MjMsOCBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAog
eworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4K
KwogICAgIGlmICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcykKICAgICAgICAgbV9jYWNoZWRTZWVr
YWJsZVJhbmdlcyA9IFttX2F2UGxheWVySXRlbSBzZWVrYWJsZVRpbWVSYW5nZXNdOwogCkBAIC0x
NjMzLDcgKzE2MzcsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAogICAgICAgICBpZiAoIUNNVElN
RVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFkodGltZVJh
bmdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVkaWFUaW1l
IGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5n
ZSkpOworICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFM
OjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRpbWVTZWVr
YWJsZSA8IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBtYXhUaW1lU2Vla2FibGUgPSBlbmRPZlJh
bmdlOwogICAgIH0KQEAgLTE2NDIsNiArMTY0Niw4IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAK
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1h
eFRpbWVMb2FkZWQoKSBjb25zdAogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBD
TVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAgIGlmICghbV9jYWNoZWRMb2FkZWRSYW5nZXMpCiAg
ICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKQEAgLTE2NTEsNyArMTY1Nyw3
IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9y
bU1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgICAgICBpZiAoIUNNVElNRVJBTkdFX0lTX1ZBTElE
KHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQ
QUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpOworICAgICAgICBN
ZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVSYW5nZUdl
dEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRpbWVMb2FkZWQgPCBlbmRPZlJhbmdl
KQogICAgICAgICAgICAgbWF4VGltZUxvYWRlZCA9IGVuZE9mUmFuZ2U7CiAgICAgfQpAQCAtMTgw
Myw3ICsxODA5LDcgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmUKICAgICBNb25vdG9uaWNUaW1l
IHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBbbV9pbWFnZUdlbmVyYXRvci5n
ZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5zaXplKCkpXTsKLSAgICBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIGNv
cHlDR0ltYWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRp
bWU6bmlsIGVycm9yOm5pbF0pOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiByYXdJbWFnZSA9
IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRpbWU6UEFMOjpD
TVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1lOm5pbCBlcnJvcjpuaWxd
KTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVh
dGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCksIHNSR0JDb2xvclNwYWNlUmVmKCkp
KTsKIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjcmVhdGluZyBpbWFnZSB0b29rICIs
IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkpOwpAQCAtMTk4OSw3ICsx
OTk1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkaWRTdG9w
TG9hZGluZ1JlcXVlc3QoQVZBc3NldFJlc291cmNlTG8KIAogYm9vbCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjppc0F2YWlsYWJsZSgpCiB7Ci0gICAgcmV0dXJuIFBBTDo6aXNB
VkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2
YWlsYWJsZSgpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxh
YmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOwogfQogCiBNZWRp
YVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWVkaWFUaW1lRm9yVGlt
ZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVlKSBjb25zdApAQCAtMjkwMSw3ICsyOTA3
LDcgQEAgc3RhdGljIE5TU3RyaW5nICpleGVybmFsRGV2aWNlRGlzcGxheU5hbWVGb3JQbGF5ZXIo
QVZQbGF5ZXIgKnBsYXllcikKICAgICBpZiAoIVBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtB
dmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIGlmIChhdXRvIGNvbnRleHQg
PSBPdXRwdXRDb250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQoKSkK
KyAgICBpZiAoYXV0byBjb250ZXh0ID0gUEFMOjpPdXRwdXRDb250ZXh0OjpzaGFyZWRBdWRpb1By
ZXNlbnRhdGlvbk91dHB1dENvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIGNvbnRleHQtPmRldmlj
ZU5hbWUoKTsKIAogICAgIGlmIChwbGF5ZXIuZXh0ZXJuYWxQbGF5YmFja1R5cGUgIT0gQVZQbGF5
ZXJFeHRlcm5hbFBsYXliYWNrVHlwZUFpclBsYXkpCkBAIC0zMjM1LDkgKzMyNDEsOSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhR3JvdXBEaWRBcnJp
dmUoY29uc3QgUmV0YWluUHRyPAogICAgICAgICBmb3IgKEFWTWV0YWRhdGFJdGVtICppdGVtIGlu
IGdyb3VwLml0ZW1zKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8QVZNdXRhYmxlTWV0YWRhdGFJ
dGVtPiBpdGVtQ29weSA9IGFkb3B0TlMoW2l0ZW0gbXV0YWJsZUNvcHldKTsKICAgICAgICAgICAg
IGlmICghQ01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgpLnRpbWUpKQotICAgICAgICAgICAg
ICAgIGl0ZW1Db3B5LmdldCgpLnRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHMoZ3JvdXBTdGFy
dFRpbWUsIE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7CisgICAgICAgICAgICAgICAgaXRl
bUNvcHkuZ2V0KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGdyb3VwU3RhcnRU
aW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwogICAgICAgICAgICAgaWYgKCFDTVRJ
TUVfSVNfVkFMSUQoaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24pKQotICAgICAgICAgICAgICAgIGl0
ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7CisgICAgICAg
ICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24gPSBQQUw6OnRvQ01UaW1lKGdyb3VwRHVy
YXRpb24pOwogICAgICAgICAgICAgW2dyb3VwQ29weSBhZGRPYmplY3Q6aXRlbUNvcHkuZ2V0KCld
OwogICAgICAgICB9CiAKQEAgLTMyNzksNyArMzI4NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPE5T
QXJyCiAKICAgICAgICAgTWVkaWFUaW1lIGVuZCA9IE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0
ZVRpbWUoKTsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGl0ZW0uZHVyYXRpb247Ci0gICAgICAg
IGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIENNVGltZUdldFNlY29uZHMoZHVyYXRp
b24pID4gMC4wMDEpCisgICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIFBB
TDo6Q01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkKICAgICAgICAgICAgIGVuZCA9
IHN0YXJ0ICsgUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7CiAKICAgICAgICAgQXRvbVN0cmlu
ZyB0eXBlID0gbnVsbEF0b20oKTsKQEAgLTM0NTgsNyArMzQ2NCw3IEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1
bmN0aW9uPHZvCiAgICAgaWYgKG1fdGltZU9ic2VydmVyKQogICAgICAgICBbbV9hdlBsYXllciBy
ZW1vdmVUaW1lT2JzZXJ2ZXI6bV90aW1lT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAgbV90aW1lT2Jz
ZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05T
VmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAgbV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBs
YXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUgdmFsdWVXaXRo
Q01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7CiAgICAgfV07CiAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNWE2OWFhNjc5NTE4OWNiNGUw
NzZkMzE5NDY5Zjk5NjUwNGZmOTQ2Yy4uNzNhZGViOWJiNzNhNzgyOGRmNWEzZjQ4NGM1ZjkwZTMz
M2QyNDFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNjYsNyArNjYsNiBAQCAt
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KE5TVVJMICopc3Rv
cmFnZURpcmVjdG9yeTsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0YXRlIGVudW1lcmF0aW9uVmFsdWUpCiB7
CkBAIC0xMTYsMTUgKzExNSwxNSBAQCBzdGF0aWMgdm9pZCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0
ZUNoYW5nZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgY29ucwogCiB2b2lkIEVm
ZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3AoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkK
IHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IENNTm90aWZpY2F0aW9uQ2VudGVy
R2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVM
aXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ss
IGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSk7
CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2Vu
dGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRl
clJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRD
YWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdl
ZCwgdGltZWJhc2UpOwogfQogCiBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpFZmZlY3Rp
dmVSYXRlQ2hhbmdlZExpc3RlbmVyKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
QyYgY2xpZW50LCBDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAgIDogbV9jbGllbnQobWFrZVdl
YWtQdHIoY2xpZW50KSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IENNTm90
aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3RpZmljYXRp
b25DZW50ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFu
Z2VkQ2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2Vk
LCB0aW1lYmFzZSwgMCk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNN
Tm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFMOjpDTU5v
dGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZl
UmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3Rp
dmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRp
YVBsYXllciogcGxheWVyKQpAQCAtMTU3LDcgKzE1Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1l
ZGlhCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hyb25pemVyIGZpcmVkIGZvciAi
LCB0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGlu
ZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CisgICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRp
ZmllciwgInN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFMOjp0b01lZGlhVGltZSh0aW1lKSwg
Iiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vl
ayk7CiAKICAgICAgICAgaWYgKG1fc2Vla2luZyAmJiAhbV9wZW5kaW5nU2VlaykgewogICAgICAg
ICAgICAgbV9zZWVraW5nID0gZmFsc2U7CkBAIC0yMzgsMTEgKzIzNywxMSBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmlzQXZhaWxhYmxlKCkKIHsKICAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29y
a0F2YWlsYWJsZSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkK
LSAgICAgICAgJiYgZ2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKQotICAgICAgICAmJiBnZXRB
VlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCi0gICAgICAgICYmIGdldEFWU2FtcGxl
QnVmZmVyUmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQotICAgICAgICAmJiBjbGFzc19nZXRJbnN0
YW5jZU1ldGhvZChnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpLCBAc2VsZWN0
b3Ioc2V0TXV0ZWQ6KSk7CisgICAgICAgICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFp
bGFibGUoKQorICAgICAgICAmJiBQQUw6OmdldEFWU3RyZWFtRGF0YVBhcnNlckNsYXNzKCkKKyAg
ICAgICAgJiYgUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCisgICAg
ICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJvbml6ZXJDbGFzcygpCisg
ICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11dGVkOikpOwogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKQpAQCAtNDE3LDcg
KzQxNiw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmR1cmF0aW9uTWVkaWFUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiB7Ci0gICAgTWVk
aWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRU
aW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBNZWRpYVRpbWUgc3luY2hyb25p
emVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5j
aHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBNZWRpYVRp
bWU6Onplcm9UaW1lKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAg
ICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBtX2xhc3RTZWVrVGltZSkKQEAgLTQzMCw3ICs0Mjks
NyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Q3VycmVu
dFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhNZWRpYQogICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VD
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAgICAgaWYgKG1fY3VycmVudFRpbWVEaWRD
aGFuZ2VDYWxsYmFjaykgewotICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIgPSBbbV9zeW5j
aHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpDTVRpbWVNYWtlKDEs
IDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XihDTVRpbWUg
dGltZSkgeworICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIg
YWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1ha2UoMSwgMTAp
IHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENNVGltZSB0aW1l
KSB7CiAgICAgICAgICAgICBpZiAobV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKQogICAg
ICAgICAgICAgICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhDTVRJTUVfSVNfTlVN
RVJJQyh0aW1lKSA/IFBBTDo6dG9NZWRpYVRpbWUodGltZSkgOiBNZWRpYVRpbWU6Onplcm9UaW1l
KCkpOwogICAgICAgICB9XTsKQEAgLTQ4Miw3ICs0ODEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFsKCkKICAgICBpZiAobV9sYXN0U2Vl
a1RpbWUuaGFzRG91YmxlVmFsdWUoKSkKICAgICAgICAgbV9sYXN0U2Vla1RpbWUgPSBNZWRpYVRp
bWU6OmNyZWF0ZVdpdGhEb3VibGUobV9sYXN0U2Vla1RpbWUudG9Eb3VibGUoKSwgTWVkaWFUaW1l
OjpEZWZhdWx0VGltZVNjYWxlKTsKIAotICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0g
UEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJh
c2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1l
KFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSkpOwogICAg
IElORk9fTE9HKExPR0lERU5USUZJRVIsICJzZWVrVGltZSA9ICIsIG1fbGFzdFNlZWtUaW1lLCAi
LCBzeW5jaHJvbml6ZXJUaW1lID0gIiwgc3luY2hyb25pemVyVGltZSk7CiAKICAgICBib29sIGRv
ZXNOb3RSZXF1aXJlU2VlayA9IHN5bmNocm9uaXplclRpbWUgPT0gbV9sYXN0U2Vla1RpbWU7CkBA
IC01OTksNyArNTk4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAgaWYgKG1fdmlkZW9PdXRwdXQpIHsKICAg
ICAgICAgQ01UaW1lIG91dHB1dFRpbWU7CiAgICAgICAgIGlmIChhdXRvIHBpeGVsQnVmZmVyID0g
YWRvcHRDRihbbV92aWRlb091dHB1dCBjb3B5UGl4ZWxCdWZmZXJGb3JTb3VyY2VUaW1lOnRvQ01U
aW1lKGN1cnJlbnRNZWRpYVRpbWUoKSkgc291cmNlVGltZUZvckRpc3BsYXk6Jm91dHB1dFRpbWVd
KSkgewotICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIm5ldyBwaXhlbGJ1ZmZl
ciBmb3VuZCBmb3IgdGltZSAiLCB0b01lZGlhVGltZShvdXRwdXRUaW1lKSk7CisgICAgICAgICAg
ICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVmZmVyIGZvdW5kIGZvciB0aW1l
ICIsIFBBTDo6dG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOwogICAgICAgICAgICAgbV9sYXN0UGl4
ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CkBAIC04MDksNyArODA4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigpCiAgICAgaWYgKCFtX3NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ01UaW1lIGN1cnJlbnRUaW1l
ID0gQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CisgICAgQ01U
aW1lIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIg
dGltZWJhc2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3ZlUmVuZGVyZXI6bV9zYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9u
SGFuZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAgLTEwMTgsNyAr
MTAxNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpmbHVz
aFBlbmRpbmdTaXplQ2hhbmdlcygpCiAjaWYgSEFWRShBVlNUUkVBTVNFU1NJT04pCiBBVlN0cmVh
bVNlc3Npb24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3RyZWFtU2Vz
c2lvbigpCiB7Ci0gICAgaWYgKCFnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIHx8ICFbUEFMOjpn
ZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkKKyAgICBpZiAoIVBBTDo6Z2V0
QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3Mo
KSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhTdG9yYWdlRGly
ZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBpZiAoIW1fc3RyZWFt
U2Vzc2lvbikgewpAQCAtMTIxNyw3ICsxMjE2LDcgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dV
QVJEU19FTkQKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAu
ZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGltZSBjdXJyZW50VGltZSA9IENNVGlt
ZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOworICAgIENNVGltZSBjdXJy
ZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNl
XSk7CiAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRlcmVyOmF1ZGlvUmVuZGVyZXIgYXRU
aW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewogICAgICAgICAv
LyBOby1vcC4KICAgICB9XTsKQEAgLTEzMDEsNyArMTMwMCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVu
Y3Rpb248CiAgICAgaWYgKG1fcGVyZm9ybVRhc2tPYnNlcnZlcikKICAgICAgICAgW21fc3luY2hy
b25pemVyIHJlbW92ZVRpbWVPYnNlcnZlcjptX3BlcmZvcm1UYXNrT2JzZXJ2ZXIuZ2V0KCldOwog
Ci0gICAgbV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZEJvdW5kYXJ5
VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6dG9DTVRpbWUo
dGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKKyAg
ICBtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkQm91bmRhcnlUaW1l
T2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTpQQUw6OnRvQ01UaW1l
KHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CiAg
ICAgICAgIHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCmluZGV4IGUxYWQxMDJiYjk4MWJmMzc0ZTZiZDkzN2MwYzZlMmE4N2Y0MGYx
NWYuLjU1YjUwMGM1N2U5M2ViYmE0OTZhZTc0MTZmZDVkZjc4ZDdiOTQ1OGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29u
dGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJMb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXIuaCIKICNpbXBvcnQgIk1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCiAj
aW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCkBAIC0xMjEsNyArMTIyLDYgQEAgLSAo
dm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6
KGlkKW9iamVjdCBjaGFuZ2U6KE4KIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBpc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2
YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgZ2V0QVZTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0
aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWls
YWJsZSgpICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpOwogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKQpA
QCAtMjMwLDcgKzIzMCw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uCiBzdGF0aWMgaW5saW5l
IENHQWZmaW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgoTWVkaWFTYW1wbGUm
IHNhbXBsZSkKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBzYW1wbGUu
cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXI7Ci0gICAgQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIpKTsKICAgICBzaXplX3Qgd2lkdGgg
PSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwogICAgIHNpemVfdCBoZWlnaHQg
PSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKICAgICBpZiAoIXdpZHRoIHx8
ICFoZWlnaHQpCkBAIC05NjAsNyArOTYwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCkKICAgICBpZiAoIW1faW1h
Z2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBh
dXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVC
dWZmZXJHZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxhdGZvcm1T
YW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0g
c3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBs
ZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIG1faW1hZ2VQYWludGVyLmNnSW1hZ2UgPSBOYXRpdmVJ
bWFnZTo6Y3JlYXRlKG1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyLT5jcmVhdGVJ
bWFnZUZyb21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBs
ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXggMmY0OTgzODc2NWQzYzk0NDFiNjli
Yjk1MThiM2IxZjlhODc5NTA5Yi4uYzBmMTNkNmVhNWM5NzU3NjdjZThmNjJhYjY4NDJkN2Q2ZjBm
YmI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQpA
QCAtMzYsOSArMzYsMTIgQEAKICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0
IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQot
V1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBFcXVpdmFsZW50
IHRvIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOworLy8gTmVlZGVk
IGR1ZSB0byByZXF1aXJlbWVudCBvZiBzcGVjaWZ5aW5nIHRoZSBQQUwgbmFtZXNwYWNlLgordGVt
cGxhdGUgPD4KK3N0cnVjdCBXVEY6OkNGVHlwZVRyYWl0PENNU2FtcGxlQnVmZmVyUmVmPiB7Cisg
ICAgc3RhdGljIGlubGluZSBDRlR5cGVJRCB0eXBlSUQodm9pZCkgeyByZXR1cm4gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldFR5cGVJRCgpOyB9Cit9OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTY3LDM1ICs3MCwzNSBAQCBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBNZWRpYVNhbXBsZUFW
Rk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFBpeGVsQnVmZmVyJiYgcAogICAgIEFTU0VSVF9VTlVT
RUQoc3RhdHVzLCAhc3RhdHVzKTsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBm
b3JtYXREZXNjcmlwdGlvblJhdyA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0gQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQ
aXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uUmF3KTsKKyAgICBzdGF0dXMgPSBQ
QUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvblJhdyk7
CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8gZm9ybWF0RGVzY3JpcHRpb24gPSBhZG9w
dENGKGZvcm1hdERlc2NyaXB0aW9uUmF3KTsKIAotICAgIENNU2FtcGxlVGltaW5nSW5mbyBzYW1w
bGVUaW1pbmdJbmZvcm1hdGlvbiA9IHsga0NNVGltZUludmFsaWQsIGtDTVRpbWVJbnZhbGlkLCBr
Q01UaW1lSW52YWxpZCB9OworICAgIENNU2FtcGxlVGltaW5nSW5mbyBzYW1wbGVUaW1pbmdJbmZv
cm1hdGlvbiA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFM
OjprQ01UaW1lSW52YWxpZCB9OwogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlclJh
dyA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCBmb3Jt
YXREZXNjcmlwdGlvbi5nZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9ybWF0aW9uLCAmc2FtcGxlQnVm
ZmVyUmF3KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRo
SW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgZm9y
bWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1
ZmZlclJhdyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8gc2FtcGxlQnVmZmVyID0g
YWRvcHRDRihzYW1wbGVCdWZmZXJSYXcpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0Fy
cmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZl
ci5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgp
LCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50
KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBDRk11dGFibGVE
aWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rp
b25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwot
ICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNo
bWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgQ0ZE
aWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtl
eV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiAgICAgcmV0dXJu
IGNyZWF0ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOwogfQogCiBNZWRpYVRpbWUgTWVkaWFTYW1wbGVB
VkZPYmpDOjpwcmVzZW50YXRpb25UaW1lKCkgY29uc3QKIHsKLSAgICBhdXRvIHRpbWVTdGFtcCA9
IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdl
dCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNf
SU5WQUxJRCh0aW1lU3RhbXApKQotICAgICAgICB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdl
dFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAgICAgIHRpbWVTdGFt
cCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUu
Z2V0KCkpOwogICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCk7CiB9CiAKIE1l
ZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUoKSBjb25zdAogewotICAgIGF1
dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAobV9zYW1wbGUu
Z2V0KCkpOworICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERlY29k
ZVRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKHRp
bWVTdGFtcCkpCiAgICAgICAgIHJldHVybiBwcmVzZW50YXRpb25UaW1lKCk7CiAgICAgcmV0dXJu
IFBBTDo6dG9NZWRpYVRpbWUodGltZVN0YW1wKTsKQEAgLTEwMywxNSArMTA2LDE1IEBAIE1lZGlh
VGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUoKSBjb25zdAogCiBNZWRpYVRpbWUg
TWVkaWFTYW1wbGVBVkZPYmpDOjpkdXJhdGlvbigpIGNvbnN0CiB7Ci0gICAgYXV0byBkdXJhdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOworICAg
IGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24obV9z
YW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRChkdXJhdGlvbikpCi0gICAg
ICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7
CisgICAgICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKG1fc2Ft
cGxlLmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7CiB9CiAK
IHNpemVfdCBNZWRpYVNhbXBsZUFWRk9iakM6OnNpemVJbkJ5dGVzKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUobV9zYW1wbGUuZ2V0KCkpOwor
ICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplKG1fc2FtcGxl
LmdldCgpKTsKIH0KIAogUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1wbGVBVkZPYmpDOjpwbGF0Zm9y
bVNhbXBsZSgpCkBAIC0xMjIsMjMgKzEyNSwyMyBAQCBQbGF0Zm9ybVNhbXBsZSBNZWRpYVNhbXBs
ZUFWRk9iakM6OnBsYXRmb3JtU2FtcGxlKCkKIAogdWludDMyX3QgTWVkaWFTYW1wbGVBVkZPYmpD
Ojp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKIHsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3Rh
dGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlciht
X3NhbXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBp
eGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUu
Z2V0KCkpKTsKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhl
bEJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50UmFu
ZG9tQWNjZXNzKENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCkKIHsKLSAgICByZXR1cm4g
IUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRhY2ht
ZW50S2V5X05vdFN5bmMpOworICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0
YWNobWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jKTsKIH0KIAog
c3RhdGljIGJvb2wgZG9lc0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZSkKIHsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2ht
ZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKIH0KIAogc3RhdGljIGJv
b2wgaXNDTVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUp
CiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
QXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxl
LCBmYWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgCkBAIC0xNTEsMTIgKzE1NCwxMiBAQCBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyUmFu
ZG9tQWNjZXNzKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIAogc3RhdGljIGJvb2wgaXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKENGRGljdGlvbmFyeVJlZiBhdHRhY2ht
ZW50RGljdCkKIHsKLSAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVu
dERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKKyAgICByZXR1cm4g
Q0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0
YWNobWVudEtleV9Eb05vdERpc3BsYXkpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVm
ZmVyTm9uRGlzcGxheWluZyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiB7Ci0gICAgQ0ZBcnJh
eVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJh
eShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiAgICAg
aWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApAQCAtMTg2LDEx
ICsxODksMTEgQEAgTWVkaWFTYW1wbGU6OlNhbXBsZUZsYWdzIE1lZGlhU2FtcGxlQVZGT2JqQzo6
ZmxhZ3MoKSBjb25zdAogCiBGbG9hdFNpemUgTWVkaWFTYW1wbGVBVkZPYmpDOjpwcmVzZW50YXRp
b25TaXplKCkgY29uc3QKIHsKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2Ny
aXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3NhbXBsZS5nZXQo
KSk7Ci0gICAgaWYgKENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3Jp
cHRpb24pICE9IGtDTU1lZGlhVHlwZV9WaWRlbykKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0
aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICBpZiAoUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0
TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVfVmlkZW8pCiAgICAg
ICAgIHJldHVybiBGbG9hdFNpemUoKTsKICAgICAKLSAgICByZXR1cm4gRmxvYXRTaXplKENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3Jp
cHRpb24sIHRydWUsIHRydWUpKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlv
biwgdHJ1ZSwgdHJ1ZSkpOwogfQogCiB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVtcChQcmlu
dFN0cmVhbSYgb3V0KSBjb25zdApAQCAtMjAxLDEyICsyMDQsMTIgQEAgdm9pZCBNZWRpYVNhbXBs
ZUFWRk9iakM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHZvaWQgTWVkaWFTYW1wbGVB
VkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiB7CiAg
ICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIs
ICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50
KSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+
IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwot
ICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSht
X3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRy
KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGZvciAoYXV0byYgdGltaW5n
IDogdGltaW5nSW5mb0FycmF5KSB7CkBAIC0yMTUsNyArMjE4LDcgQEAgdm9pZCBNZWRpYVNhbXBs
ZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmIG9mZnNldCkKICAg
ICB9CiAgICAgCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3U2FtcGxlOwotICAgIGlmIChub0Vy
ciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCks
ICZuZXdTYW1wbGUpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRl
Q29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIGl0
ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCiAgICAgICAgIHJl
dHVybjsKICAgICAKICAgICBtX3NhbXBsZSA9IGFkb3B0Q0YobmV3U2FtcGxlKTsKQEAgLTIyNCwx
MiArMjI3LDEyIEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnko
Y29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGlt
ZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YW1wLCBjb25z
dCBXVEY6Ok1lZGlhVGltZSAmZGVjb2RlVGltZXN0YW1wKQogewogICAgIENNSXRlbUNvdW50IGl0
ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKKyAg
ICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCiAgICAgICAgIHJldHVy
bjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7
CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBpZiAobm9FcnIgIT0g
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0
ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAgaWYgKG5vRXJy
ICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUu
Z2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCiAgICAg
ICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWluZyA6IHRpbWluZ0luZm9BcnJh
eSkgewpAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRUaW1l
c3RhbXBzKGNvbnN0IFdURjo6TWVkaWFUaW1lICZwcmVzZW50YXRpb25UaW1lc3RhCiAgICAgfQog
ICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAobm9FcnIgIT0g
Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3
U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlX
aXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291
bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0yNDYsMTAgKzI0
OSwxMCBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyhjb25zdCBXVEY6
Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogCiBib29sIE1lZGlhU2FtcGxlQVZGT2Jq
Qzo6aXNEaXZpc2FibGUoKSBjb25zdAogewotICAgIGlmIChDTVNhbXBsZUJ1ZmZlckdldE51bVNh
bXBsZXMobV9zYW1wbGUuZ2V0KCkpID09IDEpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAxKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkobV9zYW1wbGUuZ2V0
KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09IGtDTVNhbXBsZUJ1ZmZlckVycm9yX0J1ZmZlckhh
c05vU2FtcGxlU2l6ZXMpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXpl
QXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09IGtDTVNhbXBsZUJ1
ZmZlckVycm9yX0J1ZmZlckhhc05vU2FtcGxlU2l6ZXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIHJldHVybiB0cnVlOwpAQCAtMjYyLDE3ICsyNjUsMTcgQEAgc3RkOjpwYWlyPFJlZlB0
cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6
ZGl2aWRlKGMKIAogICAgIENGSW5kZXggc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUgPSAw
OwogCi0gICAgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2FtcGxlLmdl
dCgpLCBbJl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQpIC0+
IE9TU3RhdHVzIHsKLSAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldE91
dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOworICAgIFBBTDo6Q01TYW1w
bGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2FtcGxlLmdldCgpLCBbJl0gKENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQpIC0+IE9TU3RhdHVzIHsKKyAg
ICAgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CiAgICAgICAgIGlmIChDTVRJTUVfSVNfSU5W
QUxJRCh0aW1lU3RhbXApKQotICAgICAgICAgICAgdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJH
ZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgIHRpbWVT
dGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxl
QnVmZmVyKTsKIAogICAgICAgICBpZiAodXNlRW5kVGltZSA9PSBVc2VFbmRUaW1lOjpVc2UpIHsK
LSAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0
aW9uKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CiAgICAgICAgICAgICBp
ZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAgICAgICAgICAgICAgIGR1cmF0aW9u
ID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOworICAgICAgICAgICAg
ICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZUJ1ZmZl
cik7CiAKLSAgICAgICAgICAgIGlmIChQQUw6OnRvTWVkaWFUaW1lKENNVGltZUFkZCh0aW1lU3Rh
bXAsIGR1cmF0aW9uKSkgPiBwcmVzZW50YXRpb25UaW1lKQorICAgICAgICAgICAgaWYgKFBBTDo6
dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVBZGQodGltZVN0YW1wLCBkdXJhdGlvbikpID4gcHJlc2Vu
dGF0aW9uVGltZSkKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfSBlbHNlIGlm
IChQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCkgPj0gcHJlc2VudGF0aW9uVGltZSkKICAgICAg
ICAgICAgIHJldHVybiAxOwpAQCAtMjgzLDE5ICsyODYsMTkgQEAgc3RkOjpwYWlyPFJlZlB0cjxN
ZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2
aWRlKGMKICAgICBpZiAoIXNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lKQogICAgICAgICBy
ZXR1cm4geyBudWxscHRyLCB0aGlzIH07CiAKLSAgICBDTUl0ZW1Db3VudCBzYW1wbGVDb3VudCA9
IENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSk7CisgICAgQ01JdGVt
Q291bnQgc2FtcGxlQ291bnQgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3Nh
bXBsZS5nZXQoKSk7CiAgICAgaWYgKHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lID49IHNh
bXBsZUNvdW50KQogICAgICAgICByZXR1cm4geyB0aGlzLCBudWxscHRyIH07CiAKICAgICBDTVNh
bXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVCZWZvcmUgPSBudWxscHRyOwogICAgIENGUmFuZ2UgcmFu
Z2VCZWZvcmUgPSBDRlJhbmdlTWFrZSgwLCBzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSk7
Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9yZSwgJnJhd1NhbXBsZUJlZm9y
ZSkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVy
Rm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlQmVmb3Jl
LCAmcmF3U2FtcGxlQmVmb3JlKSAhPSBub0VycikKICAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwg
bnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQmVmb3Jl
ID0gYWRvcHRDRihyYXdTYW1wbGVCZWZvcmUpOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3
U2FtcGxlQWZ0ZXIgPSBudWxscHRyOwogICAgIENGUmFuZ2UgcmFuZ2VBZnRlciA9IENGUmFuZ2VN
YWtlKHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lLCBzYW1wbGVDb3VudCAtIHNhbXBsZXNC
ZWZvcmVQcmVzZW50YXRpb25UaW1lKTsKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxl
QnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdl
QWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVC
dWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1w
bGUuZ2V0KCksIHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIpCiAgICAgICAg
IHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZm
ZXJSZWY+IHNhbXBsZUFmdGVyID0gYWRvcHRDRihyYXdTYW1wbGVBZnRlcik7CiAKQEAgLTMwNSwx
MyArMzA4LDEzIEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFT
YW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZShjCiBSZWY8TWVkaWFTYW1wbGU+IE1l
ZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkoKSBjb25zdAogewogICAg
IENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlciA9IDA7Ci0gICAgQ01TYW1wbGVCdWZm
ZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCAmbmV3U2Ft
cGxlQnVmZmVyKTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7CiAgICAgQVNTRVJU
KG5ld1NhbXBsZUJ1ZmZlcik7CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0
cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShuZXdTYW1wbGVCdWZmZXIsIHRydWUpOwogICAg
IGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5
KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBj
aGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJ
bmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVl
KGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwga0NGQm9v
bGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFM
OjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwga0NGQm9vbGVhblRydWUpOwog
ICAgIH0KIAogICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShhZG9wdENGKG5l
d1NhbXBsZUJ1ZmZlcikuZ2V0KCksIG1faWQpOwpAQCAtMzI2LDcgKzMyOSw3IEBAIFJlZlB0cjxK
U0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9iakM6OmdldFJHQkFJbWFnZURh
dGEoKSBjb25zdAogICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGNvbmZvcm1lck9wdGlvbnMuZ2V0
KCksIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBpbWFnZUZvcm1hdE51bWJlci5n
ZXQoKSk7CiAgICAgUGl4ZWxCdWZmZXJDb25mb3JtZXJDViBwaXhlbEJ1ZmZlckNvbmZvcm1lcihj
b25mb3JtZXJPcHRpb25zLmdldCgpKTsKIAotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNf
Y2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2Ft
cGxlLmdldCgpKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxC
dWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQo
KSkpOwogICAgIGF1dG8gcmdiYVBpeGVsQnVmZmVyID0gcGl4ZWxCdWZmZXJDb25mb3JtZXIuY29u
dmVydChwaXhlbEJ1ZmZlcik7CiAgICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyTG9ja0Jh
c2VBZGRyZXNzKHJnYmFQaXhlbEJ1ZmZlci5nZXQoKSwga0NWUGl4ZWxCdWZmZXJMb2NrX1JlYWRP
bmx5KTsKICAgICBBU1NFUlQoc3RhdHVzID09IG5vRXJyKTsKQEAgLTM0MywxMCArMzQ2LDEwIEBA
IFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9iakM6OmdldFJH
QkFJbWFnZURhdGEoKSBjb25zdAogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0U2FtcGxlQnVmZmVy
QXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQogewot
ICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
QXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0
YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgQ0ZB
cnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxl
RGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0
aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsK
LSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFj
aG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgIENG
RGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogfQogCkBAIC0z
NTcsNyArMzYwLDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldEFzRGlzcGxheUltbWVk
aWF0ZWx5KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAKIGJvb2wgTWVkaWFTYW1wbGVBVkZPYmpDOjpp
c0hvbW9nZW5lb3VzKCkgY29uc3QKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkg
PSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCks
IHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKICAg
ICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC0zODUs
NyArMzg4LDcgQEAgVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PiBNZWRpYVNhbXBsZUFW
Rk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMKIHsKICAgICB1c2luZyBTYW1wbGVW
ZWN0b3IgPSBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+OwogCi0gICAgQ0ZBcnJheVJl
ZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJy
YXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBs
ZS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQogICAgICAgICByZXR1
cm4gU2FtcGxlVmVjdG9yOjpmcm9tKG1ha2VSZWYoKnRoaXMpKTsKIApAQCAtNDE4LDcgKzQyMSw3
IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpk
aXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiAgICAgc2FtcGxlcy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KHJhbmdlcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgcmFuZ2UgOiByYW5nZXMpIHsK
ICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlID0gbnVsbHB0cjsKLSAgICAgICAg
aWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1NhbXBsZSkgIT0gbm9FcnIgfHwgIXJh
d1NhbXBsZSkKKyAgICAgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVy
Rm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlLCAmcmF3
U2FtcGxlKSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICAgICAgc2FtcGxlcy51bmNoZWNrZWRBcHBlbmQoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGUoYWRvcHRDRihyYXdTYW1wbGUpLmdldCgpLCBtX2lkKSk7CiAgICAgfQpAQCAtNDMyLDI0ICs0
MzUsMjQgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBNZWRpYVNhbXBsZUFWRk9iakM6
OmNsb25lU2FtcGxlQnVmZmVyQW5kU2V0QXNEaXNwbGEKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBu
dWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsICZmb3JtYXRE
ZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVy
LCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIGF1dG8gcmV0YWluZWRGb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9y
bWF0RGVzY3JpcHRpb24pOwogCiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBz
dGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGUsIDAs
IG51bGxwdHIsICZpdGVtQ291bnQpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KTsK
ICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFZlY3RvcjxD
TVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXku
Z3JvdyhpdGVtQ291bnQpOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBu
dWxscHRyKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxs
cHRyKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENN
U2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlcjsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVs
QnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1Nh
bXBsZUJ1ZmZlcik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5
V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7CiAg
ICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggMGI5
YmI2NDg1ZjNlOWUyNTM0NWFhZDRmNGU0NzA5MmM0MjlhNWNjOC4uMDIxOTIxNmQ3YzJkODhlZjU3
NzUyNmQ4ODIzMGMzZTUwM2ZkOGNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTI1OCw3ICsyNTgsNiBAQCAtICh2
b2lkKWF1ZGlvUmVuZGVyZXJXYXNBdXRvbWF0aWNhbGx5Rmx1c2hlZDooTlNOb3RpZmljYXRpb24q
KW5vdGUKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsK
IAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
QwpAQCAtMjc3LDcgKzI3Niw3IEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0TWFwSUQoKQogCiBzdGF0
aWMgdm9pZCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKENNTm90aWZpY2F0aW9uQ2VudGVyUmVm
LCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSwgY29u
c3Qgdm9pZCosIENGVHlwZVJlZikKIHsKLSAgICBpZiAoIUNGRXF1YWwoa0NNU2FtcGxlQnVmZmVy
Q29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG5vdGlmaWNhdGlvbk5hbWUpKQor
ICAgIGlmICghQ0ZFcXVhbChQQUw6OmtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9u
X0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewpAQCAtMzE2LDcgKzMxNSw3IEBAIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVBy
aXZhdGVBVkZPYmpDCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAogICAgIGlmICgh
W1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3Bv
bmRUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVyb2xsRGVjb2RlV2l0aENvbXBsZXRpb25IYW5kbGVy
OildKQotICAgICAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKENNTm90aWZpY2F0
aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+
KG1fbWFwSUQpLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25z
dW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7CisgICAgICAgIFBB
TDo6Q01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihQQUw6OkNNTm90aWZpY2F0aW9uQ2Vu
dGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fbWFw
SUQpLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckNvbnN1
bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyLCAwKTsKIAogI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIG1fcGFyc2VyLT5zZXRMb2dnZXIobV9sb2dnZXIuZ2V0KCks
IG1fbG9nSWRlbnRpZmllcik7CkBAIC0zNTQsNyArMzUzLDcgQEAgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6On5Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQygpCiAgICAgY2xlYXJUcmFja3Mo
KTsKIAogICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygp
IGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVyb2xsRGVjb2RlV2l0aENv
bXBsZXRpb25IYW5kbGVyOildKQotICAgICAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxp
c3RlbmVyKENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHRoaXMs
IGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZp
Y2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyKTsKKyAgICAgICAgUEFMOjpDTU5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZh
dWx0TG9jYWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywgUEFMOjpr
Q01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0
cik7CiAKICAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKQogICAgICAgICBtX2hhc1Nlc3Np
b25TZW1hcGhvcmUtPnNpZ25hbCgpOwpAQCAtOTkzLDcgKzk5Miw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyCiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlbmRlcmVyV2Fz
QXV0b21hdGljYWxseUZsdXNoZWQoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJl
ciwgY29uc3QgQ01UaW1lJiB0aW1lKQogewotICAgIGF1dG8gbWVkaWFUaW1lID0gdG9NZWRpYVRp
bWUodGltZSk7CisgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKHRpbWUpOwog
ICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYVRpbWUpOwogICAgIEF0b21TdHJpbmcg
dHJhY2tJZDsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2F1ZGlvUmVuZGVyZXJzKSB7CkBAIC0x
MTAxLDEzICsxMTAwLDEzIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVl
dWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKICAgICBhdXRvIGxvZ1Np
dGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKICAgICBERUJVR19MT0cobG9nU2l0ZUlkZW50
aWZpZXIsICJ0cmFjayBJRCA9ICIsIHRyYWNrSUQsICIsIHNhbXBsZSA9ICIsIHNhbXBsZS5nZXQo
KSk7CiAKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gQ01T
YW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIpOworICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1w
bGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBBU1NFUlQoZm9ybWF0RGVzY3JpcHRpb24p
OwogICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAgRVJST1JfTE9HKGxvZ1Np
dGVJZGVudGlmaWVyLCAiUmVjZWl2ZWQgc2FtcGxlIHdpdGggYSBudWxsIGZvcm1hdERlc2NyaXB0
aW9uLiBCYWlsaW5nLiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGF1dG8gbWVkaWFU
eXBlID0gQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbik7
CisgICAgYXV0byBtZWRpYVR5cGUgPSBQQUw6OkNNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5
cGUoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgaWYgKHRyYWNrSUQgPT0gbV9lbmFibGVkVmlk
ZW9UcmFja0lEKSB7CiAgICAgICAgIC8vIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHdpbGwg
dGhyb3cgYW4gdW4tZG9jdW1lbnRlZCBleGNlcHRpb24gaWYgcGFzc2VkIGEgc2FtcGxlCkBAIC0x
MTIwLDcgKzExMTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVl
U2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAgICAgICAgIH0KIAogICAg
ICAgICBhdXRvIHBsYXllciA9IHRoaXMtPnBsYXllcigpOwotICAgICAgICBGbG9hdFNpemUgZm9y
bWF0U2l6ZSA9IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRp
b25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7CisgICAgICAgIEZs
b2F0U2l6ZSBmb3JtYXRTaXplID0gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1
ZSkpOwogICAgICAgICBpZiAoIW1fY2FjaGVkU2l6ZSB8fCBmb3JtYXRTaXplICE9IG1fY2FjaGVk
U2l6ZS52YWx1ZSgpKSB7CiAgICAgICAgICAgICBERUJVR19MT0cobG9nU2l0ZUlkZW50aWZpZXIs
ICJzaXplIGNoYW5nZWQgdG8gIiwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICBib29sIHNpemVX
YXNOdWxsID0gIW1fY2FjaGVkU2l6ZTsKQEAgLTExNDYsOSArMTE0NSw5IEBAIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNh
bXBsZSwgY29uc3QKIAogICAgICAgICAgICAgaWYgKCFoYXZlUHJlcm9sbERlY29kZVdpdGhDb21w
bGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1Nh
bXBsZUNvcHk7Ci0gICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFs
bG9jYXRvckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwgJnJh
d1NhbXBsZUNvcHkpOworICAgICAgICAgICAgICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1
ZmZlciwgJnJhd1NhbXBsZUNvcHkpOwogICAgICAgICAgICAgICAgIGF1dG8gc2FtcGxlQ29weSA9
IGFkb3B0Q0YocmF3U2FtcGxlQ29weSk7Ci0gICAgICAgICAgICAgICAgQ01TZXRBdHRhY2htZW50
KHNhbXBsZUNvcHkuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5vdGlm
aWNhdGlvbldoZW5Db25zdW1lZCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilAeyAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRp
b25XaGVuQ29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZE5vdFByb3Bh
Z2F0ZSk7CisgICAgICAgICAgICAgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQ29weS5n
ZXQoKSwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRpb25X
aGVuQ29uc3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9fYnJpZGdlIE5TU3Ry
aW5nICopUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmljYXRpb25X
aGVuQ29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZE5vdFByb3BhZ2F0
ZSk7CiAgICAgICAgICAgICAgICAgW21fZGlzcGxheUxheWVyIGVucXVldWVTYW1wbGVCdWZmZXI6
c2FtcGxlQ29weS5nZXQoKV07CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgICAg
ICAgICBwbGF5ZXItPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUodHJ1ZSk7CkBAIC0xMjk4LDE0
ICsxMjk3LDE0IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5vdGlmeUNsaWVu
dFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21TCiBib29sIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0
IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBhcnNlSW50
ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPHVpbnQ2NF90Pih0cmFja0lEU3RyaW5nKS52YWx1ZV9v
cigwKSA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQKLSAgICAgICAgJiYgW2dldEFWU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0
b3IoZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTopXTsK
KyAgICAgICAgJiYgW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGlu
c3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBlY3RNaW5pbXVtVXBjb21pbmdT
YW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOildOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0
b21TdHJpbmcmIHRyYWNrSURTdHJpbmcsIGNvbnN0IE1lZGlhVGltZSYgcHJlc2VudGF0aW9uVGlt
ZSkKIHsKICAgICBBU1NFUlQoY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0
cmFja0lEU3RyaW5nKSk7CiAgICAgaWYgKGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlv
blRpbWUodHJhY2tJRFN0cmluZykpCi0gICAgICAgIFttX2Rpc3BsYXlMYXllciBleHBlY3RNaW5p
bXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOnRvQ01UaW1lKHByZXNlbnRh
dGlvblRpbWUpXTsKKyAgICAgICAgW21fZGlzcGxheUxheWVyIGV4cGVjdE1pbmltdW1VcGNvbWlu
Z1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6UEFMOjp0b0NNVGltZShwcmVzZW50YXRpb25U
aW1lKV07CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNsZWFyTWluaW11
bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lEU3RyaW5n
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291
cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCBlNmRmY2IzNDk2ZjkyZDJh
YTIxZjg3Njg0NjQ4MDhiMTYxZDU3NzZiLi5iNWQ4ZjUzNmEyMDc4Zjk0ZTQ0ZGFjNzE4MzU3MTM1
ODhkZjQzMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApAQCAtMjU4LDgg
KzI1OCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclBhcnNlcldlYk06OlN0YXRlPiB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSB7IHJl
dHVybiBMb2dNZWRpYTsgfQogc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIHsgcmV0
dXJuICJTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIjsgfQogCkBAIC0xMDU3LDcgKzEwNTUsNyBAQCB3
ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFtZShjb25zdCBGcmFtZU1l
dGFkYXRhJiBtZXRhZGF0YSwgUmVhZAogICAgICAgICByZXR1cm4gU2tpcChyZWFkZXIsIGJ5dGVz
UmVtYWluaW5nKTsKICAgICB9CiAKLSAgICByZXR1cm4gdHJhY2tEYXRhLT5jb25zdW1lRnJhbWVE
YXRhKCpyZWFkZXIsIG1ldGFkYXRhLCBieXRlc1JlbWFpbmluZywgQ01UaW1lTWFrZShibG9jay0+
dGltZWNvZGUgKyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUpLCBibG9jay0+bnVtX2Zy
YW1lcyk7CisgICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZyYW1lRGF0YSgqcmVhZGVyLCBt
ZXRhZGF0YSwgYnl0ZXNSZW1haW5pbmcsIFBBTDo6Q01UaW1lTWFrZShibG9jay0+dGltZWNvZGUg
KyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUpLCBibG9jay0+bnVtX2ZyYW1lcyk7CiB9
CiAKIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6cHJvdmlkZU1lZGlhRGF0YShSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlciwgdWludDY0X3QgdHJhY2tJRCwgc3Rk
OjpvcHRpb25hbDxzaXplX3Q+IGJ5dGVSYW5nZU9mZnNldCkKQEAgLTEwODEsNyArMTA3OSw3IEBA
IHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29u
c3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgQ01CbG9ja0J1ZmZlclJlZiByYXdCbG9ja0J1
ZmZlciA9IG51bGxwdHI7CiAKICAgICBpZiAoIW1fY3VycmVudEJsb2NrQnVmZmVyKSB7Ci0gICAg
ICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3QmxvY2tCdWZmZXIpOworICAgICAg
ICBhdXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXplLCBrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBudWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3QmxvY2tCdWZmZXIpOwogICAg
ICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxF
KCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZhaWxlZCB3aXRoIGVycm9yIiwg
ZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsK
QEAgLTEwOTAsNyArMTA4OCw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
OjpWaWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgICAgIG1f
Y3VycmVudEJsb2NrQnVmZmVyID0gYWRvcHRDRihyYXdCbG9ja0J1ZmZlcik7CiAgICAgICAgIG1f
Y3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24gPSAwOwogCi0gICAgICAgIGVyciA9IENNQmxvY2tC
dWZmZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSk7CisgICAg
ICAgIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5KG1fY3VycmVudEJs
b2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFSU0VS
X0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICAgICAgcmV0
dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTEwMSw3ICsxMDk5LDcgQEAg
d2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjb25z
dW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICB3aGlsZSAoYnl0ZXNUb1JlYWQpIHsKICAgICAg
ICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9IDA7CiAgICAgICAgIHVpbnQ4X3QqIGJs
b2NrQnVmZmVyRGF0YSA9IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZl
ckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRCbG9j
a0J1ZmZlclBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioq
KSZibG9ja0J1ZmZlckRhdGEpOworICAgICAgICBhdXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZl
ckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRCbG9j
a0J1ZmZlclBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioq
KSZibG9ja0J1ZmZlckRhdGEpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJT
RVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIgZmFp
bGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwg
Ynl0ZXNSZW1haW5pbmcpOwpAQCAtMTEzNSw3ICsxMTMzLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGlt
ZSYgcHIKICNpZiBFTkFCTEUoVlA5KQogICAgIHVpbnQ4X3QqIGJsb2NrQnVmZmVyRGF0YSA9IG51
bGxwdHI7CiAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9IDA7Ci0gICAgYXV0byBl
cnIgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0
KCksIDAsICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVm
ZmVyRGF0YSk7CisgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRl
cihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgMCwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwg
bnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJHZXREYXRhUG9p
bnRlciBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgIHJldHVybjsKQEAgLTExNzks
OSArMTE3Nyw5IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6
OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAgICAgICAgIGR1cmF0aW9uID0g
dHJhY2suZGVmYXVsdF9kdXJhdGlvbi52YWx1ZSgpICogcHJlc2VudGF0aW9uVGltZS50aW1lc2Nh
bGUgLyAxMDAwMDAwMDAwOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQnVmZmVy
ID0gbnVsbHB0cjsKLSAgICBzaXplX3QgZnJhbWVTaXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOwotICAgIENNU2FtcGxlVGltaW5nSW5m
byB0aW1pbmcgPSB7IENNVGltZU1ha2UoZHVyYXRpb24sIHByZXNlbnRhdGlvblRpbWUudGltZXNj
YWxlKSwgcHJlc2VudGF0aW9uVGltZSwgcHJlc2VudGF0aW9uVGltZSB9OwotICAgIGVyciA9IENN
U2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jdXJyZW50Qmxv
Y2tCdWZmZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIHNhbXBsZUNv
dW50LCAxLCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2FtcGxlQnVmZmVyKTsKKyAgICBz
aXplX3QgZnJhbWVTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX2N1cnJl
bnRCbG9ja0J1ZmZlci5nZXQoKSk7CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZyA9IHsg
UEFMOjpDTVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRpbWVzY2FsZSksIHBy
ZXNlbnRhdGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKKyAgICBlcnIgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jdXJyZW50QmxvY2tC
dWZmZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIHNhbXBsZUNvdW50
LCAxLCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2FtcGxlQnVmZmVyKTsKICAgICBpZiAo
ZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHkgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICByZXR1cm47
CkBAIC0xMTkxLDcgKzExODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVv
VHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogICAgIG1fY3Vy
cmVudEJsb2NrQnVmZmVyID0gbnVsbHB0cjsKICAgICBtX2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0
aW9uID0gMDsKIAotICAgIGF1dG8gYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOworICAgIGF1
dG8gYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2ht
ZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CiAgICAgQVNTRVJUKGF0dGFjaG1l
bnRzQXJyYXkpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkgewogICAgICAgICBQQVJTRVJf
TE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRz
QXJyYXkgcmV0dXJuZWQgTlVMTCIpOwpAQCAtMTIwMSw3ICsxMTk5LDcgQEAgdm9pZCBTb3VyY2VC
dWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0
IENNVGltZSYgcHIKICAgICBpZiAoIWlzS2V5KSB7CiAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0g
MCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7IGkgPCBjb3VudDsg
KytpKSB7CiAgICAgICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0g
Y2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0
SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0
VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYywga0NGQm9v
bGVhblRydWUpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMs
IFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAg
ICAgICAgIH0KICAgICB9CiAKQEAgLTEyODIsMTIgKzEyODAsMTIgQEAgd2VibTo6U3RhdHVzIFNv
dXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdl
Ym06OlJlYWQKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5n
KTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gc3RyZWFtRGVzY3JpcHRpb24gPSBDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1hdERlc2NyaXB0
aW9uLmdldCgpKTsKKyAgICAgICAgYXV0byBzdHJlYW1EZXNjcmlwdGlvbiA9IFBBTDo6Q01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3JtYXREZXNjcmlw
dGlvbi5nZXQoKSk7CiAgICAgICAgIGlmICghc3RyZWFtRGVzY3JpcHRpb24pIHsKICAgICAgICAg
ICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24gZmFpbGVkIik7CiAgICAgICAgICAgICByZXR1cm4g
U2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CiAgICAgICAgIH0KLSAgICAgICAgbV9wYWNr
ZXREdXJhdGlvbiA9IENNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRpb24tPm1GcmFtZXNQZXJQYWNr
ZXQsIHN0cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7CisgICAgICAgIG1fcGFja2V0RHVy
YXRpb24gPSBQQUw6OkNNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRpb24tPm1GcmFtZXNQZXJQYWNr
ZXQsIHN0cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7CiAKICAgICAgICAgc2V0Rm9ybWF0
RGVzY3JpcHRpb24oV1RGTW92ZShmb3JtYXREZXNjcmlwdGlvbikpOwogICAgIH0gZWxzZSBpZiAo
Y29kZWMoKSA9PSBDb2RlY1R5cGU6Ok9wdXMpIHsKQEAgLTEzMDksNyArMTMwNyw3IEBAIHdlYm06
OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZy
YW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgbV9jdXJyZW50UGFja2V0Qnl0ZU9mZnNldCA9IHN0ZDo6
bnVsbG9wdDsKICAgICBtX2N1cnJlbnRQYWNrZXRTaXplID0gc3RkOjpudWxsb3B0OwogCi0gICAg
YXV0byBzYW1wbGVEdXJhdGlvbiA9IENNVGltZUdldFNlY29uZHMoQ01UaW1lU3VidHJhY3QocHJl
c2VudGF0aW9uVGltZSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lKSkgKyBDTVRpbWVHZXRTZWNv
bmRzKG1fcGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7CisgICAgYXV0byBzYW1wbGVEdXJh
dGlvbiA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhQQUw6OkNNVGltZVN1YnRyYWN0KHByZXNlbnRh
dGlvblRpbWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgUEFMOjpDTVRpbWVHZXRTZWNv
bmRzKG1fcGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7CiAgICAgaWYgKHNhbXBsZUR1cmF0
aW9uID49IG1fbWluaW11bVNhbXBsZUR1cmF0aW9uKQogICAgICAgICBjcmVhdGVTYW1wbGVCdWZm
ZXIobWV0YWRhdGEucG9zaXRpb24pOwogCkBAIC0xMzI0LDIxICsxMzIyLDIxIEBAIHZvaWQgU291
cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihz
dGQ6Om9wdGlvbmFsPHNpCiAgICAgQVNTRVJUKCFtX3BhY2tldERhdGEuaXNFbXB0eSgpKTsKIAog
ICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJy
ID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgMCwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDTUJsb2NrQnVmZmVy
QXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6
Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBu
dWxscHRyLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwg
bnVsbHB0ciwgMCwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDTUJsb2NrQnVmZmVyQXNz
dXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAg
IFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVt
b3J5QmxvY2sgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihibG9ja0J1ZmZlcik7CiAKLSAgICBlcnIgPSBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhtX3BhY2tldERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0
KCksIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpKTsKKyAgICBlcnIgPSBQQUw6OkNNQmxv
Y2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzKG1fcGFja2V0RGF0YS5kYXRhKCksIGJ1ZmZlci5nZXQo
KSwgMCwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCkpOwogICAgIGlmIChlcnIpIHsKICAgICAg
ICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRh
Qnl0ZXMgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBlcnIg
PSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24oKS5nZXQo
KSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuc2l6ZSgpLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUs
IG1fcGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnJhd1NhbXBsZUJ1ZmZlcik7CisgICAgZXJy
ID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRp
b25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24o
KS5nZXQoKSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuc2l6ZSgpLCBtX3NhbXBsZVByZXNlbnRhdGlv
blRpbWUsIG1fcGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAg
ICAgaWYgKGVycikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAl
ZCIsIGVycik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KaW5kZXggZTlm
ODZkZWE0MzhlODk1ZTYzZGJkZTA3YzRkOTVmOWI1YWVmMThjYy4uYWE3MzZjZjE0OWE0NzRiYTI2
M2NhYWNkNjY0MmRlNzhmNzc4ODc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KQEAgLTQ3LDcg
KzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwog
dXNpbmcgbmFtZXNwYWNlIHdlYm07CiAKIFZQOVRlc3RpbmdPdmVycmlkZXMmIFZQOVRlc3RpbmdP
dmVycmlkZXM6OnNpbmdsZXRvbigpCkBAIC0zNjIsMTEgKzM2MSwxMSBAQCBzdGF0aWMgQ0ZTdHJp
bmdSZWYgY29udmVydFRvQ01Db2xvclByaW1hcmllcyh1aW50OF90IHByaW1hcmllcykKICAgICBj
YXNlIFZQQ29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVzOjpTTVBURV9TVF8yNDA6CiAgICAgICAg
IHJldHVybiBrQ1ZJbWFnZUJ1ZmZlckNvbG9yUHJpbWFyaWVzX1NNUFRFX0M7CiAgICAgY2FzZSBW
UENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfUlBfNDMxXzI6Ci0gICAgICAgIHJl
dHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMzsKKyAgICAgICAg
cmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7CiAg
ICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfRUdfNDMyXzE6Ci0g
ICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NTsK
KyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19Q
M19ENjU7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6QlRfMjAyMF9O
b25jb25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1h
dERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMDsKICAgICB9CiAKICAgICByZXR1
cm4gbnVsbHB0cjsKQEAgLTQyMCwxOCArNDE5LDE4IEBAIHN0YXRpYyBDRlN0cmluZ1JlZiBjb252
ZXJ0VG9DTVRyYW5zZmVyRnVuY3Rpb24odWludDhfdCBjaGFyYWN0ZXJpc3RpY3MpCiAgICAgY2Fz
ZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfMjQwOgog
ICAgICAgICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJUcmFuc2ZlckZ1bmN0aW9uX1NNUFRFXzI0ME1f
MTk5NTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpT
TVBURV9TVF8yMDg0OgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFE7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BROwogICAgIGNhc2Ug
VlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBfMTBiaXQ6CiAg
ICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6QlRfMjAyMF8x
MmJpdDoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvblRy
YW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5z
ZmVyQ2hhcmFjdGVyaXN0aWNzOjpTTVBURV9TVF80MjhfMToKLSAgICAgICAgcmV0dXJuIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMTsKKyAgICAgICAg
cmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NU
XzQyOF8xOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6
OkJUXzIxMDBfSExHOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEc7CiAgICAgY2FzZSBWUENv
bmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6SUVDXzYxOTY2XzJfMToKLSAgICAg
ICAgcmV0dXJuIGNhbkxvYWRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9zUkdCKCkgPyBQQUw6OmdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiBQQUw6OmNh
bkxvYWRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdC
KCkgPyBQQUw6OmdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX3NSR0IoKSA6IG51bGxwdHI7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNo
YXJhY3RlcmlzdGljczo6TGluZWFyOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRp
b25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcjsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcjsKICAgICB9CiAKICAgICByZXR1cm4g
bnVsbHB0cjsKQEAgLTQ2Nyw3ICs0NjYsNyBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRv
Q01ZQ2JDUk1hdHJpeCh1aW50OF90IGNvZWZmaWNpZW50cykKIHsKICAgICBzd2l0Y2ggKGNvZWZm
aWNpZW50cykgewogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uTWF0cml4Q29lZmZpY2llbnRzOjpC
VF8yMDIwX05vbmNvbnN0YW50X0x1bWluYW5jZToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERl
c2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NN
Rm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwOwogICAgIGNhc2UgVlBDb25m
aWd1cmF0aW9uTWF0cml4Q29lZmZpY2llbnRzOjpCVF80NzBfN19CRzoKICAgICBjYXNlIFZQQ29u
ZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNjAxXzc6CiAgICAgICAgIHJldHVybiBr
Q1ZJbWFnZUJ1ZmZlcllDYkNyTWF0cml4X0lUVV9SXzYwMV80OwpAQCAtNTQzLDExICs1NDIsMTEg
QEAgc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVGb3JtYXRE
ZXNjcmlwdGlvbkZyb21WUENvZGVjQ29uZmkKICAgICBDRlR5cGVSZWYgY29uZmlndXJhdGlvblZh
bHVlc1tdID0geyBkYXRhLmdldCgpIH07CiAgICAgYXV0byBjb25maWd1cmF0aW9uRGljdCA9IGFk
b3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbmZpZ3VyYXRp
b25LZXlzLCBjb25maWd1cmF0aW9uVmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGNvbmZpZ3VyYXRp
b25LZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25h
cnlWYWx1ZUNhbGxCYWNrcykpOwogCi0gICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc0tl
eXMgeyBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVu
c2lvbkF0b21zIH07CisgICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc0tleXMgeyBQQUw6
OmtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9u
QXRvbXMgfTsKICAgICBWZWN0b3I8Q0ZUeXBlUmVmPiBleHRlbnNpb25zVmFsdWVzID0geyBjb25m
aWd1cmF0aW9uRGljdC5nZXQoKSB9OwogCiAgICAgaWYgKHJlY29yZC52aWRlb0Z1bGxSYW5nZUZs
YWcgPT0gVlBDb25maWd1cmF0aW9uUmFuZ2U6OkZ1bGxSYW5nZSkgewotICAgICAgICBleHRlbnNp
b25zS2V5cy5hcHBlbmQoa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlk
ZW8pOworICAgICAgICBleHRlbnNpb25zS2V5cy5hcHBlbmQoUEFMOjprQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbyk7CiAgICAgICAgIGV4dGVuc2lvbnNWYWx1ZXMu
YXBwZW5kKGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbi5tbQppbmRleCBjZWExNTZhZTJmYmUyNWFkYTAwNzY2OGU5MWQ1MGU1NjFj
NjQyZTRlLi44ZWVmM2IyZWE2MDRiZDE5ODNkNzdkMzhiZjUyMWE4ZDIxZjIwZWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCkBAIC00Myw5ICs0MywxMiBAQAog
I2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgIlZpZGVvVG9vbGJveFNvZnRM
aW5rLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KLVdURl9ERUNMQVJFX0NGX1RZUEVfVFJB
SVQoQ01TYW1wbGVCdWZmZXIpOworLy8gRXF1aXZhbGVudCB0byBXVEZfREVDTEFSRV9DRl9UWVBF
X1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKKy8vIE5lZWRlZCBkdWUgdG8gcmVxdWlyZW1lbnQgb2Yg
c3BlY2lmeWluZyB0aGUgUEFMIG5hbWVzcGFjZS4KK3RlbXBsYXRlIDw+CitzdHJ1Y3QgV1RGOjpD
RlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJlZj4geworICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBl
SUQgdHlwZUlEKHZvaWQpIHsgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsg
fQorfTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Miw3ICs3NSw3IEBAIHZvaWQgV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZShDTVRpbWViYXNlUmVmIHRpbWVi
YXNlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01U
aW1lYmFzZVJlbW92ZVRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1l
clNvdXJjZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVJlbW92ZVRpbWVyRGlzcGF0
Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICBt
X3RpbWViYXNlID0gdGltZWJhc2U7CiAKQEAgLTg0LDcgKzg3LDcgQEAgdm9pZCBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGRpc3BhdGNoX2FjdGl2YXRlKG1fdGltZXJTb3Vy
Y2UuZ2V0KCkpOwogICAgICAgICB9Ci0gICAgICAgIENNVGltZWJhc2VBZGRUaW1lckRpc3BhdGNo
U291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQ
QUw6OkNNVGltZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1f
dGltZXJTb3VyY2UuZ2V0KCkpOwogICAgIH0KIH0KIApAQCAtMTA0LDEyICsxMDcsMTIgQEAgdm9p
ZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVk
aWFEYXRhKCkKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxl
KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgYm9vbCBkaXNwbGF5aW5nKQogewogICAg
IENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0
ZW1Db3VudCkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVyLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5m
b0FycmF5OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5v
RXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZl
ciwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKKyAgICBpZiAo
bm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1w
bGVCdWZmZXIsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIENNQnVmZmVyQ2FsbGJhY2tzIGNvbnRhaW5zIDY0LWJp
dCBwb2ludGVycyB0aGF0IGFyZW4ndCA4LWJ5dGUgYWxpZ25lZC4gVG8gc3VwcHJlc3MgdGhlIGxp
bmtlcgpAQCAtMTM0LDcgKzEzNyw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwKICAgICAgICAg
c3RhdGljX2Fzc2VydChzaXplb2YoY2FsbGJhY2tzLmNhbGxiYWNrcy52ZXJzaW9uKSA9PSBzaXpl
b2YodWludDMyX3QpLCAiVmVyc2lvbiBmaWVsZCBtdXN0IGJlIDQgYnl0ZXMiKTsKICAgICAgICAg
c3RhdGljX2Fzc2VydChhbGlnbm9mKEJ1ZmZlckNhbGxiYWNrcykgPT0gNCwgIkNNQnVmZmVyQ2Fs
bGJhY2tzIHN0cnVjdCBtdXN0IGhhdmUgNCBieXRlIGFsaWdubWVudCIpOwogCi0gICAgICAgIENN
QnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwg
JmNhbGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJR
dWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJh
Y2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKICAgICAgICAgbV9wcm9kdWNlclF1ZXVlID0gYWRv
cHRDRihvdXRRdWV1ZSk7CiAgICAgfQogCkBAIC0xNTYsNyArMTU5LDcgQEAgdm9pZCBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyLAogICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihjYWxsYmFja3MuY2FsbGJh
Y2tzLnZlcnNpb24pID09IHNpemVvZih1aW50MzJfdCksICJWZXJzaW9uIGZpZWxkIG11c3QgYmUg
NCBieXRlcyIpOwogICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoQnVmZmVyQ2FsbGJhY2tz
KSA9PSA0LCAiQ01CdWZmZXJDYWxsYmFja3Mgc3RydWN0IGFsaWdubWVudCBtdXN0IGJlIDQiKTsK
IAotICAgICAgICBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhp
bXVtQ2FwYWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOworICAgICAgICBQ
QUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBh
Y2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fY29uc3Vt
ZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0UXVldWUpOwogICAgIH0KIApAQCAtMTc3LDIwICsxODAsMjAg
QEAgYm9vbCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZShD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGIKICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgYXV0byBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1l
KG1fdGltZWJhc2UuZ2V0KCkpOwotICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gQ01T
YW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKLSAgICBhdXRvIGR1
cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOwotICAgIGF1dG8gcHJl
c2VudGF0aW9uRW5kVGltZSA9IENNVGltZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0
aW9uKTsKLSAgICBpZiAoQ01UaW1lQ29tcGFyZShwcmVzZW50YXRpb25FbmRUaW1lLCBjdXJyZW50
VGltZSkgPj0gMCkKKyAgICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGlt
ZShtX3RpbWViYXNlLmdldCgpKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKKyAgICBh
dXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7Cisg
ICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gUEFMOjpDTVRpbWVBZGQocHJlc2VudGF0aW9u
U3RhcnRUaW1lLCBkdXJhdGlvbik7CisgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShwcmVzZW50
YXRpb25FbmRUaW1lLCBjdXJyZW50VGltZSkgPj0gMCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZh
bHNlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IGZvciAoQ0ZJbmRleCBpbmRleCA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1l
bnRzKTsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgewogICAgICAgICBDRkRpY3Rpb25hcnlSZWYg
YXR0YWNobWVudERpY3QgPSAoQ0ZEaWN0aW9uYXJ5UmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
YXR0YWNobWVudHMsIGluZGV4KTsKLSAgICAgICAgQ0ZCb29sZWFuUmVmIGRlcGVuZGVkT24gPSAo
Q0ZCb29sZWFuUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGF0dGFjaG1lbnREaWN0LCBrQ01TYW1w
bGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzKTsKKyAgICAgICAgQ0ZCb29sZWFu
UmVmIGRlcGVuZGVkT24gPSAoQ0ZCb29sZWFuUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGF0dGFj
aG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhl
cnMpOwogICAgICAgICBpZiAoZGVwZW5kZWRPbiAmJiAhQ0ZCb29sZWFuR2V0VmFsdWUoZGVwZW5k
ZWRPbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjAzLDE0ICsyMDYs
MTQgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29tcHJlc3Np
b25TZXNzaW9uRm9yU2FtcGxlKENNU2FtcGxlQnUKICAgICBpZiAoaXNJbnZhbGlkYXRlZCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9G
b3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2Ft
cGxlKTsKKyAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlw
dGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOwog
ICAgIGlmIChtX2RlY29tcHJlc3Npb25TZXNzaW9uICYmICFWVERlY29tcHJlc3Npb25TZXNzaW9u
Q2FuQWNjZXB0Rm9ybWF0RGVzY3JpcHRpb24obV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSwg
dmlkZW9Gb3JtYXREZXNjcmlwdGlvbikpIHsKICAgICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lv
bldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMobV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSk7
CiAgICAgICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24gPSBudWxscHRyOwogICAgIH0KIAogICAg
IGlmICghbV9kZWNvbXByZXNzaW9uU2Vzc2lvbikgewotICAgICAgICBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9y
bWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKKyAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0
RGVzY3JpcHRpb24oc2FtcGxlKTsKICAgICAgICAgYXV0byB2aWRlb0RlY29kZXJTcGVjaWZpY2F0
aW9uID0gQHsgKF9fYnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlv
bl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyOiBAKCBtX2hhcmR3YXJlRGVj
b2RlckVuYWJsZWQgKSB9OwogCiAgICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlczsKQEAg
LTI1Niw3ICsyNTksNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2Rl
U2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYm9vbCBkaQogCiAgICAgTW9ub3Rvbmlj
VGltZSBzdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICBWVERlY29tcHJlc3Np
b25TZXNzaW9uRGVjb2RlRnJhbWVXaXRoT3V0cHV0SGFuZGxlcihtX2RlY29tcHJlc3Npb25TZXNz
aW9uLmdldCgpLCBzYW1wbGUsIGZsYWdzLCBudWxscHRyLCBbdGhpcywgZGlzcGxheWluZywgc3Rh
cnRUaW1lXShPU1N0YXR1cyBzdGF0dXMsIFZURGVjb2RlSW5mb0ZsYWdzIGluZm9GbGFncywgQ1ZJ
bWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwg
Q01UaW1lIHByZXNlbnRhdGlvbkR1cmF0aW9uKSB7Ci0gICAgICAgIGRvdWJsZSBkZWx0YVJhdGlv
ID0gKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5zZWNvbmRzKCkgLyBDTVRpbWVH
ZXRTZWNvbmRzKHByZXNlbnRhdGlvbkR1cmF0aW9uKTsKKyAgICAgICAgZG91YmxlIGRlbHRhUmF0
aW8gPSAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLnNlY29uZHMoKSAvIFBBTDo6
Q01UaW1lR2V0U2Vjb25kcyhwcmVzZW50YXRpb25EdXJhdGlvbik7CiAKICAgICAgICAgdXBkYXRl
UW9zV2l0aERlY29kZVRpbWVTdGF0aXN0aWNzKGRlbHRhUmF0aW8pOwogICAgICAgICBoYW5kbGVE
ZWNvbXByZXNzaW9uT3V0cHV0KGRpc3BsYXlpbmcsIHN0YXR1cywgaW5mb0ZsYWdzLCBpbWFnZUJ1
ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBwcmVzZW50YXRpb25EdXJhdGlvbik7CkBAIC0y
ODksNyArMjkyLDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURl
Y29tcHJlc3Npb25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKICAgICAgICAgKyttX2Ryb3Bw
ZWRWaWRlb0ZyYW1lczsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiByYXdJbWFn
ZUJ1ZmZlckRlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8
IG5vRXJyICE9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlw
dGlvbikpIHsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8IG5vRXJyICE9IFBBTDo6Q01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgcmF3SW1hZ2VCdWZmZXIsICZyYXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uKSkgewogICAgICAg
ICArK21fY29ycnVwdGVkVmlkZW9GcmFtZXM7CiAgICAgICAgIC0tbV9mcmFtZXNCZWluZ0RlY29k
ZWQ7CiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMDQs
NyArMzA3LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29t
cHJlc3Npb25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKICAgICB9OwogCiAgICAgQ01TYW1w
bGVCdWZmZXJSZWYgcmF3SW1hZ2VTYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChub0Vy
ciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdldCgpLCAm
aW1hZ2VCdWZmZXJUaW1pbmcsICZyYXdJbWFnZVNhbXBsZUJ1ZmZlcikpIHsKKyAgICBpZiAobm9F
cnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFs
bG9jYXRvckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdl
dCgpLCAmaW1hZ2VCdWZmZXJUaW1pbmcsICZyYXdJbWFnZVNhbXBsZUJ1ZmZlcikpIHsKICAgICAg
ICAgKyttX2NvcnJ1cHRlZFZpZGVvRnJhbWVzOwogICAgICAgICAtLW1fZnJhbWVzQmVpbmdEZWNv
ZGVkOwogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzE4
LDExICszMjEsMTEgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURl
Y29tcHJlc3Npb25PdXRwdXQoYm9vbCBkaXNwbGF5aW5nLCBPU1MKIAogUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0Rmlyc3RWaWRlb0Zy
YW1lKCkKIHsKLSAgICBpZiAoIW1fcHJvZHVjZXJRdWV1ZSB8fCBDTUJ1ZmZlclF1ZXVlSXNFbXB0
eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKQorICAgIGlmICghbV9wcm9kdWNlclF1ZXVlIHx8IFBB
TDo6Q01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJl
bnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01C
dWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOwotICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVy
UmVmKUNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7Cisg
ICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihj
aGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVl
dWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOworICAgIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKICAgICBBU1NFUlQo
Q0ZHZXRUeXBlSUQoaW1hZ2VCdWZmZXIuZ2V0KCkpID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQo
KSk7CiAKICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzM1LDI1
ICszMzgsMjUgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0Rl
cXVldWUoKQogICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byB0aW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdl
dCgpKSk7CisgICAgYXV0byB0aW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VH
ZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoJXApIC0gcHVyZ2luZyBhbGwgc2FtcGxl
cyBiZWZvcmUgdGltZSglcykiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsK
IAogICAgIE1lZGlhVGltZSBuZXh0RmlyZVRpbWUgPSBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5p
dGVUaW1lKCk7CiAgICAgYm9vbCByZWxlYXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAg
d2hpbGUgKENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENN
U2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKSkgewotICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0
b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNh
bXBsZSkpOwotICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENN
U2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1w
bGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJS
ZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsK
KyAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBs
ZSkpOworICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRp
bWUgcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVy
YXRpb247CiAgICAgICAgIGlmICh0aW1lID4gcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wKSB7Ci0g
ICAgICAgICAgICBDRlJlbGVhc2UoQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9k
dWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1
ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAg
IHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRv
TWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1l
KENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVl
LmdldCgpKSk7CisgICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01C
dWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpOworICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZl
clF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkp
OwogICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9t
YXRpY0RlcXVldWUoJXApIC0gcXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcoYmVnaW4p
LnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKIApA
QCAtMzY1LDcgKzM2OCw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRv
bWF0aWNEZXF1ZXVlKCkKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEo
KTsKIAogICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21h
dGljRGVxdWV1ZSglcCkgLSBxdWV1ZSBlbXB0eSIsIHRoaXMpOwotICAgIENNVGltZWJhc2VTZXRU
aW1lckRpc3BhdGNoU291cmNlTmV4dEZpcmVUaW1lKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJT
b3VyY2UuZ2V0KCksIFBBTDo6dG9DTVRpbWUobmV4dEZpcmVUaW1lKSwgMCk7CisgICAgUEFMOjpD
TVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZU5leHRGaXJlVGltZShtX3RpbWViYXNlLmdl
dCgpLCBtX3RpbWVyU291cmNlLmdldCgpLCBQQUw6OnRvQ01UaW1lKG5leHRGaXJlVGltZSksIDAp
OwogfQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRT
YW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBib29sIGRpc3BsYXlpbmcpCkBAIC0zODMs
MTcgKzM4NiwxNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURl
Y29kZWRTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLAogICAgIGJvb2wgc2hvdWxkTm90
aWZ5ID0gdHJ1ZTsKIAogICAgIGlmIChkaXNwbGF5aW5nICYmIG1fdGltZWJhc2UpIHsKLSAgICAg
ICAgYXV0byBjdXJyZW50UmF0ZSA9IENNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkp
OwotICAgICAgICBhdXRvIGN1cnJlbnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNl
R2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7Ci0gICAgICAgIGF1dG8gcHJlc2VudGF0aW9uU3Rh
cnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRp
bWVTdGFtcChzYW1wbGUpKTsKLSAgICAgICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJl
c2VudGF0aW9uU3RhcnRUaW1lICsgUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1
cmF0aW9uKHNhbXBsZSkpOworICAgICAgICBhdXRvIGN1cnJlbnRSYXRlID0gUEFMOjpDTVRpbWVi
YXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKKyAgICAgICAgYXV0byBjdXJyZW50VGltZSA9
IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgp
KSk7CisgICAgICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOwor
ICAgICAgICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBwcmVzZW50YXRpb25TdGFydFRpbWUg
KyBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUp
KTsKICAgICAgICAgaWYgKGN1cnJlbnRUaW1lIDwgcHJlc2VudGF0aW9uU3RhcnRUaW1lIHx8IGN1
cnJlbnRUaW1lID49IHByZXNlbnRhdGlvbkVuZFRpbWUpCiAgICAgICAgICAgICBzaG91bGROb3Rp
ZnkgPSBmYWxzZTsKIAogICAgICAgICBpZiAoY3VycmVudFJhdGUgPiAwICYmIHByZXNlbnRhdGlv
bkVuZFRpbWUgPCBjdXJyZW50VGltZSkgewogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgICAg
IGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNl
bnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICAgICAgICAgIGF1
dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9u
VGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgYXV0byBiZWdp
biA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRp
b25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBhdXRvIGVu
ZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9u
VGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgTE9HKE1lZGlh
LCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSglcCkg
LSBkcm9wcGluZyBmcmFtZSBsYXRlIGJ5ICVzLCBmcmFtZXNCZWluZ0RlY29kZWQoJWQpLCBwcm9k
dWNlclF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHByZXNlbnRhdGlvbkVuZFRpbWUg
LSBjdXJyZW50VGltZSkudXRmOCgpLmRhdGEoKSwgbV9mcmFtZXNCZWluZ0RlY29kZWQsIHRvU3Ry
aW5nKGJlZ2luKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwog
I2VuZGlmCiAgICAgICAgICAgICArK21fZHJvcHBlZFZpZGVvRnJhbWVzOwpAQCAtNDAxLDE3ICs0
MDQsMTcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVk
U2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKICAgICAgICAgfQogICAgIH0KIAotICAg
IENNQnVmZmVyUXVldWVFbnF1ZXVlKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxlKTsKKyAg
ICBQQUw6OkNNQnVmZmVyUXVldWVFbnF1ZXVlKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxl
KTsKIAogI2lmICFMT0dfRElTQUJMRUQKLSAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGlt
ZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1
ZXVlLmdldCgpKSk7Ci0gICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVl
dWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0g
ICAgYXV0byBwcmVzZW50YXRpb25UaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZl
ckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKKyAgICBhdXRvIGJlZ2luID0gUEFM
Ojp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVT
dGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRp
YVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IFBBTDo6dG9N
ZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1w
bGUpKTsKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVl
dWVEZWNvZGVkU2FtcGxlKCVwKSAtIHByZXNlbnRhdGlvblRpbWUoJXMpLCBmcmFtZXNCZWluZ0Rl
Y29kZWQoJWQpLCBwcm9kdWNlclF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHByZXNl
bnRhdGlvblRpbWUpLnV0ZjgoKS5kYXRhKCksIG1fZnJhbWVzQmVpbmdEZWNvZGVkLCB0b1N0cmlu
ZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNl
bmRpZgogCiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENNVGltZWJhc2VTZXRUaW1lckRp
c3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNv
dXJjZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3Vy
Y2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgp
KTsKIAogICAgIGlmICghbV9oYXNBdmFpbGFibGVGcmFtZUNhbGxiYWNrKQogICAgICAgICByZXR1
cm47CkBAIC00MjYsNyArNDI5LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmVucXVldWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKIAogYm9vbCBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkgY29u
c3QKIHsKLSAgICBDTUl0ZW1Db3VudCBwcm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVlID8g
Q01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOwor
ICAgIENNSXRlbUNvdW50IHByb2R1Y2VyQ291bnQgPSBtX3Byb2R1Y2VyUXVldWUgPyBQQUw6OkNN
QnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpIDogMDsKICAg
ICByZXR1cm4gbV9mcmFtZXNCZWluZ0RlY29kZWQgKyBwcm9kdWNlckNvdW50IDw9IGtIaWdoV2F0
ZXJNYXJrOwogfQogCkBAIC00NTIsNyArNDU1LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OnN0b3BSZXF1ZXN0aW5nTWVkaWFEYXRhKCkKIAogdm9pZCBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPiBjYWxsYmFjaykKIHsKLSAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNl
clF1ZXVlICYmICFDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7
CisgICAgaWYgKGNhbGxiYWNrICYmIG1fcHJvZHVjZXJRdWV1ZSAmJiAhUEFMOjpDTUJ1ZmZlclF1
ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CiAgICAgICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbY2FsbGJhY2tdIHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAg
ICAgIH0pOwpAQCAtNDYzLDcgKzQ2Niw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjpub3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFtZShzdGQ6OmZ1bmN0aW9uCiAKIFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Omlt
YWdlRm9yVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIEltYWdlRm9yVGltZUZsYWdzIGZsYWdz
KQogewotICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KSB7CisgICAgaWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdl
dCgpKSkgewogICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmltYWdlRm9yVGltZSglcCkgLSB0aW1lKCVzKSwgcXVldWUgZW1wdHkiLCB0aGlzLCB0b1N0cmlu
Zyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpA
QCAtNDcxLDkgKzQ3NCw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiAgICAgYm9vbCBhbGxv
d0VhcmxpZXIgPSBmbGFncyA9PSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OkFsbG93RWFy
bGllcjsKICAgICBib29sIGFsbG93TGF0ZXIgPSBmbGFncyA9PSBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OkFsbG93TGF0ZXI7CiAKLSAgICBNZWRpYVRpbWUgc3RhcnRUaW1lID0gUEFMOjp0
b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9w
cm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgTWVkaWFUaW1lIHN0YXJ0VGltZSA9IFBBTDo6dG9N
ZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAo
bV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIE1lZGlhVGlt
ZSBlbmRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0
aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIE1lZGlhVGltZSBlbmRU
aW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRp
b25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAjZW5kaWYKICAgICBpZiAoIWFs
bG93TGF0ZXIgJiYgdGltZSA8IHN0YXJ0VGltZSkgewogICAgICAgICBMT0coTWVkaWEsICJXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZSglcCkgLSB0aW1lKCVzKSB0b28g
ZWFybHkgZm9yIHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5k
YXRhKCksIHRvU3RyaW5nKHN0YXJ0VGltZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kVGlt
ZSkudXRmOCgpLmRhdGEoKSk7CkBAIC00ODIsMjQgKzQ4NSwyNCBAQCBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29u
c3QgTWVkaQogCiAgICAgYm9vbCByZWxlYXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAg
d2hpbGUgKENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENN
U2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKSkgewotICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0
b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNh
bXBsZSkpOwotICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENN
U2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1w
bGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJS
ZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsK
KyAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBs
ZSkpOworICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRp
bWUgcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVy
YXRpb247CiAgICAgICAgIGlmICghYWxsb3dMYXRlciAmJiBwcmVzZW50YXRpb25UaW1lc3RhbXAg
PiB0aW1lKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGlmICghYWxsb3dF
YXJsaWVyICYmIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA8IHRpbWUpIHsKLSAgICAgICAgICAg
IENGUmVsZWFzZShDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpKTsKKyAgICAgICAgICAgIENGUmVsZWFzZShQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVl
QW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVsZWFzZWRJ
bWFnZUJ1ZmZlcnMgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAot
ICAgICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9w
dENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZURlcXVl
dWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOwotICAgICAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOworICAgICAgICBSZXRh
aW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRf
Y2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJl
dGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7CisgICAgICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKICAgICAgICAgQVNTRVJU
KENGR2V0VHlwZUlEKGltYWdlQnVmZmVyLmdldCgpKSA9PSBDVlBpeGVsQnVmZmVyR2V0VHlwZUlE
KCkpOwogCiAgICAgICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICAgICAgQ01UaW1lYmFzZVNl
dFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBt
X3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVy
RGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVy
U291cmNlLmdldCgpKTsKIAogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0
YSgpOwogCkBAIC01MDgsNyArNTExLDcgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKICAgICB9
CiAKICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0
Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNl
LmdldCgpKTsKKyAgICAgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRv
RmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwog
CiAgICAgaWYgKHJlbGVhc2VkSW1hZ2VCdWZmZXJzKQogICAgICAgICBtYXliZUJlY29tZVJlYWR5
Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtNTIwLDkgKzUyMyw5IEBAIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25z
dCBNZWRpCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQogewogICAg
IG1fZGVjb21wcmVzc2lvblF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0
KHByb3RlY3RlZFRoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01C
dWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQoKSk7CiAg
ICAgICAgIG1fZW5xdWVpbmdRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFtwcm90ZWN0ZWRUaGlzID0gV1RG
TW92ZShwcm90ZWN0ZWRUaGlzKV0gewotICAgICAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHBy
b3RlY3RlZFRoaXMtPm1fY29uc3VtZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgICAgICBQQUw6OkNN
QnVmZmVyUXVldWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX2NvbnN1bWVyUXVldWUuZ2V0KCkpOwog
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9mcmFtZXNTaW5jZUxhc3RRb3NDaGVjayA9IDA7
CiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2N1cnJlbnRRb3NUaWVyID0gMDsKICAgICAg
ICAgICAgIHByb3RlY3RlZFRoaXMtPnJlc2V0UW9zVGllcigpOwpAQCAtNTMzLDI0ICs1MzYsMjQg
QEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmZsdXNoKCkKIENNVGltZSBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldERlY29kZVRpbWUoQ01CdWZmZXJSZWYgYnVmLCB2
b2lkKikKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8
Q01TYW1wbGVCdWZmZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RGVj
b2RlVGltZVN0YW1wKHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRE
ZWNvZGVUaW1lU3RhbXAoc2FtcGxlKTsKIH0KIAogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZShDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1
ZmZlclJlZj4oYnVmKTsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25U
aW1lU3RhbXAoc2FtcGxlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNl
bnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOwogfQogCiBDTVRpbWUgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjpnZXREdXJhdGlvbihDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJl
Zj4oYnVmKTsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOwor
ICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKIH0KIAog
Q0ZDb21wYXJpc29uUmVzdWx0IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1
ZmZlcnMoQ01CdWZmZXJSZWYgYnVmMSwgQ01CdWZmZXJSZWYgYnVmMiwgdm9pZCogcmVmY29uKQog
ewotICAgIHJldHVybiAoQ0ZDb21wYXJpc29uUmVzdWx0KUNNVGltZUNvbXBhcmUoZ2V0UHJlc2Vu
dGF0aW9uVGltZShidWYxLCByZWZjb24pLCBnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjIsIHJlZmNv
bikpOworICAgIHJldHVybiAoQ0ZDb21wYXJpc29uUmVzdWx0KVBBTDo6Q01UaW1lQ29tcGFyZShn
ZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjEsIHJlZmNvbiksIGdldFByZXNlbnRhdGlvblRpbWUoYnVm
MiwgcmVmY29uKSk7CiB9CiAKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpyZXNl
dFFvc1RpZXIoKQpAQCAtNjAyLDcgKzYwNSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjp1cGRhdGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MoZG91YmxlIHJhdGlvCiAg
ICAgaWYgKCFtX3RpbWViYXNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBkb3VibGUgcmF0ZSA9
IENNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOworICAgIGRvdWJsZSByYXRlID0g
UEFMOjpDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKICAgICBpZiAoIXJhdGUp
CiAgICAgICAgIHJhdGUgPSAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQppbmRleCBlM2Yw
OTI3MDM0OGU3YTVhZWY3MjY2ZWI0NzJkZGJhZTczYmMzNDA3Li5mMzE2OWFiYzAyNzcwODJmMGNm
Y2U0NzI2NzllMTEwNzk3YzhjOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KQEAgLTQy
LDcgKzQyLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIENG
U3RyaW5nUmVmIGN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKQogewpAQCAtMTM4LDcgKzEzNyw3IEBA
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252
ZXJ0UGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJl
ZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGNvbnZl
cnRQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciks
IHNpemUpOworICAgIHJldHVybiBjb252ZXJ0UGl4ZWxCdWZmZXIoUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUpOwogfQogCiBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1
ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUp
CkBAIC0xNDYsOSArMTQ1LDkgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBpZiAoIXNv
dXJjZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGRlc2NyaXB0
aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIpOwot
ICAgIGF1dG8gc291cmNlU2l6ZSA9IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGRlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7Ci0gICAg
YXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSk7CisgICAgYXV0byBkZXNjcmlwdGlv
biA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIp
OworICAgIGF1dG8gc291cmNlU2l6ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVzY3JpcHRpb24sIHRydWUsIHRydWUp
KTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4o
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOwogICAgIGlm
IChzaXplID09IGV4cGFuZGVkSW50U2l6ZShzb3VyY2VTaXplKSAmJiBtX3BpeGVsRm9ybWF0ID09
IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQogICAgICAgICBy
ZXR1cm4gcmV0YWluUHRyKHNvdXJjZUJ1ZmZlcik7CiAKQEAgLTE2MCw3ICsxNTksNyBAQCBSZXRh
aW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRD
TVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENNSXRl
bUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgYXV0byBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIDEsIG51bGxwdHIsICZpdGVtQ291
bnQpOworICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShzb3VyY2VCdWZmZXIsIDEsIG51bGxwdHIsICZpdGVtQ291bnQpOwogICAgIGlm
IChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5IGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGlj
X2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNjksNyAr
MTY4LDcgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBDTVNhbXBsZVRpbWluZ0luZm8q
IHRpbWVpbmdJbmZvUHRyID0gbnVsbHB0cjsKICAgICBpZiAoaXRlbUNvdW50KSB7CiAgICAgICAg
IHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgICAgIHN0YXR1cyA9IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgaXRlbUNvdW50
LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsKKyAgICAgICAgc3RhdHVzID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIGl0
ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CiAgICAgICAgIGlmIChz
dGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZVRpbWluZ0luZm9BcnJheSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRp
Y19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE3
OCwxNCArMTc3LDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgfQogCiAgICAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAg
ICBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERl
c2NyaXB0aW9uKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVm
ZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIp
IHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
b252ZXJ0Q01TYW1wbGVCdWZmZXI6IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvcklt
YWdlQnVmZmVyIHJldHVybmVkOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJlc2l6
ZWRTYW1wbGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdp
dGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5n
ZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWVpbmdJbmZvUHRyLCAmcmVzaXplZFNhbXBsZUJ1
ZmZlcik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aElt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgp
LCBmb3JtYXREZXNjcmlwdGlvbiwgdGltZWluZ0luZm9QdHIsICZyZXNpemVkU2FtcGxlQnVmZmVy
KTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0g
bm9FcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IGZhaWxlZCB0byBjcmVhdGUgQ01TYW1wbGVCdWZm
ZXIgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CkBAIC0y
MzcsMTYgKzIzNiwxNiBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKENWUGl4ZQogICAgIH0KIAogICAgIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgYXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5n
ZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlv
bik7CiAgICAgaWYgKHN0YXR1cykgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRpYWxp
emUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNf
Y2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgYXV0byBjbVRpbWUgPSB0b0NN
VGltZShzYW1wbGVUaW1lKTsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsg
a0NNVGltZUludmFsaWQsIGNtVGltZSwgY21UaW1lIH07Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVC
dWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJ
bWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1p
bmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGNtVGltZSA9IFBBTDo6dG9DTVRpbWUo
c2FtcGxlVGltZSk7CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IFBBTDo6
a0NNVGltZUludmFsaWQsIGNtVGltZSwgY21UaW1lIH07CisgICAgc3RhdHVzID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwg
JnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlw
dGlvbik7CiAgICAgaWYgKHN0YXR1cykgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIklt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRp
YWxpemUgQ01TYW1wbGVCdWZmZXIgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGlu
dD4oc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZTBkYWFjODViODczYWQ2
YWE5YjRhYjJkYjdhMDA5Y2MzN2Q0Nzg5NS4uMzJhMDQ0OTZjZmY3ZDg0MTExMjBmY2QxMzNlNmQ2
NzQyNTRhODZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXli
YWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQpAQCAtNDcsNyArNDcsNiBAQCBT
T0ZUTElOS19BVktJVF9GUkFNRVdPUksoKQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0
LCBBVlZhbHVlVGltaW5nKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2Ug
UEFMOwogCiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6UGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlQVZLaXQoUGxheWJhY2tTZXNzaW9uTW9kZWwmIG1vZGVsKQogICAgIDogbV9wbGF5ZXJD
b250cm9sbGVyKGFkb3B0TlMoW1tXZWJBVlBsYXllckNvbnRyb2xsZXIgYWxsb2NdIGluaXRdKSkK
QEAgLTE0NSw3ICsxNDQsNyBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Ojpz
ZWVrYWJsZVJhbmdlc0NoYW5nZWQoY29uc3QgVGltZVJhbmdlcyYgdGltZQogICAgICAgICBkb3Vi
bGUgc3RhcnQgPSB0aW1lUmFuZ2VzLnN0YXJ0KGkpLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAg
ICAgICBkb3VibGUgZW5kID0gdGltZVJhbmdlcy5lbmQoaSkucmVsZWFzZVJldHVyblZhbHVlKCk7
CiAKLSAgICAgICAgQ01UaW1lUmFuZ2UgcmFuZ2UgPSBDTVRpbWVSYW5nZU1ha2UoQ01UaW1lTWFr
ZVdpdGhTZWNvbmRzKHN0YXJ0LCAxMDAwKSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFy
dCwgMTAwMCkpOworICAgICAgICBDTVRpbWVSYW5nZSByYW5nZSA9IFBBTDo6Q01UaW1lUmFuZ2VN
YWtlKFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHN0YXJ0LCAxMDAwKSwgUEFMOjpDTVRpbWVN
YWtlV2l0aFNlY29uZHMoZW5kLXN0YXJ0LCAxMDAwKSk7CiAgICAgICAgIFtzZWVrYWJsZVJhbmdl
cyBhZGRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lUmFuZ2U6cmFuZ2VdXTsKICAgICB9
CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KaW5kZXggZWE0MjNjNzE3YzdhZTkxYmQ0ZWU5OTA4
N2UwN2M0ZTVjMzdlNGMzZi4uNWRmMzQ5ZmM2ZmNkZmNmYWVhNzU1NjMyMGYzYWU2ZTY2NzYzNGU5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCkBAIC0zNzMsNyArMzczLDYgQEAgLSAodm9pZClwaXBB
Y3Rpb25TdG9wOihQSVBWaWV3Q29udHJvbGxlciAqKXBpcAogQGVuZAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWM6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYyhQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VN
YWMmIHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSkKICAgICA6IG1fcGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlKHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmNwcAppbmRleCA4ODQwOTQyOTc5MjZjOGFlYmRlZjZmM2U5NTc4NDJmODM0
MjhiODkyLi5kNDE5ZTBlMTkyNTU1ZDczNjA4NTg1MWY1NGNhMDA0MGQ0NmI2NjNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCkBAIC00Miw3ICs0Miw2IEBACiAj
aW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGw+IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKE1lZGlh
U3RyZWFtUHJpdmF0ZSYgc3RyZWFtLCBjb25zdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMm
IG9wdGlvbnMpCiB7CkBAIC04OCwxMiArODcsMTIgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIK
IHsKICAgICBpZiAoc2hvdWxkTXV0ZVZpZGVvKCkpIHsKICAgICAgICAgaWYgKCFtX2JsYWNrRnJh
bWUpIHsKLSAgICAgICAgICAgIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpOwotICAgICAgICAgICAgYXV0byBkaW1lbnNpb25zID0gQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5n
ZXQoKSk7CisgICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUo
KS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgYXV0byBkaW1lbnNpb25zID0g
UEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURl
c2NyaXB0aW9uLmdldCgpKTsKICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNr
UGl4ZWxCdWZmZXIoZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQpOwogCiAgICAg
ICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBu
dWxscHRyOwotICAgICAgICAgICAgYXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUu
Z2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgICAgICAgICBhdXRvIHN0YXR1cyA9IFBB
TDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbV9ibGFja0ZyYW1lLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAg
ICAgICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhLCAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBs
ZUF2YWlsYWJsZSA6OnVuYWJsZSB0byBjcmVhdGUgYSBibGFjayBmcmFtZSBkZXNjcmlwdGlvbjog
JWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICAgICAgICAgIG1fYmxhY2tG
cmFtZSA9IG51bGxwdHI7CkBAIC0xMDMsOCArMTAyLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZm
ZXIKICAgICAgICAgfQogCiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IG51bGxw
dHI7Ci0gICAgICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvIHsga0NNVGltZUludmFs
aWQsIHRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5wcmVzZW50YXRpb25UaW1lKCkpLCB0b0NNVGltZShz
YW1wbGVCdWZmZXIuZGVjb2RlVGltZSgpKSB9OwotICAgICAgICBhdXRvIHN0YXR1cyA9IENNU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
KENWSW1hZ2VCdWZmZXJSZWYpbV9ibGFja0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlw
dGlvbi5nZXQoKSwgJnRpbWluZ0luZm8sICZzYW1wbGUpOworICAgICAgICBDTVNhbXBsZVRpbWlu
Z0luZm8gdGltaW5nSW5mbyB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6dG9DTVRpbWUoc2Ft
cGxlQnVmZmVyLnByZXNlbnRhdGlvblRpbWUoKSksIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVy
LmRlY29kZVRpbWUoKSkgfTsKKyAgICAgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1h
Z2VCdWZmZXJSZWYpbV9ibGFja0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5n
ZXQoKSwgJnRpbWluZ0luZm8sICZzYW1wbGUpOwogCiAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9F
cnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSAtIHVuYWJsZSB0byBj
cmVhdGUgYSBibGFjayBmcmFtZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA1MWEz
ZTE4YTJjZWRkM2NkNWRhOTNmMzRlYmYzNzExZTAyMGY4YjYyLi41ZTExMGVjZDdkZTM4NDYxYjQy
OTA0YTBlYjQ4ODM0MTg0M2U3NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5tbQpAQCAtMzYsMTMgKzM2LDEyIEBACiAjaW5jbHVkZSA8d3RmL1Nj
b3BlLmg+CiAKICNpbXBvcnQgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNkZWZpbmUgTE9XX1dBVEVSX1RJTUVf
SU5fU0VDT05EUyAwLjEKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2Ug
UEFMOwotCiBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxi
YWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBhdXRvIGNvbXByZXNz
b3IgPSBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPihuZXcgQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkpOwpAQCAtNTIsMTUgKzUxLDE1IEBAIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6Y3JlYXRlCiB9CiAKIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6QXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yKCkKLSAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZSB7IFdv
cmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikg
fQotICAgICwgbV9sb3dXYXRlclRpbWUgeyBDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dBVEVS
X1RJTUVfSU5fU0VDT05EUywgMTAwMCkgfQorICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikp
CisgICAgLCBtX2xvd1dhdGVyVGltZShQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FU
RVJfVElNRV9JTl9TRUNPTkRTLCAxMDAwKSkKIHsKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV9jb252
ZXJ0ZXIpIHsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAg
ICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOwogICAgICAgICBt
X2NvbnZlcnRlciA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNjgsMTkgKzY3LDE5IEBAIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBi
b29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVl
VHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBD
TUJ1ZmZlclF1ZXVlUmVmIGlucHV0QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBD
TUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVH
ZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUp
KSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgMCwgUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0
ZWRTYW1wbGVCdWZmZXJzKCksICZpbnB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1
ZmZlclF1ZXVlQ3JlYXRlIGZvciBtX2lucHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9pbnB1dEJ1ZmZlclF1
ZXVlID0gYWRvcHRDRihpbnB1dEJ1ZmZlclF1ZXVlKTsKIAogICAgIENNQnVmZmVyUXVldWVSZWYg
b3V0cHV0QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JV
bnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVy
cygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVh
dGUgZm9yIG1fb3V0cHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IGFkb3B0
Q0Yob3V0cHV0QnVmZmVyUXVldWUpOwotICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlciht
X291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1
ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwp
OworICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2Vy
X1doZW5EYXRhQmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1f
aXNFbmNvZGluZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBAIC04OSw4ICs4OCw4IEBAIGJv
b2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVU
cmlnZ2VyQ2FsbGJhY2sgY2FsbGJhCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
ZmluaXNoKCkKIHsKICAgICBtX3NlcmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhp
c10gewotICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKGtDTVRp
bWVJbnZhbGlkKTsKLSAgICAgICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZE
YXRhKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpOworICAgICAgICBwcm9jZXNzU2FtcGxlQnVm
ZmVyc1VudGlsTG93V2F0ZXJUaW1lKFBBTDo6a0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRv
IGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1
ZXVlLmdldCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZE
YXRhIGZhaWxlZCAlZCIsIGVycm9yKTsKICAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CiAg
ICAgfSk7CkBAIC0xMTIsNyArMTExLDcgQEAgVUludDMyIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6ZGVmYXVsdE91dHB1dEJpdFJhdGUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0QKIAogYm9v
bCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJj
ZUZvcm1hdERlc2NyaXB0aW9uKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24sIEF1ZGlvRm9ybWF0SUQgb3V0cHV0Rm9ybWF0SUQpCiB7Ci0gICAgY29uc3QgYXV0byAqYXVk
aW9Gb3JtYXRMaXN0SXRlbSA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNv
ZGFibGVGb3JtYXQoZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGNvbnN0IGF1dG8gKmF1ZGlvRm9y
bWF0TGlzdEl0ZW0gPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNv
ZGFibGVGb3JtYXQoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIG1fc291cmNlRm9ybWF0ID0gYXVk
aW9Gb3JtYXRMaXN0SXRlbS0+bUFTQkQ7CiAKICAgICBtZW1zZXQoJm1fZGVzdGluYXRpb25Gb3Jt
YXQsIDAsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKQEAgLTEyMSwzNCAr
MTIwLDM0IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252
ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgbV9kZXN0aW5hdGlvbkZvcm1h
dC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG1fc291cmNlRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lOwog
CiAgICAgVUludDMyIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5
X0Zvcm1hdEluZm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3Jt
YXRQcm9wZXJ0eV9Gb3JtYXRJbmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3Jt
YXQpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHkgZmFpbGVkIHdpdGggJWQi
LCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBBdWRpb0NvbnZl
cnRlclJlZiBjb252ZXJ0ZXI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlck5l
dygmbV9zb3VyY2VGb3JtYXQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgewor
ICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3Jt
YXQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRp
b0NvbnZlcnRlck5ldyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KICAgICBtX2NvbnZlcnRlciA9IGNvbnZlcnRlcjsKIAogICAgIGF1dG8gY2xl
YW51cEluQ2FzZU9mRXJyb3IgPSBtYWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIEF1ZGlvQ29u
dmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJE
aXNwb3NlKG1fY29udmVydGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAg
IH0pOwogCiAgICAgc2l6ZV90IGNvb2tpZVNpemUgPSAwOwotICAgIGNvbnN0IHZvaWQgKmNvb2tp
ZSA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0
aW9uLCAmY29va2llU2l6ZSk7CisgICAgY29uc3Qgdm9pZCAqY29va2llID0gUEFMOjpDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNvb2tp
ZVNpemUpOwogICAgIGlmIChjb29raWVTaXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0g
QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRGVj
b21wcmVzc2lvbk1hZ2ljQ29va2llLCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKKyAg
ICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9j
b252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQz
Miljb29raWVTaXplLCBjb29raWUpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0Nv
bnZlcnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIHNpemUg
PSBzaXplb2YobV9zb3VyY2VGb3JtYXQpOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0
U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9zb3VyY2VGb3JtYXQpKSB7CisgICAgaWYgKGF1
dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtB
dWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291
cmNlRm9ybWF0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJ
bnB1dFN0cmVhbURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTU5LDcgKzE1OCw3IEBAIGJvb2wgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlw
dGlvbihDCiAgICAgfQogCiAgICAgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsK
LSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0
ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUs
ICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRp
b0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50
T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVz
Y3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CkBAIC0xNjcsMTQgKzE2NiwxNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAg
IGlmIChtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1Gb3JtYXRJRCA9PSBrQXVkaW9Gb3JtYXRNUEVHNEFB
QykgewogICAgICAgICBib29sIHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gdHJ1ZTsK
ICAgICAgICAgaWYgKG1fb3V0cHV0Qml0UmF0ZSkgewotICAgICAgICAgICAgYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVu
Y29kZUJpdFJhdGUsIHNpemVvZigqbV9vdXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52
YWx1ZSgpKTsKKyAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0
UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVv
ZigqbV9vdXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICBzaG91bGRTZXREZWZhdWx0T3V0cHV0
Qml0UmF0ZSA9ICEhZXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZFNldERlZmF1
bHRPdXRwdXRCaXRSYXRlKSB7CiAgICAgICAgICAgICBhdXRvIG91dHB1dEJpdFJhdGUgPSBkZWZh
dWx0T3V0cHV0Qml0UmF0ZShtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKICAgICAgICAgICAgIHNpemUg
PSBzaXplb2Yob3V0cHV0Qml0UmF0ZSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1
ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29k
ZUJpdFJhdGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkKKyAgICAgICAgICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b252ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCiAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3Igc2V0dGluZyBkZWZhdWx0IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0xODMsNyArMTgyLDcg
QEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZv
clNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9u
IGZvcm1hdCBpcyBWQlIsIHdlIG5lZWQgdG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0
aGUgY29udmVydGVyLgogICAgICAgICBzaXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6
ZSk7CiAKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRT
aXplLCAmc2l6ZSwgJm1fbWF4T3V0cHV0UGFja2V0U2l6ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8g
ZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRp
b0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhP
dXRwdXRQYWNrZXRTaXplKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFT
dHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0
ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0yMTEsNiArMjEwLDgg
QEAgc2l6ZV90IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y29tcHV0ZUJ1ZmZlclNpemVG
b3JBdWRpb0Zvcm1hdChBdWRpb1N0cmVhbUIKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmF0dGFjaFByaW1pbmdUcmltc0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZl
cikKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOworCiAgICAgaWYgKENNVElNRV9JU19JTlZB
TElEKG1fcmVtYWluaW5nUHJpbWVEdXJhdGlvbikpIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJQ
cmltZUluZm8gcHJpbWVJbmZvIHsgMCwgMCB9OwogICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVv
ZihwcmltZUluZm8pOwpAQCAtMjM2LDI1ICsyMzcsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkK
IHsKICAgICBVSW50MzIgZGVsYXlTaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJf
dCBvcmlnaW5hbERlbGF5TW9kZSA9IDA7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2Rl
LCAmZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVj
UHJvcGVydHlEZWxheU1vZGUsICZkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIHVpbnQzMl90
IG9wdGltYWxEZWxheU1vZGUgPSBrQXVkaW9Db2RlY0RlbGF5TW9kZV9PcHRpbWFsOwotICAgIGlm
IChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1
ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkp
IHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSht
X2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0
aW1hbERlbGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0s
ICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5
RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwog
ICAgIH0KIAogICAgIFVJbnQzMiBwcmltZVNpemUgPSBzaXplb2YoQXVkaW9Db2RlY1ByaW1lSW5m
byk7CiAgICAgQXVkaW9Db2RlY1ByaW1lSW5mbyBwcmltZUluZm8geyAwLCAwIH07Ci0gICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgeworICAg
IGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVy
dGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZv
KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAg
aWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBr
QXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9k
ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0
eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAm
b3JpZ2luYWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9w
ZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5p
bDsKICAgICB9CkBAIC0yNjcsMTggKzI2OCwxOCBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgog
ICAgIGlmICghbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIFVJbnQz
MiBjb29raWVTaXplID0gMDsKIAotICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJH
ZXRQcm9wZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFn
aWNDb29raWUsICZjb29raWVTaXplLCBOVUxMKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBOVUxMKTsKICAgICAgICAgaWYg
KChlcnJvciA9PSBub0VycikgJiYgISFjb29raWVTaXplKSB7CiAgICAgICAgICAgICBjb29raWUu
cmVzaXplKGNvb2tpZVNpemUpOwogCi0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNz
aW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUuZGF0YSgpKSkgeworICAgICAgICAg
ICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252
ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXpl
LCBjb29raWUuZGF0YSgpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29u
dmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAg
ICAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9u
OwotICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29v
a2llU2l6ZSwgY29va2llLmRhdGEoKSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRp
b24pKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAs
IE5VTEwsIGNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1h
dERlc2NyaXB0aW9uKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIG5pbDsK
ICAgICAgICAgfQpAQCAtMjkwLDI2ICsyOTEsMjYgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIK
ICAgICBzaXplX3QgZGF0YVNpemUgPSBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5
dGVTaXplOwogCiAgICAgQ01CbG9ja0J1ZmZlclJlZiBibG9ja0J1ZmZlcjsKLSAgICBpZiAoYXV0
byBlcnJvciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9y
RGVmYXVsdCwgTlVMTCwgZGF0YVNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIDAsIGRh
dGFTaXplLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcikp
IHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1v
cnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9y
RGVmYXVsdCwgTlVMTCwgMCwgZGF0YVNpemUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93
RmxhZywgJmJsb2NrQnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmls
OwogICAgIH0KICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAg
aWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZm
ZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXpl
KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVC
dWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1
ZmZlci5nZXQoKSwgdHJ1ZSwgTlVMTCwgTlVMTCwgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0
aW9uLmdldCgpLCBudW1QYWNrZXRzLCBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3Rh
bXAsIG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmc2FtcGxlQnVmZmVy
KTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBh
Y2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIHRydWUs
IE5VTEwsIE5VTEwsIG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgbnVtUGFj
a2V0cywgbV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wLCBtX2Rlc3RpbmF0aW9u
UGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9y
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3Jp
cHRpb25zIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAg
IH0KIAogICAgIGlmIChbbV9nZHJDb3VudE51bSBpbnRWYWx1ZV0pCi0gICAgICAgIENNU2V0QXR0
YWNobWVudChzYW1wbGVCdWZmZXIsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVh
bERlY29kZXJSZWZyZXNoLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCks
IGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CisgICAgICAgIFBBTDo6Q01TZXRB
dHRhY2htZW50KHNhbXBsZUJ1ZmZlciwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5
X0dyYWR1YWxEZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVt
LmdldCgpLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogCiAgICAgcmV0dXJu
IHNhbXBsZUJ1ZmZlcjsKIH0KQEAgLTM0MSwyNCArMzQyLDI0IEBAIE9TU3RhdHVzIEF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJ
bnQzMioKICAgICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwog
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNF
bXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGlmIChQQUw6
OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIg
PSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJR
dWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAg
ICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVm
ZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZm
ZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpD
TUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkp
OworICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlm
ICghbV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTVNhbXBs
ZUJ1ZmZlckdldERhdGFCdWZmZXIgZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgICAgIG1fc2Ft
cGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zm
c2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVy
U2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0
KCkpOworICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJs
b2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAg
ICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAg
ICAgICAgICAgICBzaXplX3QgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWlu
KG51bUJ5dGVzVG9Db3B5LCAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZz
ZXRJblNhbXBsZUJsb2NrQnVmZmVyKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3Ig
PSBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBt
X2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1w
bGVCYnVmLCAobV9zb3VyY2VCdWZmZXIuZGF0YSgpICsgY3VycmVudE9mZnNldEluU291cmNlQnVm
ZmVyKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1
ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zm
c2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1f
c291cmNlQnVmZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtMzkzLDI4ICszOTQsMjggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMy
KgogICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZm
ZXJRdWV1ZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0
eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0g
ICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVm
KShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0
QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9
IGFkb3B0Q0YoKENNQmxvY2tCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENN
U2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAg
ICAgICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNv
bnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1
dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKKyAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIg
PSBhZG9wdENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsK
ICAgICAgICAgICAgIGlmICghbV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAg
ICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50
T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENN
QmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsK
KyAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7CiAgICAgICAgICAg
ICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmIChtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICBzaXplX3QgbnVt
Qnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9z
YW1wbGVCbG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVy
KSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5
dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxv
Y2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBj
dXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJy
b3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIu
Z2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5
RnJvbVNhbXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZm
ZXIpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZp
cnN0IGNoYW5uZWwgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIGVycm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBD
TUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1
cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUs
IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9m
ZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFM
OjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBt
X2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNp
emUsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVu
dE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVm
ZmVyQ29weURhdGFCeXRlcyBzZWNvbmQgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICB9CkBAIC00MzgsNiAr
NDM5LDggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291
cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUg
bG93V2F0ZXJUaW1lKQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVf
Q09NUEFSRV9JTkxJTkUKKwogICAgIGlmICghbV9jb252ZXJ0ZXIpIHsKICAgICAgICAgaWYgKENN
QnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC01MDEsNyArNTA0LDcgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGwKIAog
dm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01T
YW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogewotICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVl
RW5xdWV1ZShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJv
ciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUVucXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBi
dWZmZXIpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKIAogICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRp
bWUobV9sb3dXYXRlclRpbWUpOwpAQCAtNTIwLDEyICs1MjMsMTIgQEAgdm9pZCBBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZm
ZXIpCiAKIENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0
T3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShj
b25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVl
LmdldCgpKSkpOworICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9p
ZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkp
KTsKIH0KIAogUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENG
KChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVl
dWVBbmRSZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFk
b3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVy
UXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQog
CiB1bnNpZ25lZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApp
bmRleCBmNWY4NTU4NzFmYzcwODU2NmY3ZWY4YjlhMTYxZTI3YjhlNWQ4OWVkLi5iNzU1OGQyODBj
MmVmNzk2MDY4Y2FjMGNjOTZiNTAzM2RjMzcwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtMTI3LDggKzEyNyw4IEBAIHBy
aXZhdGU6CiAgICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yPiBtX3ZpZGVvQ29tcHJlc3NvcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklu
cHV0PiBtX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVz
ZW50YXRpb25UaW1lIHsga0NNVGltZUludmFsaWQgfTsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9E
ZWNvZGluZ1RpbWUgeyBrQ01UaW1lSW52YWxpZCB9OworICAgIENNVGltZSBtX2xhc3RWaWRlb1By
ZXNlbnRhdGlvblRpbWU7CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lOwogICAg
IGJvb2wgbV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0
cjxXZWJBVkFzc2V0V3JpdGVyRGVsZWdhdGU+IG1fd3JpdGVyRGVsZWdhdGU7CkBAIC0xMzksOSAr
MTM5LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RvcEFmdGVyRmx1c2hpbmdTYW1w
bGVzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmlyc3RWaWRlb0ZyYW1lIHsgZmFsc2UgfTsKICAg
ICBzdGQ6Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBtX3ZpZGVvVHJhbnNmb3JtOwotICAg
IENNVGltZSBtX3Jlc3VtZWRWaWRlb1RpbWUgeyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBt
X2N1cnJlbnRWaWRlb0R1cmF0aW9uIHsga0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUgbV9jdXJy
ZW50QXVkaW9TYW1wbGVUaW1lIHsga0NNVGltZVplcm8gfTsKKyAgICBDTVRpbWUgbV9yZXN1bWVk
VmlkZW9UaW1lOworICAgIENNVGltZSBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uOworICAgIENNVGlt
ZSBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWU7CiAgICAgZG91YmxlIG1fdGltZUNvZGUgeyAwIH07
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0KaW5kZXggNjNiZDY1OThkMDJhNWM3MDA2ZGE5MjlmYzk0ZjFmNWY2NmE3MTZkYS4u
NmFkMjBiZThjYjU3OTIzYTBlNzg0MmUzNzAxZDMzYTZhYTAzYWI2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtOTMsOCAr
OTMsNiBAQCBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKLQogUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6Y3JlYXRlKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGNvbnN0IE1l
ZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvIHdyaXRlciA9
IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIGhhc1Zp
ZGVvKSk7CkBAIC0xMjIsNiArMTIwLDExIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmNvbXByZXNzZWRBdWRpb091dHB1dEJ1ZmZlckNhbGxiYWNrKHZvaWQgKm1lZGlhCiBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoYm9vbCBo
YXNBdWRpbywgYm9vbCBoYXNWaWRlbykKICAgICA6IG1faGFzQXVkaW8oaGFzQXVkaW8pCiAgICAg
LCBtX2hhc1ZpZGVvKGhhc1ZpZGVvKQorICAgICwgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1l
KFBBTDo6a0NNVGltZUludmFsaWQpCisgICAgLCBtX2xhc3RWaWRlb0RlY29kaW5nVGltZShQQUw6
OmtDTVRpbWVJbnZhbGlkKQorICAgICwgbV9yZXN1bWVkVmlkZW9UaW1lKFBBTDo6a0NNVGltZVpl
cm8pCisgICAgLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKFBBTDo6a0NNVGltZVplcm8pCisgICAg
LCBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUoUEFMOjprQ01UaW1lWmVybykKIHsKIH0KIApAQCAt
MTc5LDcgKzE4Miw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NO
ZXdDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNWaWRl
byk7CiAgICAgaWYgKCFtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV92aWRl
b0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiht
X3ZpZGVvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX3Zp
ZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3Jp
cHRpb24obV92aWRlb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKIAogICAg
ICAgICBpZiAobV9oYXNBdWRpbyAmJiAhbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMTk2LDcgKzE5OSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCkKIHsKICAg
ICBBU1NFUlQobV9oYXNBdWRpbyk7CiAgICAgaWYgKCFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24p
IHsKLSAgICAgICAgbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRG
b3JtYXREZXNjcmlwdGlvbihtX2F1ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVy
KCkpOworICAgICAgICBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBs
ZUJ1ZmZlcigpKTsKICAgICAgICAgaWYgKG1faGFzVmlkZW8gJiYgIW1fdmlkZW9Gb3JtYXREZXNj
cmlwdGlvbikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIoKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNl
VGltZTprQ01UaW1lWmVyb107CisgICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291
cmNlVGltZTpQQUw6OmtDTVRpbWVaZXJvXTsKIAogICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVC
dWZmZXJzKCk7CiAKQEAgLTMwMCw4ICszMDMsOCBAQCBib29sIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJJZlBvc3NpYmxlKCkKIHZv
aWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBs
ZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKFttX3ZpZGVv
QXNzZXRXcml0ZXJJbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pOwotICAgIG1fbGFzdFZp
ZGVvUHJlc2VudGF0aW9uVGltZSA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0
YW1wKGJ1ZmZlcik7Ci0gICAgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBDTVNhbXBsZUJ1ZmZl
ckdldERlY29kZVRpbWVTdGFtcChidWZmZXIpOworICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9u
VGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVy
KTsKKyAgICBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRE
ZWNvZGVUaW1lU3RhbXAoYnVmZmVyKTsKICAgICBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgPSB0
cnVlOwogCiAgICAgW21fdmlkZW9Bc3NldFdyaXRlcklucHV0LmdldCgpIGFwcGVuZFNhbXBsZUJ1
ZmZlcjpidWZmZXJdOwpAQCAtMzE0LDE3ICszMTcsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKQogCiBzdGF0aWMgaW5s
aW5lIHZvaWQgYXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIoQVZBc3NldFdy
aXRlcklucHV0ICphc3NldFdyaXRlcklucHV0LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1w
LCBDTVRpbWUgZGVjb2RpbmdUaW1lU3RhbXApCiB7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRp
bWluZ0luZm8gPSB7IGtDTVRpbWVJbnZhbGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29k
aW5nVGltZVN0YW1wfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFM
OjprQ01UaW1lSW52YWxpZCwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkZWNvZGluZ1RpbWVTdGFt
cH07CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIgPSBOVUxMOwotICAgIGF1dG8gZXJy
b3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVl
LCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAxLCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7
CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgTlVMTCwgdHJ1ZSwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8s
IDAsIE5VTEwsICZidWZmZXIpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZEVu
ZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uTWFya2VyIGZhaWxlZCBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZSB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gc2Ft
cGxlQnVmZmVyID0gYWRvcHRDRihidWZmZXIpOwogCi0gICAgQ01TZXRBdHRhY2htZW50KHNhbXBs
ZUJ1ZmZlci5nZXQoKSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNT
YW1wbGVEdXJhdGlvbiwga0NGQm9vbGVhblRydWUsIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFBy
b3BhZ2F0ZSk7CisgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBQ
QUw6OmtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRp
b24sIGtDRkJvb2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwog
ICAgIGlmICghW2Fzc2V0V3JpdGVySW5wdXQgYXBwZW5kU2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZl
ci5nZXQoKV0pCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXIgYXBwZW5kU2FtcGxlQnVmZmVyIHRvIHdyaXRlciBpbnB1dCBm
YWlsZWQiKTsKIH0KQEAgLTM4MiwxOCArMzg1LDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYm
CiBzdGF0aWMgaW5saW5lIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY29weVNhbXBsZUJ1
ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsQnVmZmVy
LCBDTVRpbWUgc3RhcnRUaW1lKQogewogICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKLSAgICBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwg
bmlsLCAmY291bnQpOworICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
QXJyYXkob3JpZ2luYWxCdWZmZXIsIDAsIG5pbCwgJmNvdW50KTsKIAogICAgIFZlY3RvcjxDTVNh
bXBsZVRpbWluZ0luZm8+IHRpbWVJbmZvKGNvdW50KTsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEo
KSwgJmNvdW50KTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5KG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOwogCiAg
ICAgZm9yIChhdXRvIGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICB0aW1lSW5mb1tp
XS5kZWNvZGVUaW1lU3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKKyAgICAgICAgdGltZUluZm9baV0u
ZGVjb2RlVGltZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKICAgICAgICAgdGltZUluZm9b
aV0ucHJlc2VudGF0aW9uVGltZVN0YW1wID0gc3RhcnRUaW1lOwogICAgIH0KIAogICAgIENNU2Ft
cGxlQnVmZmVyUmVmIG5ld0J1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkgewor
ICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3
VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUlu
Zm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyQ3JlYXRl
Q29weVdpdGhOZXdUaW1pbmcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KQEAgLTQwNCw3ICs0MDcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxl
KQogewogICAgIGlmICghbV9maXJzdFZpZGVvRnJhbWUpIHsKICAgICAgICAgbV9maXJzdFZpZGVv
RnJhbWUgPSB0cnVlOwotICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGlt
ZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKKyAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1l
ID0gUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwog
ICAgICAgICBpZiAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbjo6Tm9uZSB8fCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpKSB7CiAgICAgICAgICAgICBt
X3ZpZGVvVHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlUm90YXRpb24oc3RhdGljX2Nh
c3Q8aW50PihzYW1wbGUudmlkZW9Sb3RhdGlvbigpKSAqIE1fUEkgLyAxODApOwogICAgICAgICAg
ICAgaWYgKHNhbXBsZS52aWRlb01pcnJvcmVkKCkpCkBAIC00MTIsOCArNDE1LDggQEAgdm9pZCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFT
YW1wbGUmIHNhbXBsZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gc2FtcGxlVGltZSA9
IENNVGltZVN1YnRyYWN0KENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkp
LCBtX3Jlc3VtZWRWaWRlb1RpbWUpOwotICAgIHNhbXBsZVRpbWUgPSBDTVRpbWVBZGQoc2FtcGxl
VGltZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CisgICAgYXV0byBzYW1wbGVUaW1lID0gUEFM
OjpDTVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RU
aW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgc2FtcGxlVGltZSA9IFBBTDo6
Q01UaW1lQWRkKHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOwogICAgIGlmIChh
dXRvIGJ1ZmZlcldpdGhDdXJyZW50VGltZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRp
bWVTdGFtcChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHNh
bXBsZVRpbWUpKQogICAgICAgICBtX3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1
ZmZlcldpdGhDdXJyZW50VGltZS5nZXQoKSk7CiB9CkBAIC00MjIsNyArNDI1LDcgQEAgdm9pZCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEKIHsKICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVB
dWRpb1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVU
aW1lLCBzYW1wbGVDb3VudCkpCiAgICAgICAgIG1fYXVkaW9Db21wcmVzc29yLT5hZGRTYW1wbGVC
dWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKTsKLSAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUg
PSBDTVRpbWVBZGQobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCB0b0NNVGltZShNZWRpYVRpbWUo
c2FtcGxlQ291bnQsIGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSkpKTsKKyAgICBtX2N1cnJlbnRB
dWRpb1NhbXBsZVRpbWUgPSBQQUw6OkNNVGltZUFkZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUs
IFBBTDo6dG9DTVRpbWUoTWVkaWFUaW1lKHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVS
YXRlKCkpKSk7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZpbmlzaGVk
Rmx1c2hpbmdTYW1wbGVzKCkKQEAgLTUyMywxMCArNTI2LDEwIEBAIHZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKCkKIHsKICAgICBhdXRvIGN1cnJlbnRU
aW1lQ29kZSA9IG1fdGltZUNvZGU7CiAgICAgaWYgKG1faGFzQXVkaW8pCi0gICAgICAgIG1fdGlt
ZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CisgICAg
ICAgIG1fdGltZUNvZGUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1w
bGVUaW1lKTsKICAgICBlbHNlIHsKLSAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3Vi
dHJhY3QoQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1l
ZFZpZGVvVGltZSk7Ci0gICAgICAgIG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGlt
ZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKSk7CisgICAgICAgIGF1dG8g
c2FtcGxlVGltZSA9IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6
OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgICAg
ICBtX3RpbWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lQWRkKHNhbXBs
ZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pKTsKICAgICB9CiAgICAgbV9mZXRjaERhdGFD
b21wbGV0aW9uSGFuZGxlcih0YWtlRGF0YSgpLCBjdXJyZW50VGltZUNvZGUpOwogfQpAQCAtNTUw
LDEzICs1NTMsMTMgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OnRha2VEYXRhKCkKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cGF1
c2UoKQogewotICAgIGF1dG8gcmVjb3JkaW5nRHVyYXRpb24gPSBDTVRpbWVTdWJ0cmFjdChDTUNs
b2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1l
KTsKLSAgICBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uID0gQ01UaW1lQWRkKHJlY29yZGluZ0R1cmF0
aW9uLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKKyAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9u
ID0gUEFMOjpDTVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dl
dEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgbV9jdXJyZW50Vmlk
ZW9EdXJhdGlvbiA9IFBBTDo6Q01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRW
aWRlb0R1cmF0aW9uKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cmVz
dW1lKCkKIHsKLSAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2Nr
R2V0SG9zdFRpbWVDbG9jaygpKTsKKyAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xv
Y2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CiB9CiAKIGNvbnN0IFN0
cmluZyYgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Om1pbWVUeXBlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNzZkNTZk
N2I4ZDEzYzcyZWEzOWZjMzQ5OWQxNzk4OTk3MTdmMGU3OC4uZDA3NjBmMDdlMzcwODEyN2Y5ZGUy
ZWZhZjkyZjBlMDc3MmZkMzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IubW0KQEAgLTM0LDEyICszNCwxMSBAQAogI2ltcG9ydCA8VmlkZW9Ub29s
Ym94L1ZUQ29tcHJlc3Npb25TZXNzaW9uLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4K
IAorI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2Yv
VmlkZW9Ub29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBu
YW1lc3BhY2UgUEFMOwotCiBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yPiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShTdHJpbmcgbWltZVR5cGUs
IENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2Jq
ZWN0KQogewogICAgIGF1dG8gcHJvZmlsZSA9IFByb2ZpbGU6OkJhc2VsaW5lOwpAQCAtNjksNyAr
NjgsNyBAQCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvcihDTVZpZGVvQ29kZWNUeXBlIG91dHB1dAogVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV92dFNlc3Np
b24pIHsKLSAgICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9u
LmdldCgpKTsKKyAgICAgICAgUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92
dFNlc3Npb24uZ2V0KCkpOwogICAgICAgICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQog
fQpAQCAtNzcsMTIgKzc2LDEyIEBAIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lk
KiBjYWxsYmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1
ZXVlOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVC
dWZmZXJzKCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBB
TDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVm
ZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1
ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciB1bmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBxdWV1ZSAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1
ZmZlclF1ZXVlID0gb3V0cHV0QnVmZmVyUXVldWU7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxU
cmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVj
dCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVy
bywgTlVMTCk7CisgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRC
dWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1
ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwog
CiAgICAgbV9pc0VuY29kaW5nID0gdHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk2LDEwICs5
NSwxMCBAQCB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2V0Qml0c1BlclNlY29u
ZCh1bnNpZ25lZCBiaXRSYXRlKQogdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZp
bmlzaCgpCiB7CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNd
IHsKLSAgICAgICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFt
ZXMobV92dFNlc3Npb24uZ2V0KCksIGtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBlcnJv
ciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5n
ZXQoKSwgUEFMOjprQ01UaW1lSW52YWxpZCk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXBy
ZXNzaW9uU2Vzc2lvbkNvbXBsZXRlRnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0g
ICAgICAgIGVycm9yID0gQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJR
dWV1ZS5nZXQoKSk7CisgICAgICAgIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9m
RGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENN
QnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAg
ICAgIG1faXNFbmNvZGluZyA9IGZhbHNlOwpAQCAtMTE0LDcgKzExMyw3IEBAIHZvaWQgVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjp2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2sodm9pZCAqcmVm
Q29uLCB2b2lkKiwKIAogICAgIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciAqY29tcHJlc3Nv
ciA9IHN0YXRpY19jYXN0PFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcio+KHJlZkNvbik7CiAK
LSAgICBhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRw
dXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1
ZmZlclF1ZXVlRW5xdWV1ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBi
dWZmZXIpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKIH0KIApAQCAtMTMwLDUzICsxMjksNTMgQEAgQ0ZTdHJpbmdSZWYgVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCgpIGNvbnN0CiB7CiAgICAg
c3dpdGNoIChtX3Byb2ZpbGUpIHsKICAgICBjYXNlIFByb2ZpbGU6OkJhc2VsaW5lOgotICAgICAg
ICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOworICAgICAg
ICByZXR1cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CiAg
ICAgY2FzZSBQcm9maWxlOjpIaWdoOgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gy
NjRfSGlnaF9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZlbF9I
MjY0X0hpZ2hfQXV0b0xldmVsOwogICAgIGNhc2UgUHJvZmlsZTo6TWFpbjoKLSAgICAgICAgcmV0
dXJuIGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsOworICAgICAgICByZXR1cm4g
UEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbDsKICAgICB9CiB9CiAKIGJv
b2wgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbikKIHsKLSAgICBDTVZp
ZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGlt
ZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbik7CisgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5z
aW9ucyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXRE
ZXNjcmlwdGlvbik7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIE5TRGljdGlvbmFyeSAqZW5jb2Rl
clNwZWNpZmljYXRpb25zID0gbmlsOwogI2Vsc2UKLSAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJT
cGVjaWZpY2F0aW9ucyA9IEB7KF9fYnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9FbmNvZGVyU3Bl
Y2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyOkBZRVN9Owor
ICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNT
dHJpbmcgKilQQUw6OmtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVB
Y2NlbGVyYXRlZFZpZGVvRW5jb2RlcjpAWUVTfTsKICNlbmRpZgogCiAgICAgVlRDb21wcmVzc2lv
blNlc3Npb25SZWYgdnRTZXNzaW9uOwotICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vz
c2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNp
b25zLmhlaWdodCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYp
ZW5jb2RlclNwZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJh
Y2ssIHRoaXMsICZ2dFNlc3Npb24pOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Np
b25TZXNzaW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRp
bWVuc2lvbnMuaGVpZ2h0LCBtX291dHB1dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFy
eVJlZillbmNvZGVyU3BlY2lmaWNhdGlvbnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25D
YWxsYmFjaywgdGhpcywgJnZ0U2Vzc2lvbik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICByZXR1cm4gTk87CiAgICAgfQogICAgIG1fdnRTZXNzaW9uID0gYWRvcHRDRih2dFNlc3Np
b24pOwogCi0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQo
KSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOwor
ICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOwogICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X1JlYWxUaW1lIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0Q29t
cHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9u
UHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uLCBtX21heEtleUZyYW1lSW50
ZXJ2YWxEdXJhdGlvbik7CisgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0
eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtl
eUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgbV9tYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24pOwog
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKLSAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9u
LmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4
cGVjdGVkRnJhbWVSYXRlKTsKKyAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3Bl
cnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhw
ZWN0ZWRGcmFtZVJhdGUsIG1fZXhwZWN0ZWRGcmFtZVJhdGUpOwogICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBW
VFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJh
bWVSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgZXJyb3IgPSBWVFNlc3Npb25T
ZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Q
cm9maWxlTGV2ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0
UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9Qcm9maWxlTGV2ZWwsIHZ0UHJvZmlsZUxldmVsKCkpOwogICAgIGlmIChlcnJvcikgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1By
b2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgcHJvZmlsZSAlZCIsIGVycm9yLCBtX3Byb2Zp
bGUpOwogICAgICAgICBpZiAobV9wcm9maWxlICE9IFByb2ZpbGU6OkJhc2VsaW5lKSB7Ci0gICAg
ICAgICAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwga1ZUUHJvZmlsZUxldmVsX0gy
NjRfQmFzZWxpbmVfQXV0b0xldmVsKTsKKyAgICAgICAgICAgIGVycm9yID0gVlRTZXNzaW9uU2V0
UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9Qcm9maWxlTGV2ZWwsIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xl
dmVsKTsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVh
bSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgZGVm
YXVsdCBwcm9maWxlIiwgZXJyb3IpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fb3V0
cHV0Qml0UmF0ZSkgewotICAgICAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3Bl
cnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VC
aXRSYXRlLCAqbV9vdXRwdXRCaXRSYXRlKTsKKyAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lv
blNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblBy
b3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCAqbV9vdXRwdXRCaXRSYXRlKTsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlf
QXZlcmFnZUJpdFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgfQogCi0gICAgZXJy
b3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lv
bi5nZXQoKSk7CisgICAgZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRv
RW5jb2RlRnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
RihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21w
cmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJv
cik7CiAKICAgICByZXR1cm4gWUVTOwpAQCAtMTg1LDE0ICsxODQsMTQgQEAgYm9vbCBWaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW8KIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2Ft
cGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBpZiAoIW1fdnRTZXNz
aW9uKSB7Ci0gICAgICAgIGlmICghaW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVNhbXBsZUJ1ZmZl
ckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQorICAgICAgICBpZiAoIWluaXRDb21wcmVz
c2lvblNlc3Npb24oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZl
cikpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIg
PSBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7Ci0gICAgYXV0byBwcmVzZW50
YXRpb25UaW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChi
dWZmZXIpOwotICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1
ZmZlcik7Ci0gICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUo
bV92dFNlc3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1
cmF0aW9uLCBOVUxMLCB0aGlzLCBOVUxMKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7CisgICAgYXV0byBwcmVzZW50YXRp
b25UaW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1w
KGJ1ZmZlcik7CisgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJh
dGlvbihidWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9u
RW5jb2RlRnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25U
aW1lU3RhbXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBOVUxMKTsKICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
VlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
IH0KIApAQCAtMjA4LDEyICsyMDcsMTIgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxl
QnVmZmVyUmVmIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVm
ZmVyKCkKIHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQq
PihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAg
IHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZm
ZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VP
dXRwdXRTYW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZl
clJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9v
dXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxl
QnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5k
UmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQu
Y3BwCmluZGV4IGMzZmU4MjFiOWM1MjBjOTIyNGU1ZGU4ODhlNTE4YzMxOTZmMzFjYjUuLmEwMjQw
ODRjMjRlNmQzNjM5NjA4YTY0NjUyZWNjNWQ2ZDllZmFjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5j
cHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlci5oIgogI2VuZGlmCiAKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsu
aD4KICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTIzLDkgKzEyNCw5IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQoKQogICAgIGlmICghbV9yZW1vdGVJT1VuaXQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9PdXRwdXRVbml0
U3RhcnQobV9yZW1vdGVJT1VuaXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlv
T3V0cHV0VW5pdFN0YXJ0KG1fcmVtb3RlSU9Vbml0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6
c3RhcnQgQXVkaW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwot
ICAgICAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7Cisg
ICAgICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQp
OwogICAgICAgICBtX3JlbW90ZUlPVW5pdCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0xMzksMTEgKzE0MCwxMSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0b3AoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
bV9pc1N0YXJ0ZWQpIHsKLSAgICAgICAgQXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5p
dCk7CisgICAgICAgIFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CiAg
ICAgICAgIG1faXNTdGFydGVkID0gZmFsc2U7CiAgICAgfQogCi0gICAgQXVkaW9Db21wb25lbnRJ
bnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOworICAgIFBBTDo6QXVkaW9Db21wb25lbnRJ
bnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAgIG1fcmVtb3RlSU9Vbml0ID0gbnVs
bHB0cjsKIH0KIApAQCAtMTYzLDE0ICsxNjQsMTQgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAg
ICAgaW9Vbml0RGVzY3JpcHRpb24uY29tcG9uZW50U3ViVHlwZSA9IGtBdWRpb1VuaXRTdWJUeXBl
X0RlZmF1bHRPdXRwdXQ7CiAjZW5kaWYKIAotICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50
ID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwor
ICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmRO
ZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50
KTsKICAgICBpZiAoIWlvQ29tcG9uZW50KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdl
YlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVB
dWRpb1VuaXQgdW5hYmxlIHRvIGZpbmQgcmVtb3RlIElPIHVuaXQgY29tcG9uZW50Iik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGVycm9yID0gQXVkaW9Db21wb25lbnRJbnN0
YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CisgICAgYXV0byBlcnJvciA9IFBB
TDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7
CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQg
dW5hYmxlIHRvIG9wZW4gdnBpbyB1bml0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICBy
ZXR1cm47CkBAIC0xNzgsNyArMTc5LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgIFVJbnQzMiBwYXJhbSA9IDE7Ci0gICAgZXJyb3IgPSBB
dWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0
eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXplb2YocGFy
YW0pKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0
LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRw
dXQsIDAsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQg
b3V0cHV0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xODcsNyAr
MTg4LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAg
aWYgKG1fZGV2aWNlSUQpIHsKLSAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShy
ZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVk
aW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsK
KyAgICAgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwg
a0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9H
bG9iYWwsIDAsICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOwogICAgICAgICBpZiAo
ZXJyb3IpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxl
IHRvIHNldCB1bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludCltX2Rldmlj
ZUlELCAoaW50KWVycm9yLCAoY2hhciopJmVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTE5NiwxNCArMTk3LDE0IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogI2VuZGlmCiAKICAgICBB
VVJlbmRlckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpyZW5kZXJpbmdDYWxsYmFjaywgdGhpcyB9OwotICAg
IGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJv
cGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxs
YmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFBy
b3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNr
LCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykp
OwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0
IHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgPSAlZCIsIGVycm9y
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG91
dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkpOwotICAgIGVycm9yICA9IEF1ZGlv
VW5pdEdldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFt
RGVzY3JpcHRpb24oKSwgJnNpemUpOworICAgIGVycm9yICA9IFBBTDo6QXVkaW9Vbml0R2V0UHJv
cGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlv
bigpLCAmc2l6ZSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVh
dGVBdWRpb1VuaXQgdW5hYmxlIHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVk
IiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0yMTEsMTMgKzIxMiwxMyBAQCB2b2lkIExv
Y2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlv
VW5pdElmTmVlZGVkKCkKIAogICAgIG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9u
KCkubVNhbXBsZVJhdGUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRl
KCk7CiAKLSAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1
ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAm
b3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2Ny
aXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkpKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0
LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNj
cmlwdGlvbigpLCBzaXplb2Yob3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSkp
OwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0
IHVuYWJsZSB0byBzZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGVycm9yID0gQXVkaW9Vbml0SW5pdGlhbGl6
ZShyZW1vdGVJT1VuaXQpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKHJl
bW90ZUlPVW5pdCk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVh
dGVBdWRpb1VuaXQgQXVkaW9Vbml0SW5pdGlhbGl6ZSgpIGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4
IDRiNzg4YWU1YWE4N2I3MjllNWJkY2Y5Y2Y3MTM4MTJjNjc3MGEzMjUuLjQ4NWU0Y2U0YzZkOGMz
MjQ1Yjc3OWQ2MWE2NzZjYmJiOTdiYWQ5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
bW0KQEAgLTUxLDcgKzUxLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIEBp
bnRlcmZhY2UgV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgOiBOU09iamVjdDxB
VkNhcHR1cmVWaWRlb0RhdGFPdXRwdXRTYW1wbGVCdWZmZXJEZWxlZ2F0ZT4gewogICAgIEFWVmlk
ZW9DYXB0dXJlU291cmNlKiBtX2NhbGxiYWNrOwpAQCAtMzUxLDEwICszNTAsMTAgQEAgdm9pZCBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUoKQogICAgICAg
ICAgICAgaWYgKGZyYW1lUmF0ZVJhbmdlKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50RnJh
bWVSYXRlID0gY2xhbXBUbyhtX2N1cnJlbnRGcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1pbkZy
YW1lUmF0ZSwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVSYXRlKTsKIAotICAgICAgICAgICAgICAg
IGF1dG8gZnJhbWVEdXJhdGlvbiA9IENNVGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsK
LSAgICAgICAgICAgICAgICBpZiAoQ01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJh
dGVSYW5nZS5taW5GcmFtZUR1cmF0aW9uKSA8IDApCisgICAgICAgICAgICAgICAgYXV0byBmcmFt
ZUR1cmF0aW9uID0gUEFMOjpDTVRpbWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7CisgICAg
ICAgICAgICAgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJh
dGVSYW5nZS5taW5GcmFtZUR1cmF0aW9uKSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGZyYW1l
RHVyYXRpb24gPSBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0aW9uOwotICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2Uu
bWF4RnJhbWVEdXJhdGlvbikgPiAwKQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBBTDo6Q01U
aW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9u
KSA+IDApCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVSYW5n
ZS5tYXhGcmFtZUR1cmF0aW9uOwogCiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dn
ZXJQdHIoKSwgTE9HSURFTlRJRklFUiwgInNldHRpbmcgZnJhbWUgcmF0ZSB0byAiLCBtX2N1cnJl
bnRGcmFtZVJhdGUsICIsIGR1cmF0aW9uICIsIFBBTDo6dG9NZWRpYVRpbWUoZnJhbWVEdXJhdGlv
bikpOwpAQCAtNDE4LDcgKzQxNyw3IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVw
U2Vzc2lvbigpCiAKICAgICBtX3Nlc3Npb24gPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZDYXB0dXJl
U2Vzc2lvbkluc3RhbmNlKCkgaW5pdF0pOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
QVZDYXB0dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3Jv
dW5kQXBwTGF5b3V0KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgUEFMOjpBVkNhcHR1cmVTZXNzaW9u
U2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQobV9z
ZXNzaW9uLmdldCgpKTsKICNlbmRpZgogICAgIFttX3Nlc3Npb24gYWRkT2JzZXJ2ZXI6bV9vYmpj
T2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInJ1bm5pbmciIG9wdGlvbnM6TlNLZXlWYWx1ZU9i
c2VydmluZ09wdGlvbk5ldyBjb250ZXh0Oih2b2lkICopbmlsXTsKIApAQCAtNDM0LDYgKzQzMyw4
IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCiAKIEFWRnJhbWVS
YXRlUmFuZ2UqIEFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRl
KGRvdWJsZSByYXRlKQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVf
Q09NUEFSRV9JTkxJTkUKKwogICAgIEFWRnJhbWVSYXRlUmFuZ2UgKmJlc3RGcmFtZVJhdGVSYW5n
ZSA9IG5pbDsKICAgICBmb3IgKEFWRnJhbWVSYXRlUmFuZ2UgKmZyYW1lUmF0ZVJhbmdlIGluIFtb
ZGV2aWNlKCkgYWN0aXZlRm9ybWF0XSB2aWRlb1N1cHBvcnRlZEZyYW1lUmF0ZVJhbmdlc10pIHsK
ICAgICAgICAgaWYgKGZyYW1lUmF0ZVJhbmdlSW5jbHVkZXNSYXRlKHsgW2ZyYW1lUmF0ZVJhbmdl
IG1pbkZyYW1lUmF0ZV0sIFtmcmFtZVJhdGVSYW5nZSBtYXhGcmFtZVJhdGVdIH0sIHJhdGUpKSB7
CkBAIC01OTgsNyArNTk5LDcgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJhdGVQ
cmVzZXRzKCkKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKICAgICBmb3Ig
KEFWQ2FwdHVyZURldmljZUZvcm1hdCogZm9ybWF0IGluIFtkZXZpY2UoKSBmb3JtYXRzXSkgewog
Ci0gICAgICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CisgICAgICAg
IENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkdldERpbWVuc2lvbnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICAgICAgSW50
U2l6ZSBzaXplID0geyBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCB9OwogICAg
ICAgICBhdXRvIGluZGV4ID0gcHJlc2V0cy5maW5kTWF0Y2hpbmcoWyZzaXplXShhdXRvJiBwcmVz
ZXQpIHsKICAgICAgICAgICAgIHJldHVybiBzaXplID09IHByZXNldC0+c2l6ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcAppbmRleCA2ZTI2YzhmYTRlY2QzMGFjMWU1MmZlYzM4
YWY1N2QwZTMzZDliYzI0Li5lMTU1NDYyZjUxODE1ODhiYTNiYzk0NTZjNmI2YWU5YWZlMjFiNWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCkBAIC0xOSw3ICsxOSw3IEBA
CiAgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VQQUw6Ok5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCkBAIC0zNiw3ICszNiw2
IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGJvb2wgZ2V0RGV2aWNlSW5m
byh1aW50MzJfdCBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBTdHJp
bmcmIHBlcnNpc3RlbnRJRCwgU3RyaW5nJiBsYWJlbCkKIHsKQEAgLTIwNSw3ICsyMDQsNyBAQCBS
ZXRhaW5QdHI8Q01DbG9ja1JlZj4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNlQ2xvY2so
KQogICAgICAgICByZXR1cm4gbV9kZXZpY2VDbG9jazsKIAogICAgIENNQ2xvY2tSZWYgY2xvY2s7
Ci0gICAgYXV0byBlcnIgPSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgcGVyc2lzdGVudElkKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmNsb2NrKTsKKyAg
ICBhdXRvIGVyciA9IFBBTDo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHBlcnNpc3RlbnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZjbG9jayk7CiAg
ICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlOjpDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoJXApIENNQXVkaW9EZXZp
Y2VDbG9ja0NyZWF0ZSBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVy
ciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmNwcAppbmRleCAwM2YzZTYyYTI2MzdjM2U5MDFiYWY2OTRkM2M1MjY1
ZWZhNzRhZWIyLi5mNGIzNjU4OTRkMzdjZDk0ZmYyMWI3ZmI1NGZkYjI2NDFmMzZmZTk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00OCw2ICs0OCw4IEBACiAjaW5j
bHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9v
bGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTcsNyArNTksNiBAQAogI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShN
QUMpCiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZUZhY3Rvcnk6OnNpbmdsZXRvbigpCkBAIC0yMDMsNyArMjA0LDcgQEAgT1NTdGF0dXMgQ29yZUF1
ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIG1fRFRTQ29udmVyc2lvblJhdGlv
ID0gMWUtOSAqIHN0YXRpY19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZvLm51bWVyKSAvIHN0YXRp
Y19jYXN0PGRvdWJsZT4odGltZWJhc2VJbmZvLmRlbm9tKTsKIAogICAgIEF1ZGlvQ29tcG9uZW50
RGVzY3JpcHRpb24gaW9Vbml0RGVzY3JpcHRpb24gPSB7IGtBdWRpb1VuaXRUeXBlX091dHB1dCwg
a0F1ZGlvVW5pdFN1YlR5cGVfVm9pY2VQcm9jZXNzaW5nSU8sIGtBdWRpb1VuaXRNYW51ZmFjdHVy
ZXJfQXBwbGUsIDAsIDAgfTsKLSAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IEF1ZGlv
Q29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKKyAgICBBdWRp
b0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxs
cHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChpb0NvbXBvbmVudCk7CiAgICAg
aWYgKCFpb0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJD
b3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIGZpbmQgdnBp
byB1bml0IGNvbXBvbmVudCIsIHRoaXMpOwpAQCAtMjEyLDcgKzIxMyw3IEBAIE9TU3RhdHVzIENv
cmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmICFMT0dfRElTQUJMRUQK
ICAgICBDRlN0cmluZ1JlZiBuYW1lID0gbnVsbHB0cjsKLSAgICBBdWRpb0NvbXBvbmVudENvcHlO
YW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7CisgICAgUEFMOjpBdWRpb0NvbXBvbmVudENvcHlOYW1l
KGlvQ29tcG9uZW50LCAmbmFtZSk7CiAgICAgaWYgKG5hbWUpIHsKICAgICAgICAgbV9pb1VuaXRO
YW1lID0gbmFtZTsKICAgICAgICAgQ0ZSZWxlYXNlKG5hbWUpOwpAQCAtMjIwLDcgKzIyMSw3IEBA
IE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICB9CiAj
ZW5kaWYKIAotICAgIGF1dG8gZXJyID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBv
bmVudCwgJm1faW9Vbml0KTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0
YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVk
aW9Vbml0KCVwKSB1bmFibGUgdG8gb3BlbiB2cGlvIHVuaXQsIGVycm9yICVkICglLjRzKSIsIHRo
aXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yMjgs
MTMgKzIyOSwxMyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCgpCiAKICAgICBpZiAoIWVuYWJsZUVjaG9DYW5jZWxsYXRpb24oKSkgewogICAgICAgICB1aW50
MzJfdCBwYXJhbSA9IDA7Ci0gICAgICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9V
bml0LCBrQVVWb2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNzaW5nRW5hYmxlQUdDLCBrQXVkaW9V
bml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICAg
ICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1By
b3BlcnR5X1ZvaWNlUHJvY2Vzc2luZ0VuYWJsZUFHQywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwg
aW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6
OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gYXV0b21hdGljIGdhaW4gY29u
dHJvbCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAg
ICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgICAgIH0KICAgICAgICAgcGFyYW0gPSAxOwotICAg
ICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3Bl
cnR5X0J5cGFzc1ZvaWNlUHJvY2Vzc2luZywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRC
dXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9CeXBhc3NWb2ljZVByb2Nl
c3NpbmcsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihw
YXJhbSkpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxl
IHRvIHNldCB2cGlvIHVuaXQgZWNobyBjYW5jZWxsYXRpb24sIGVycm9yICVkICglLjRzKSIsIHRo
aXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAt
MjQzLDcgKzI0NCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9V
bml0KCkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWludDMyX3QgcGFyYW0gPSAx
OwotICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRV
bml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRCdXMsICZw
YXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0
eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0
U2NvcGVfSW5wdXQsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChl
cnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IGlucHV0
LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAg
ICByZXR1cm4gZXJyOwpAQCAtMjU1LDcgKzI1Niw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQog
Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVu
aXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1
cywgJm1fY2FwdHVyZURldmljZUlELCBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpKTsKKyAgICBl
cnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0
UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMs
ICZtX2NhcHR1cmVEZXZpY2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmljZUlEKSk7CiAgICAgaWYg
KGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFy
ZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgY2FwdHVy
ZSBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpbV9jYXB0dXJlRGV2
aWNlSUQsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0y
NzAsNyArMjcxLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1Vu
aXQoKQogICAgIGlmIChlcnIpCiAgICAgICAgIHJldHVybiBlcnI7CiAKLSAgICBlcnIgPSBBdWRp
b1VuaXRJbml0aWFsaXplKG1faW9Vbml0KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEluaXRp
YWxpemUobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIEF1ZGlv
VW5pdEluaXRpYWxpemUoKSBmYWlsZWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJy
LCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yOTIsNyArMjkzLDcgQEAg
dm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0Ojp1bmR1Y2soKQogT1NTdGF0dXMgQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJh
Y2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IG1pY3JvcGhvbmVDYWxsYmFjaywgdGhpcyB9OwotICAgIGF1
dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQ
cm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1
cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVk
aW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJ
bnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNr
LCBzaXplb2YoY2FsbGJhY2spKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQ
cm9jKCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBtaWMgcHJvYywgZXJyb3IgJWQgKCUuNHMp
IiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAg
LTMwMSwxNCArMzAyLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3Vy
ZU1pY3JvcGhvbmVQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbWljcm9w
aG9uZVByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtaWNyb3Bo
b25lUHJvY0Zvcm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQs
IGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQs
IGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBQQUw6
OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9j
Rm9ybWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygl
cCkgdW5hYmxlIHRvIGdldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwg
dGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9
CiAKICAgICBtaWNyb3Bob25lUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGUoKTsK
LSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNy
b3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9w
ZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5p
dFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CiAg
ICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCBv
dXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChj
aGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMyMyw3ICszMjQsNyBAQCBPU1N0
YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiBPU1N0
YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYygpCiB7CiAgICAg
QVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgc3BlYWtlckNhbGxiYWNrLCB0aGlz
IH07Ci0gICAgYXV0byBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91
dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBB
TDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRS
ZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZjYWxsYmFj
aywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJv
YyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgc3BlYWtlciBwcm9jLCBlcnJvciAlZCAoJS40
cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpA
QCAtMzMyLDE0ICszMzMsMTQgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmln
dXJlU3BlYWtlclByb2MoKQogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzcGVha2Vy
UHJvY0Zvcm1hdCA9IHsgfTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKHNwZWFrZXJQcm9j
Rm9ybWF0KTsKLSAgICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRC
dXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0
R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXpl
KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0
IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCiAgICAgc3BlYWtlclBy
b2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUp
OworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVz
LCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3Bl
YWtlclByb2MoJXApIHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQg
KCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVy
cjsKQEAgLTQ1OSw3ICs0NjAsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNsZWFudXBB
dWRpb1VuaXQoKQogICAgIH0KIAogICAgIGlmIChtX2lvVW5pdCkgewotICAgICAgICBBdWRpb0Nv
bXBvbmVudEluc3RhbmNlRGlzcG9zZShtX2lvVW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21w
b25lbnRJbnN0YW5jZURpc3Bvc2UobV9pb1VuaXQpOwogICAgICAgICBtX2lvVW5pdCA9IG51bGxw
dHI7CiAgICAgfQogCkBAIC00NzcsNyArNDc4LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlm
IChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcCht
X2lvVW5pdCk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5p
dCk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdl
YlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRp
b091dHB1dFVuaXRTdG9wIGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQp
ZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtNDkwLDcgKzQ5
MSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0
KCkKICAgICAgICAgcmV0dXJuIGVycjsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAg
ICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOworICAgICAgICBlcnIg
PSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKICAgICAgICAgaWYgKGVycikg
ewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxl
ZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAg
ICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtNTE0LDcgKzUxNSw3IEBAIE9TU3RhdHVzIENvcmVB
dWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwoKQogCiAgICAgdW5kdWNrKCk7CiAKLSAgICBl
cnIgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAgZXJyID0gUEFMOjpBdWRp
b091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzdGFydCglcCkgQXVk
aW9PdXRwdXRVbml0U3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGlu
dCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgY2xlYW51cEF1ZGlvVW5pdCgpOwpAQCAtNTUx
LDcgKzU1Miw3IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKCkKICAg
ICBpZiAoIW1faW9Vbml0IHx8ICFtX2lvVW5pdFN0YXJ0ZWQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8gZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgYXV0byBl
cnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c3RvcCglcCkgQXVkaW9PdXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cyki
LCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm47CkBAIC01NjUs
NyArNTY2LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2
aWNlKHVpbnQzMl90KiBkZXZpY2VJRCkKICAgICBBU1NFUlQobV9pb1VuaXQpOwogCiAgICAgVUlu
dDMyIHByb3BlcnR5U2l6ZSA9IHNpemVvZigqZGV2aWNlSUQpOwotICAgIGF1dG8gZXJyID0gQXVk
aW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJy
ZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZw
cm9wZXJ0eVNpemUpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1Vu
aXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCBkZXZpY2VJRCwgJnByb3BlcnR5U2l6ZSk7CiAgICAg
aWYgKGVycikKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKCVwKSB1bmFibGUgdG8gZ2V0IGRlZmF1bHQgaW5w
dXQgZGV2aWNlIElELCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZl
cnIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggM2Y0
ZTRkY2Y0MmMwZmE5M2VmOWFiNjJkZDIyYTk3YzUxMzg3MDY2My4uNTgyZjRiMjZjZjExOGM0OTcx
YWNkN2QxODMwOTIxOTdlMWU3NjgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hLmNwcApAQCAtNTYsNyArNTYsNiBAQAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5r
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1
cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tBdWRpb1NoYXJlZFVuaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQppbmRleCBhYTdmZjA4NzUwNTQyNTgyZjFl
ZjkxNjdhODFlNmZiNWE1NDhmMTUyLi5iODZiMDVlOGM2NjViYzJlODA1ZjI3YjM4YjFhNGZkMzMx
M2Y5MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAtNDQsMTQgKzQ0LDEwIEBA
CiAjaW1wb3J0IDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KICNpbXBvcnQgPENvcmVB
dWRpby9Db3JlQXVkaW9UeXBlcy5oPgogCisjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCi1TT0ZUX0xJ
TktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkKLQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVk
aW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBp
bkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIp
LCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVy
KSkKLQogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGlj
IGlubGluZSBzaXplX3QgYWxpZ25UbzE2Qnl0ZXMoc2l6ZV90IHNpemUpCiB7CkBAIC0yMjEsNyAr
MjE3LDcgQEAgdm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSgpCiAgICAgbV9h
dWRpb0J1ZmZlckxpc3QgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9zdHJlYW1G
b3JtYXQsIG1fbWF4aW1pdW1GcmFtZUNvdW50KTsKIAogICAgIENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb247Ci0gICAgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
KE5VTEwsICZtX3N0cmVhbUZvcm1hdCwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERl
c2NyaXB0aW9uKTsKKyAgICBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShOVUxM
LCAmbV9zdHJlYW1Gb3JtYXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXREZXNjcmlw
dGlvbik7CiAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRp
b24pOwogCiAgICAgc2l6ZV90IHNhbXBsZUNvdW50ID0gMiAqIHJhdGU7CkBAIC0yNDMsNyArMjM5
LDcgQEAgdm9pZCBNb2NrQXVkaW9TaGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyh1aW50MzJf
dCBmcmFtZUNvdW50KQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVCht
X2Zvcm1hdERlc2NyaXB0aW9uKTsKIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtl
KG1fc2FtcGxlc0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9
IFBBTDo6Q01UaW1lTWFrZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOwogICAgIG1f
c2FtcGxlc0VtaXR0ZWQgKz0gZnJhbWVDb3VudDsKIAogICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSksICptX2F1ZGlvQnVmZmVyTGlzdCwgQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uKG1fc3RyZWFtRm9ybWF0KSwgZnJhbWVDb3VudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggYjA1OWEzMjUxZDhiOTY1N2Jh
OTAxNGM0NGY4MDYzYWY4MjdiMWQ0My4uYjYwYjg4NjZmYmI4MDQ4OGMyM2ZlMmI1NzY5MmIzMGY4
N2UzODY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAt
NTEsNyArNTEsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VP
ckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlQ29jb2EuY3BwCmluZGV4IDU4MDk0YjM0MjBmMzljOGYyNmMxNzc3YTJhZWQwMTIzZGJl
YTI2MjguLmFhNjk2YWRkZjdmNzc5MjU5MTUyOTU4M2MyMTYwYzEyNDkxMWQ1NWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNDAs
NyArNDAsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlPiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmIGF1ZGlvVHJhY2ss
IFN0cmluZyYmIGF1ZGlvVHJhY2tJZCkKIHsKQEAgLTEzMSw3ICsxMzAsNyBAQCB2b2lkIFJlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hOjpPbkRhdGEoY29uc3Qgdm9pZCogYXVkaW9EYXRh
LCBpbnQgYml0c1BlcgogICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IDA7CiAgICAgfQog
Ci0gICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgc2Ft
cGxlUmF0ZSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX251bWJl
ck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRp
YVRpbWUoc3RhcnRUaW1lKTsKICAgICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJhbWVz
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0K
aW5kZXggOGRmOGY2OGY2ZjcyNDA0NzVkYmQ0MzIzMDZhYTNhNTY5ZjZlNDhjZi4uMGM3MWUxZGIx
MGZhNDM3YTdjMDA0M2QzNjRmNDRiZjcyMzcxMWM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtNDIsNyArNDIsNiBAQCBBTExPV19V
TlVTRURfUEFSQU1FVEVSU19FTkQKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlPiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmIHZp
ZGVvVHJhY2ssIFN0cmluZyYmIHRyYWNrSWQpCiB7CkBAIC0xNzMsMTkgKzE3MiwxOSBAQCB2b2lk
IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpPbkZyYW1lKGNvbnN0IHdlYnJ0Yzo6
VmlkZW9GcmFtZSYgZnJhbWUpCiAgICAgfQogCiAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWlu
Z0luZm87Ci0gICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVRpbWVNYWtl
KGZyYW1lLnRpbWVzdGFtcF91cygpLCAxMDAwMDAwKTsKLSAgICB0aW1pbmdJbmZvLmRlY29kZVRp
bWVTdGFtcCA9IGtDTVRpbWVJbnZhbGlkOwotICAgIHRpbWluZ0luZm8uZHVyYXRpb24gPSBrQ01U
aW1lSW52YWxpZDsKKyAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IFBBTDo6
Q01UaW1lTWFrZShmcmFtZS50aW1lc3RhbXBfdXMoKSwgMTAwMDAwMCk7CisgICAgdGltaW5nSW5m
by5kZWNvZGVUaW1lU3RhbXAgPSBQQUw6OmtDTVRpbWVJbnZhbGlkOworICAgIHRpbWluZ0luZm8u
ZHVyYXRpb24gPSBQQUw6OmtDTVRpbWVJbnZhbGlkOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIE9TU3RhdHVzIG9zdGF0dXMgPSBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsK
KyAgICBPU1N0YXR1cyBvc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilw
aXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAob3N0YXR1cyAhPSBub0Vy
cikgewogICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJG
YWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciAi
LCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBvc3RhdHVzID0gQ01TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAo
Q1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJ
bmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBvc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVm
ZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1w
bGVCdWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9z
dGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJ
REVOVElGSUVSLCAiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgc2FtcGxlIGJ1ZmZlciB3aXRoIGVycm9y
ICIsIHN0YXRpY19jYXN0PGludD4ob3N0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNmJmMGNhNDg3ZGQ2NGRiZWY1Mzlk
OTQ4ODBmNjI4YzdmYTE2MWJmMS4uZTMzYmI2ZGE5ZGRkZDAxYTAwZDk5NmZkOWVmMDJhYzk4MTRh
MWViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29j
b2EuY3BwCkBAIC00NSw3ICs0NSw2IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogI2lu
Y2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+IFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZT4mJiB2aWRlb1NvdXJjZSkKIHsKQEAgLTg1LDcgKzg0LDcgQEAgdm9pZCBSZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKICAgICB9CiAKICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9
PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKLSAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsK
KyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNh
bXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIGF1dG8gcGl4ZWxGb3JtYXRUeXBlID0gQ1ZQaXhl
bEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiAKICAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gY29udmVydGVkQnVmZmVyID0gcGl4ZWxCdWZmZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxh
eUNhcHR1cmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQppbmRleCA3OGJiY2FkMTM5OTg2MmY1NWI5NzBi
ZTQ3N2YyNTE0YzRmMzQ4NDU0Li4xMjkzZGE1NTlmOTI5YTdhZWVjNTRkMDdhYTlhZTRmOTk0Zjk1
YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KQEAgLTQ2LDcgKzQ2
LDYgQEAKIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0dJbWFnZSk7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29sIGFueU9mQ0dXaW5k
b3coY29uc3QgRnVuY3Rpb248Ym9vbChDRkRpY3Rpb25hcnlSZWYgaW5mbywgdW5zaWduZWQgaWQs
IGNvbnN0IFN0cmluZyYgdGl0bGUpPiYgcHJlZGljYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9pb3MvV2ViSWNvblV0aWxpdGllcy5tbQppbmRleCA0ZWEzZGU4NmNiYjQ0NDE5ZGE2ZTFm
NDkzYmVhODM5MDU1ZGQxODVlLi5mNmIzY2U5MWQ1MjU2MjJkMWRiMWYyMDE3ZTgxMTExNTU1OTZl
M2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGll
cy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGllcy5tbQpA
QCAtMTI0LDcgKzEyNCw3IEBAIFJldGFpblB0cjxVSUltYWdlPiBpY29uRm9yVmlkZW9GaWxlKE5T
VVJMICpmaWxlKQogICAgIFtnZW5lcmF0b3Igc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNm
b3JtOllFU107CiAKICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKLSAgICBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gaW1hZ2VSZWYgPSBhZG9wdENGKFtnZW5lcmF0b3IgY29weUNHSW1hZ2VBdFRpbWU6
a0NNVGltZVplcm8gYWN0dWFsVGltZTpuaWwgZXJyb3I6JmVycm9yXSk7CisgICAgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IGltYWdlUmVmID0gYWRvcHRDRihbZ2VuZXJhdG9yIGNvcHlDR0ltYWdlQXRU
aW1lOlBBTDo6a0NNVGltZVplcm8gYWN0dWFsVGltZTpuaWwgZXJyb3I6JmVycm9yXSk7CiAgICAg
aWYgKCFpbWFnZVJlZikgewogICAgICAgICBMT0dfRVJST1IoIkVycm9yIGNyZWF0aW5nIGltYWdl
IGZvciB2aWRlbyAnJUAnOiAlQCIsIGZpbGUsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbGxi
YWNrSWNvbkZvckZpbGUoZmlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKaW5kZXgg
YTE2ZDI0MjU2NDFmMzdhMTlkMGMwOWU1NGJjM2VlZjRhYTI4MThlYS4uMGJhYzFlMjg5ZTc3NzJl
YWU3ZTZiMzY5ODEwODU5NGI3YTY4Njg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNw
cApAQCAtMzQsMTcgKzM0LDE3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIGNyZWF0ZVdy
YXBwZXIoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFibGUqIGJhc2VW
VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwgQ01CYXNlT2JqZWN0UmVmKiB3cmFwcGVyKQog
ewotICAgIHJldHVybiBDTURlcml2ZWRPYmplY3RDcmVhdGUoYWxsb2NhdG9yLCBiYXNlVlRhYmxl
LCBjbGFzc0lELCB3cmFwcGVyKSA9PSBub0VycjsKKyAgICByZXR1cm4gUEFMOjpDTURlcml2ZWRP
YmplY3RDcmVhdGUoYWxsb2NhdG9yLCBiYXNlVlRhYmxlLCBjbGFzc0lELCB3cmFwcGVyKSA9PSBu
b0VycjsKIH0KIAogdm9pZCogd3JhcHBlclN0b3JhZ2UoQ01CYXNlT2JqZWN0UmVmIHdyYXBwZXIp
CiB7Ci0gICAgcmV0dXJuIENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOwor
ICAgIHJldHVybiBQQUw6OkNNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOwog
fQogCiBjb25zdCBDTUJhc2VWVGFibGUqIHdyYXBwZXJWVGFibGUoQ01CYXNlT2JqZWN0UmVmIHdy
YXBwZXIpCiB7Ci0gICAgcmV0dXJuIENNQmFzZU9iamVjdEdldFZUYWJsZSh3cmFwcGVyKTsKKyAg
ICByZXR1cm4gUEFMOjpDTUJhc2VPYmplY3RHZXRWVGFibGUod3JhcHBlcik7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKaW5kZXggYzE4
NGU0NDdiMmNkNDQyYTg0N2VjMzE2MjMzNmI2ZmFmNzg3M2M3Yy4uNWU3NzhjYzBiN2JkYTc0ZTNm
NzVjOTliNThiYThiZmEyNTE3MjkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3Bw
CkBAIC00Nyw3ICs0Nyw2IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoTVRQbHVnaW5Gb3Jt
YXRSZWFkZXIpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lk
ZW50aWZpZXIoKQpAQCAtMjQ1LDcgKzI0NCw3IEBAIE9TU3RhdHVzIE1lZGlhRm9ybWF0UmVhZGVy
Ojpjb3B5UHJvcGVydHkoQ0ZTdHJpbmdSZWYga2V5LCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0CiAg
ICAgaWYgKG1fZHVyYXRpb24uaXNJbmRlZmluaXRlKCkpCiAgICAgICAgIHJldHVybiBrQ01CYXNl
T2JqZWN0RXJyb3JfVmFsdWVOb3RBdmFpbGFibGU7CiAKLSAgICBpZiAoYXV0byBsZWFrZWREdXJh
dGlvbiA9IGFkb3B0Q0YoQ01UaW1lQ29weUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1lKG1fZHVy
YXRpb24pLCBhbGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKKyAgICBpZiAoYXV0byBsZWFrZWREdXJh
dGlvbiA9IGFkb3B0Q0YoUEFMOjpDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5KFBBTDo6dG9DTVRpbWUo
bV9kdXJhdGlvbiksIGFsbG9jYXRvcikpLmxlYWtSZWYoKSkgewogICAgICAgICAqcmVpbnRlcnBy
ZXRfY2FzdDxDRkRpY3Rpb25hcnlSZWYqPih2YWx1ZUNvcHkpID0gbGVha2VkRHVyYXRpb247CiAg
ICAgICAgIHJldHVybiBub0VycjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJh
bmdlLmNwcAppbmRleCBkODNlZmNmNDc3NWNlOTZiMTJhODc2MGY4ZDE3MjM0YWIwZjFlZTdkLi40
ZGUxZDBlZDJhN2JlNDllM2NiYmI5NWUzNzdmNTQ1MDlmYWMwN2FkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFu
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9N
ZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAKQEAgLTI1LDEyICsyNSwxMiBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVCeXRlUmFuZ2UuaCIKKyNpbmNsdWRlIDxw
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogI2lmIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFE
RVIpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5
dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNv
dXJjZSwgdWludDY0X3QgdHJhY2tJRCkKQEAgLTUwLDcgKzUwLDcgQEAgTWVkaWFTYW1wbGVCeXRl
UmFuZ2U6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIE1UUGx1Z2lu
Qnl0ZVNvdXIKICAgICBhdXRvIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxl
KCk7CiAgICAgc3dpdGNoIChwbGF0Zm9ybVNhbXBsZS50eXBlKSB7CiAgICAgY2FzZSBQbGF0Zm9y
bVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlOgotICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9u
ID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpOworICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6
OkJ5dGVSYW5nZVNhbXBsZVR5cGU6CiAgICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBwbGF0
Zm9ybVNhbXBsZS5zYW1wbGUuYnl0ZVJhbmdlU2FtcGxlLnNlY29uZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFT
YW1wbGVDdXJzb3IuY3BwCmluZGV4IGNlMjkwNmRjNDQyOWI4NzUxNGE3YjAwYzMyMTczOTJkNTA3
YjNmOTUuLmZiZTQyMjczMDZmODBmNjFjMTI3YzMzOGM3MWVmYTU0YTJkMjBjODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBs
ZUN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcApAQCAtNDMsNyArNDMsNiBAQCBXVEZfREVDTEFSRV9D
Rl9UWVBFX1RSQUlUKE1UUGx1Z2luU2FtcGxlQ3Vyc29yKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3Rh
dGljIE1lZGlhVGltZSBhc3N1bWVkRGVjb2RlVGltZShjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRh
dGlvblRpbWUsIERlY29kZU9yZGVyU2FtcGxlTWFwJiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1Jl
YWRlci5jcHAKaW5kZXggOTA4NjFjODRkZGU2YzY2ZGRiODc3OTNhYjIzMDZhNjZlNGRlYjczMS4u
MWRjMWNhZTAzMDA4ZTBhMjBhNDRhYzczZDFhYTM3MjUzNTdmMjBmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRp
YVRyYWNrUmVhZGVyLmNwcApAQCAtNDcsNyArNDcsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RS
QUlUKE1UUGx1Z2luVHJhY2tSZWFkZXIpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBDTUJhc2VDbGFzc0lE
IE1lZGlhVHJhY2tSZWFkZXI6OndyYXBwZXJDbGFzc0lEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29y
ZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGll
cy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbQppbmRleCAxN2Q3OWYxNjEwNTZhMDEwYTRl
YWM1ODJmZDI3ODY4ZjM4OGE2MjExLi4xZTM4ZGU1ZGJkYTllMTU3MTI4ZjFmNDBkYWFkMWM0OTE5
MGUzMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFj
dGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5h
dG9yLm1tCkBAIC0xMDIsOCArMTAyLDYgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmVmPEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yPiBH
cm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6Y3JlYXRlKEdyb3VwQWN0aXZpdGllc1Nlc3Npb24m
IHNlc3Npb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR3JvdXBBY3Rpdml0aWVzQ29v
cmRpbmF0b3Ioc2Vzc2lvbikpOwpAQCAtMTU0LDcgKzE1Miw3IEBAIHZvaWQgR3JvdXBBY3Rpdml0
aWVzQ29vcmRpbmF0b3I6OmxlYXZlKCkKIAogdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRv
cjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBDb29yZGluYXRvckNvbXBsZXRpb25IYW5kbGVyJiYgY2Fs
bGJhY2spCiB7Ci0gICAgW21fcGxheWJhY2tDb29yZGluYXRvciBjb29yZGluYXRlU2Vla1RvVGlt
ZTpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgMTAwMCkgb3B0aW9uczowXTsKKyAgICBbbV9w
bGF5YmFja0Nvb3JkaW5hdG9yIGNvb3JkaW5hdGVTZWVrVG9UaW1lOlBBTDo6Q01UaW1lTWFrZVdp
dGhTZWNvbmRzKHRpbWUsIDEwMDApIG9wdGlvbnM6MF07CiAgICAgY2FsbGJhY2soc3RkOjpudWxs
b3B0KTsKIH0KIApAQCAtMjExLDEwICsyMDksMTAgQEAgdm9pZCBHcm91cEFjdGl2aXRpZXNDb29y
ZGluYXRvcjo6aXNzdWVQbGF5Q29tbWFuZChBVkRlbGVnYXRpbmdQbGF5YmFja0Nvb3JkaW5hdG8K
IAogICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBpdGVtVGltZTsKICAgICBpZiAoQ01USU1FX0lT
X05VTUVSSUMocGxheUNvbW1hbmQuaXRlbVRpbWUpKQotICAgICAgICBpdGVtVGltZSA9IENNVGlt
ZUdldFNlY29uZHMocGxheUNvbW1hbmQuaXRlbVRpbWUpOworICAgICAgICBpdGVtVGltZSA9IFBB
TDo6Q01UaW1lR2V0U2Vjb25kcyhwbGF5Q29tbWFuZC5pdGVtVGltZSk7CiAgICAgc3RkOjpvcHRp
b25hbDxNb25vdG9uaWNUaW1lPiBob3N0VGltZTsKICAgICBpZiAoQ01USU1FX0lTX05VTUVSSUMo
cGxheUNvbW1hbmQuaG9zdENsb2NrVGltZSkpCi0gICAgICAgIGhvc3RUaW1lID0gTW9ub3Rvbmlj
VGltZTo6ZnJvbU1hY2hBYnNvbHV0ZVRpbWUoQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVt
VW5pdHMocGxheUNvbW1hbmQuaG9zdENsb2NrVGltZSkpOworICAgICAgICBob3N0VGltZSA9IE1v
bm90b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKFBBTDo6Q01DbG9ja0NvbnZlcnRIb3N0
VGltZVRvU3lzdGVtVW5pdHMocGxheUNvbW1hbmQuaG9zdENsb2NrVGltZSkpOwogCiAgICAgY2xp
ZW50KCktPnBsYXlTZXNzaW9uKGl0ZW1UaW1lLCBob3N0VGltZSwgW2NhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldIChib29sKSB7CiAgICAgICAgIGNhbGxiYWNrKCk7CkBAIC0yNDYsNyArMjQ0
LDcgQEAgdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6aXNzdWVTZWVrQ29tbWFuZChB
VkRlbGVnYXRpbmdQbGF5YmFja0Nvb3JkaW5hdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGNsaWVudCgpLT5zZWVrU2Vzc2lvblRvVGltZShDTVRpbWVHZXRTZWNvbmRzKHNlZWtDb21t
YW5kLml0ZW1UaW1lKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChib29sKSBtdXRh
YmxlIHsKKyAgICBjbGllbnQoKS0+c2Vla1Nlc3Npb25Ub1RpbWUoUEFMOjpDTVRpbWVHZXRTZWNv
bmRzKHNlZWtDb21tYW5kLml0ZW1UaW1lKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
IChib29sKSBtdXRhYmxlIHsKICAgICAgICAgY2FsbGJhY2soKTsKICAgICB9KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2Eu
bW0KaW5kZXggNDI3OTY5YzI4MjExOGFjM2MzZDc3MDgzZWFiODJkOTVmZDBhYmVmZi4uMTcxZDlj
YTQ4NDkxNWQ3YWY0ZWVhZDY5NzA5OTkxZTUwNGQ0Mjc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTI2OSw3
ICsyNjksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0
cmF0aW9ucygpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAgIGlmICghaXNBdWRp
b1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxvYWRfQXVkaW9Ub29sYm94
Q29yZV9BdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucygpKQorICAgIGlmICgh
UEFMOjppc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhUEFMOjpjYW5M
b2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlv
bnMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0
X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJD
b2NvYS5tbQppbmRleCBmMzc4NGZjMjcxMmIwZGY2Mzg3MTIwNDdjZDcyZjg1MzBjNzc3MjM0Li4y
YTgzZDk3MTBiZjcyNTVlNTkzODVjMWIxZjY1OTM0YzI2MzA1NTVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5h
Z2VyQ29jb2EubW0KQEAgLTQyLDcgKzQyLDYgQEAgQGVuZAogTlNfQVNTVU1FX05PTk5VTExfRU5E
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgYm9vbCB1c2FnZVRyYWNraW5nQXZhaWxhYmxlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmNwcAppbmRleCBjMzIzYTZhNzhiNDUwMDViNjc3NDA4NjJiNjI5YjE2
ZmJiODBmNDBiLi5mODkxYTUzMzE0NTBiZjE3ZWFmOTViMDBlMzE4ZGFlM2M3Mzg3NTRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5h
Z2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkuY3BwCmluZGV4IDk1YmJkNTQ4M2NmZWExN2M5MTJlZDViNWYxM2Y0MzFmYWUzNzEy
NjcuLjhhNTlhZTFhMjhmYTQzYTliMmYyMTU3NjIxMTg5YWU5NzZkMTAyZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBu
YW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRl
eCA2NmExOWU3M2E5ZWI1NjRkY2NlMDc3N2RjMzIwMGU0YzBiYzkzYzYwLi44YWNjM2QwYThhYjFj
Y2Q0YjNmZWNhZDYwYjNhNmJjM2FlNjQzMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEzOTIsNyArMTM5Miw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyhjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAg
IGlmICghaXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxvYWRf
QXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucygp
KQorICAgIGlmICghUEFMOjppc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8
fCAhUEFMOjpjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZl
clJlZ2lzdHJhdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZWdpc3RyYXRp
b25zID0gYWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YS5kYXRh
KCksIGRhdGEuc2l6ZSgpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432127</attachid>
            <date>2021-06-23 19:25:48 -0700</date>
            <delta_ts>2021-06-27 19:17:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210624122546.patch</filename>
            <type>text/plain</type>
            <size>314771</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxYWM3ZDA0MjEwOWQ2
MDlmMGU3ZTdjN2MyNjQ1MGE1ZWJkYjY0Ni4uY2VjOTc1OTMzODFjNGE1NTljNmRlYWRkYTE4OGQ4
ZGFiOWRlMGM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlcyBv
ZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFVuaWZ5IEF1ZGlvVG9vbGJveCwgQ29yZU1lZGlhLCBWaWRlb1Rvb2xib3ggYW5k
IE1lZGlhVG9vbGJveCdzIG1ldGhvZAorICAgICAgICBkZWZpbml0aW9ucyBhbmQgdGhlaXIgdXNl
LCBlbnN1cmluZyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzb2Z0LWxpbmtlZC4KKyAgICAgICAgVW5p
ZmllZCBidWlsZHMgYW5kIHRoZSBpbmNvbnNpc3RlbnQgdXNlIG9mIGV4cGxpY2l0bHkgdXNpbmcg
dGhlIFBBTCBuYW1lc3BhY2UKKyAgICAgICAgY2F1c2VkIHNvbWUgY2FsbHMgdG8gYmUgYW1iaWd1
b3VzIGxlYWRpbmcgdG8gY29tcGlsYXRpb24gZXJyb3JzOyBzb21lCisgICAgICAgIGNvZGUgd291
bGQgYWxzbyB1c2UgdGhlIHNvZnRsaW5rZWQgbWV0aG9kcyB3aGlsZSBvdGhlcnMgY2FsbGVkIGlu
dG8gdGhlIGZyYW1ld29ya3MKKyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIFRvIGdldCBhcm91
bmQgdGhvc2Ugd2UgZW5zdXJlIHRoYXQgYW55IGNhbGxzIHRvIEF1ZGlvVG9vbGJveCBvciBDb3Jl
TWVkaWEgaXMgYWx3YXlzIHVzaW5nCisgICAgICAgIHRoZSBmdWxseSByZXNvbHZlZCBQQUwgbmFt
ZS4KKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGB1c2luZyBuYW1lc3BhY2UgUEFMO2Agc3Rh
dGVtZW50cyB3aGVyZXZlciBhcHBsaWNhYmxlLgorICAgICAgICBObyBjaGFuZ2UgaW4gb2JzZXJ2
YWJsZSBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5w
cmVwYXJlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUltYWdlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50
TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlk
Q2hhbmdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpk
ZXN0cm95TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjp2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJS
ZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGVJbWFnZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnBy
ZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkZWNvZGVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6ZHVyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpzaXplSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFW
Rk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZG9l
c0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1ZmZl
ckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1wbGVC
dWZmZXJOb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6cHJlc2VudGF0aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1w
bGVBVkZPYmpDOjppc0RpdmlzYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OmRpdmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZm
ZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3Vt
ZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpB
dWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0NNQ29sb3JQcmltYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01U
cmFuc2ZlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0NNWUNiQ1JNYXRy
aXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJh
aXQ8Q01TYW1wbGVCdWZmZXJSZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmRlY29kZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjph
dXRvbWF0aWNEZXF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5I
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRh
dGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVr
YWJsZVJhbmdlc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93
V2F0ZXJUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0Nv
bXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFz
c2V0V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVk
aW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmlj
ZUNsb2NrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpj
b25maWd1cmVNaWNyb3Bob25lUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVk
aW9TaGFyZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2E6Ok9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW06CisKIDIwMjEtMDYtMjEgIEplYW4t
WXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1l
dGhvZCBpbiBBdWRpb0ZpbGVSZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGRlZmQ3Yjc2ZTc2
YTAwODNiNmY4YjU2MzY4MjcwZGNmMjM3OWRlYTYuLjgxMWQ2ODY2YTM0MDc0YjNmNDc0ZTQxNzNj
ZjQ3NzZmMDM1ODA5NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIx
LTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgTm90
IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgor
ICAgICAgICAqIHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWV0aG9kcyB3aG9z
ZSBkZWZpbml0aW9ucyB3ZXJlIHNjYXR0ZXJlZCBhY3Jvc3MKKyAgICAgICAgdGhlIGNvZGUuCisg
ICAgICAgICogcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBw
YWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaDogU2FtZSBhcyBhYm92ZS4KKyAgICAgICAg
KiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9BdWRp
b1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisgICAgICAgICogcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kcworICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hT
b2Z0TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg6IEFk
ZCBtaXNzaW5nIG1ldGhvZHMgYW5kIGZpeCBzb21lIHNwZWxsaW5nIGluIGRlZmluZSBuYW1lcwor
ICAgICAgICAqIHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICog
cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmg6IEFkZCBtaXNzaW5nIG1ldGhvZHMKKwog
MjAyMS0wNi0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29jb2FdIE1ha2UgdGhlIGhvc3RUaW1lIHBhcmFtZXRlciB0byBwbGF5U2Vzc2lvbiBhIE1vbm90
b25pYyB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU3ZGNiNTZmYmE4MDNmNmZjMTJkMTk0NGE1MGNiNWNjZmI4
MWY2MjQuLjVmOGI2MzU4YmZjNjgxZDhkODM2MDFjYTg1ZGMxOWI4NmZkODRlNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFw
cGxlLmNvbT4KKworICAgICAgICBOb3QgYWxsIHVzZXMgb2YgQXVkaW9Ub29sYm94IGZyYW1ld29y
ayB1c2Ugc29mdCBsaW5raW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjcyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NjA2MDkwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAgIChXZWJLaXQ6OndyYXBwZXJTdG9yYWdl
KToKKyAgICAgICAgKFdlYktpdDo6d3JhcHBlclZUYWJsZSk6CisgICAgICAgICogU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpjb3B5UHJvcGVydHkpOgorICAgICAgICAqIFNoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVNhbXBsZUJ5dGVSYW5nZTo6TWVkaWFTYW1wbGVCeXRlUmFuZ2UpOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3Bw
OgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRl
ci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJl
Z2lzdHJhdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdl
TWFuYWdlckNvY29hLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjb25zdW1lQXVk
aW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKwogMjAyMS0wNi0yMyAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2lPUyAxNSBSZWdyZXNzaW9uXTog
c2Nyb2xsIHBvc2l0aW9uIHJlc2V0cyB3aGVuIHVzaW5nIHNjcm9sbCBzbmFwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9u
QmFja2VuZC5jcHAKaW5kZXggNmE4MjNkNjFhZDEwMTAzMmJiZTE5NGE2MmI1YjYxNTZkMjNjYWIx
Mi4uMDljMmVhMzI5YzJjMGNhNmVlNmY3YmEzYTJjNDRhZGY4MzQ4ZTVmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcApAQCAtNTMsOCArNTMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KICNpZiAhVVNFKExJQldFQlJUQykKIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8UGVlckNvbm5lY3Rpb25CYWNrZW5kPiBjcmVhdGVOb1BlZXJDb25uZWN0aW9u
QmFja2VuZChSVENQZWVyQ29ubmVjdGlvbiYpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KaW5k
ZXggNDAwZjliOGQxNmI1OTNiNDg1ZTAwYzdmNzhmNTlkZTk4ZGMzN2Q5Zi4uNzQ5OTRlMmM1MTAw
ZWNhYmE2MTU5MGZiMTE4MGFhMGJjMzdiMGRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpA
QCAtNTgsNyArNTgsNiBAQAogI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogc3RhdGljIEpTVmFsdWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNv
bnRleHQoaWQsIEpTQ29udGV4dCAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRl
eCA1YjEzNWIzOWE1YTBhMWQ4MDFiZTY4NzhmYmRmZjY3NjZjMmU4YWNlLi5mMWMyYWYzM2M1ZmEy
YWI2ZmM1MTY2OTk4M2ZhNzBlNzY5NjQwMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2Eu
Y3BwCkBAIC0zNyw4ICszNyw2IEBACiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg+CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgaW5saW5lIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiBzdHJlYW1EZXNjcmlwdGlvbihzaXplX3Qgc2FtcGxlUmF0ZSwgc2l6ZV90IGNo
YW5uZWxDb3VudCkKQEAgLTcxLDcgKzY5LDcgQEAgdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNl
Ojpjb25zdW1lQXVkaW8oQXVkaW9CdXMmIGJ1cywgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2Uo
bV9udW1iZXJPZkZyYW1lcywgbV9jdXJyZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpKTsKKyAgICBD
TVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVNYWtlKG1fbnVtYmVyT2ZGcmFtZXMsIG1fY3Vy
cmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSk7CiAgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyArPSBudW1iZXJPZkZy
YW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xi
b3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNv
ZnRMaW5rLmNwcAppbmRleCA2N2I3OGY0NmE3ODExNzg4OGYwMGQwODk3ZGJhNTdlN2FjNTM4NTAy
Li4zMzNhYTIyNGM3MWE3NTBjZDlhMGY2OWY3ODNkZDAxNTk3NTEwYWM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMjYs
MjAgKzI2LDQ2IEBACiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW5jbHVkZSA8QXVkaW9U
b29sYm94L0F1ZGlvQ29tcG9uZW50Lmg+CiAjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29u
dmVydGVyLmg+CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvRmlsZS5oPgogI2luY2x1ZGUg
PEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1hdC5oPgotCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1
ZGlvVW5pdC5oPgorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9FeHRlbmRlZEF1ZGlvRmlsZS5oPgog
I2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9T
T1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlvVG9vbGJveENvcmUsIFBBTF9FWFBPUlQpCiAK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bnZlcnRlckdldFByb3BlcnR5SW5mbywgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1
ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50
MzIqIG91dFNpemUsIEJvb2xlYW4qIG91dFdyaXRhYmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGlu
UHJvcGVydHlJRCwgb3V0U2l6ZSwgb3V0V3JpdGFibGUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRm9ybWF0R2V0UHJvcGVydHksIE9TU3Rh
dHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluU3BlY2lm
aWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVjaWZpZXIsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFT
aXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5Qcm9wZXJ0eUlELCBpblNwZWNpZmllclNp
emUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBp
blNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3Rp
bmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5T
b3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZl
cnRlckRpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRl
ciksIChpbkF1ZGlvQ29udmVydGVyKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1
ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJ
RCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQqIGlu
UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0
eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMs
IChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3Bl
cnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0
UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0
eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIs
IE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGlu
TnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRp
b0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQ
Q01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRwdXREYXRhKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4
QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1
ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVByb2MgaW5JbnB1dERhdGFQcm9jLCB2b2lkKiBp
bklucHV0RGF0YVByb2NVc2VyRGF0YSwgVUludDMyKiBpb091dHB1dERhdGFQYWNrZXRTaXplLCBB
dWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEsIEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRp
b24qIG91dFBhY2tldERlc2NyaXB0aW9uKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluSW5wdXREYXRh
UHJvYywgaW5JbnB1dERhdGFQcm9jVXNlckRhdGEsIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIG91
dE91dHB1dERhdGEsIG91dFBhY2tldERlc2NyaXB0aW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0
dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0b3AsIE9TU3RhdHVzLCAoQXVkaW9V
bml0IGNpKSwgKGNpKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0Nv
bXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAoaW5JbnN0YW5jZSkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRDb3B5TmFt
ZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQ0ZTdHJpbmdSZWYqIG91
dE5hbWUpLCAoaW5Db21wb25lbnQsIG91dE5hbWUpKQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlv
Q29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiog
b3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIChvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJh
dGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGluQnVuZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1
bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVk
aW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tz
LCBPU1N0YXR1cywgKHZvaWQgKmluQ2xpZW50RGF0YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVh
ZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2MgaW5Xcml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXpl
UHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0ZpbGVfU2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywg
QXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVIaW50LCBBdWRpb0ZpbGVJRCAqb3V0QXVkaW9GaWxl
KSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVuYywgaW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMs
IGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVIaW50LCBvdXRBdWRpb0ZpbGUpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bv
c2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVk
aW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5F
eHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIg
KmlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9G
aWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRp
b0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUlu
dDMyICppb051bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICppb0RhdGEpLCAoaW5FeHRBdWRp
b0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJ
RCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmlu
UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlE
YXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMs
IChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmls
ZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1
ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJv
eCwgRXh0QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVk
aW9GaWxlUmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9u
ZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uKiBpbkRlc2MpLCAoaW5Db21wb25l
bnQsIGluRGVzYykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVu
dCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5D
b21wb25lbnQsIG91dEluc3RhbmNlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1Vu
aXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2Nv
cGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlv
RGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlv
RGF0YVNpemUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChp
blVuaXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlv
VW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxl
bWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAo
aW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCiAK
ICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCmluZGV4IDQ5ZTMyZTE3OTQwMzYzYjg0OTc3NDQz
NWJkMjA5NWU2NGFiNDg4MWIuLmRkZjEzYTAyN2E0NWEyMmI4Mzk4ZDEzNWU4ZTBiM2RmYzY4NTUy
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRM
aW5rLmgKQEAgLTI2LDI3ICsyNiwxMTQgQEAKIAogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNp
bmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvU29mdExp
bmtpbmcuaD4KIAogdHlwZWRlZiBVSW50MzIgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEOwogdHlw
ZWRlZiBVSW50MzIgQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEOwogdHlwZWRlZiBzdHJ1Y3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbjsKIHR5cGVk
ZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29udmVydGVyKiBBdWRpb0NvbnZlcnRlclJlZjsKK3R5cGVk
ZWYgc3RydWN0IEF1ZGlvQnVmZmVyTGlzdCBBdWRpb0J1ZmZlckxpc3Q7Cit0eXBlZGVmIE9TU3Rh
dHVzICgqQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYykoQXVkaW9Db252ZXJ0ZXJS
ZWYgaW5BdWRpb0NvbnZlcnRlciwKKyAgICBVSW50MzIqIGlvTnVtYmVyRGF0YVBhY2tldHMsCisg
ICAgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEsCisgICAgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlw
dGlvbioqIG91dERhdGFQYWNrZXREZXNjcmlwdGlvbiwKKyAgICB2b2lkKiBpblVzZXJEYXRhKTsK
KwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlRXh0QXVkaW9GaWxlKiBFeHRBdWRpb0ZpbGVSZWY7Cit0
eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0ZpbGVJRCogQXVkaW9GaWxlSUQ7Cit0eXBlZGVmIFVJ
bnQzMiBBdWRpb0ZpbGVUeXBlSUQ7Cit0eXBlZGVmIFVJbnQzMiBFeHRBdWRpb0ZpbGVQcm9wZXJ0
eUlEOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9SZWFkUHJvYykoCisgICAgdm9pZCog
aW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBpblBvc2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0
Q291bnQsCisgICAgdm9pZCogYnVmZmVyLAorICAgIFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlw
ZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9Xcml0ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50
RGF0YSwKKyAgICBTSW50NjQgaW5Qb3NpdGlvbiwKKyAgICBVSW50MzIgcmVxdWVzdENvdW50LAor
ICAgIGNvbnN0IHZvaWQqIGJ1ZmZlciwKKyAgICBVSW50MzIqIGFjdHVhbENvdW50KTsKK3R5cGVk
ZWYgU0ludDY0ICgqQXVkaW9GaWxlX0dldFNpemVQcm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERh
dGEpOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9TZXRTaXplUHJvYykoCisgICAgdm9p
ZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBpblNpemUpOwordHlwZWRlZiBzdHJ1Y3QgT3Bh
cXVlQXVkaW9Db21wb25lbnQqIEF1ZGlvQ29tcG9uZW50OworCisjaWYgVEFSR0VUX09TX0lQSE9O
RSB8fCAoZGVmaW5lZChBVURJT0NPTVBPTkVOVF9OT0NBUkJPTklOU1RBTkNFUykgJiYgQVVESU9D
T01QT05FTlRfTk9DQVJCT05JTlNUQU5DRVMpCit0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0Nv
bXBvbmVudEluc3RhbmNlKiBBdWRpb0NvbXBvbmVudEluc3RhbmNlOworI2Vsc2UKK3R5cGVkZWYg
c3RydWN0IENvbXBvbmVudEluc3RhbmNlUmVjb3JkKiBBdWRpb0NvbXBvbmVudEluc3RhbmNlOwor
I2VuZGlmCit0eXBlZGVmIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgQXVkaW9Vbml0OworCit0eXBl
ZGVmIHN0cnVjdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uIEF1ZGlvQ29tcG9uZW50RGVzY3Jp
cHRpb247Cit0eXBlZGVmIFVJbnQzMiBBdWRpb1VuaXRQcm9wZXJ0eUlEOwordHlwZWRlZiBVSW50
MzIgQXVkaW9Vbml0U2NvcGU7Cit0eXBlZGVmIFVJbnQzMiBBdWRpb1VuaXRFbGVtZW50OwogCiBT
T0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZUX0xJ
TktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3hDb3JlKQogCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJH
ZXRQcm9wZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZl
cnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBvdXRT
aXplLCBCb29sZWFuKiBvdXRXcml0YWJsZSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5
SUQsIG91dFNpemUsIG91dFdyaXRhYmxlKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJHZXRQcm9w
ZXJ0eUluZm8gc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJ
bmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVk
aW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1
ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50
MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9D
b252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURh
dGEpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZl
cnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRp
b25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKICNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJOZXcg
c29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyTmV3CitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlLCBP
U1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIpLCAoaW5BdWRpb0Nv
bnZlcnRlcikpCisjZGVmaW5lIEF1ZGlvQ29udmVydGVyRGlzcG9zZSBzb2Z0TGlua19BdWRpb1Rv
b2xib3hfQXVkaW9Db252ZXJ0ZXJEaXNwb3NlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0dXMs
IChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3Bl
cnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lk
KiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIGluUHJv
cGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlclNl
dFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlclNldFByb3BlcnR5
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9G
b3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9w
ZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwg
VUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChpblBy
b3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6
ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyQ29udmVydENv
bXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRl
ciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGluSW5w
dXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZlcnRl
ciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRwdXREYXRhKSkKKyNkZWZp
bmUgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlciBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcgorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhC
dWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVk
aW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGlu
SW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIqIGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1
ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlv
biogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQ
cm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgaW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0
T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRpb24pKQorI2RlZmluZSBBdWRpb0NvbnZlcnRl
ckZpbGxDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckZp
bGxDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlv
VG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwg
KGNpKSkKKyNkZWZpbmUgQXVkaW9PdXRwdXRVbml0U3RhcnQgc29mdExpbmtfQXVkaW9Ub29sYm94
X0F1ZGlvT3V0cHV0VW5pdFN0YXJ0CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RvcCwgT1NTdGF0dXMsIChBdWRpb1VuaXQg
Y2kpLCAoY2kpKQorI2RlZmluZSBBdWRpb091dHB1dFVuaXRTdG9wIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9BdWRpb091dHB1dFVuaXRTdG9wCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVz
LCAoQXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbkluc3RhbmNlKSwgKGluSW5zdGFuY2UpKQorI2Rl
ZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hf
QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudENvcHlOYW1lLCBPU1N0YXR1cywg
KEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBDRlN0cmluZ1JlZiogb3V0TmFtZSksIChpbkNv
bXBvbmVudCwgb3V0TmFtZSkpCisjZGVmaW5lIEF1ZGlvQ29tcG9uZW50Q29weU5hbWUgc29mdExp
bmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50Q29weU5hbWUKKwogU09GVF9MSU5LX0ZVTkNU
SU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBv
bmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFSZWYqIG91dEJ1
bmRsZVJlZ2lzdHJhdGlvbnMpLCAob3V0QnVuZGxlUmVnaXN0cmF0aW9ucykpCiAjZGVmaW5lIEF1
ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zIHNvZnRMaW5rQXVkaW9Ub29sYm94
Q29yZUF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zCiBTT0ZUX0xJTktfRlVO
Q1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29t
cG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiBpbkJ1
bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVSZWdpc3RyYXRpb25zKSkKICNkZWZpbmUgQXVk
aW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMgc29mdExpbmtBdWRpb1Rvb2xib3hD
b3JlQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMKIAorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0
YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxlKSwgKGluQXVkaW9GaWxlKSkKKyNkZWZpbmUg
QXVkaW9GaWxlQ2xvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvRmlsZUNsb3NlCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3Bl
bldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9pZCogaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVf
UmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxlX1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVk
aW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBp
blNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQgaW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlE
KiBvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRhLCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywg
aW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywgaW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmls
ZSkpCisjZGVmaW5lIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzIHNvZnRMaW5rX0F1ZGlvVG9v
bGJveF9BdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAo
RXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkKKyNkZWZp
bmUgRXh0QXVkaW9GaWxlRGlzcG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxl
RGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4
dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiog
aW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0Zp
bGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
I2RlZmluZSBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0
QXVkaW9GaWxlR2V0UHJvcGVydHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJl
ZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyKiBpb051bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0
KiBpb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEpKQorI2Rl
ZmluZSBFeHRBdWRpb0ZpbGVSZWFkIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVS
ZWFkCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0
QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVk
aW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluUHJv
cGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Qcm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0Zp
bGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCisj
ZGVmaW5lIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRB
dWRpb0ZpbGVTZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRp
b0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiog
b3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmls
ZSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCBzb2Z0TGlua19BdWRpb1Rv
b2xib3hfRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlECitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMs
IChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxlUmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5V
UkwsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZU9wZW5VUkwgc29mdExp
bmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZU9wZW5VUkwKKworU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50RmluZE5leHQsIEF1
ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIGNvbnN0IEF1ZGlvQ29t
cG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChpbkNvbXBvbmVudCwgaW5EZXNjKSkKKyNkZWZp
bmUgQXVkaW9Db21wb25lbnRGaW5kTmV4dCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21w
b25lbnRGaW5kTmV4dAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25l
bnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UqIG91dEluc3RhbmNlKSwgKGlu
Q29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCisjZGVmaW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VO
ZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlE
IGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50
LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNj
b3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQorI2RlZmluZSBBdWRpb1VuaXRH
ZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0R2V0UHJvcGVydHkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJ
bml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKKyNkZWZp
bmUgQXVkaW9Vbml0SW5pdGlhbGl6ZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0SW5p
dGlhbGl6ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlv
VW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxl
bWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGluRGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAo
aW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisj
ZGVmaW5lIEF1ZGlvVW5pdFNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1Vu
aXRTZXRQcm9wZXJ0eQorCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKaW5kZXggYzE0MzkyYmEy
YzkxNDJkNTFiNDc0ZTdkMjQ0ODBiOTcxOWY4YTRjNi4uZGY5ODdjZjc4MGY5ZDQ5ZThkNTBlMWFl
YTNmNmE5ZGNiMGRhNDAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9D
b3JlTWVkaWFTb2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDx3dGYvU29mdExp
bmtpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPENvcmVNZWRpYS9DTUJ1
ZmZlclF1ZXVlLmg+CiAjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgogI2VuZGlmCiAK
QEAgLTQ3LDYgKzQ4LDggQEAgU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5
dGVzLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlU291cmNlQnVmZmVyLCBzaXplX3Qg
b2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgdm9pZCogZGVzdGluYXRpb24pLCAodGhl
U291cmNlQnVmZmVyLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGRlc3RpbmF0aW9uKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aCwgc2l6ZV90LCAoQ01CbG9ja0J1
ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVm
ZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VCeXRlcywg
Q01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldEludG9EZXN0
aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0aW9uQnVm
ZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpLCBQQUxfRVhQT1JUKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVm
IHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXRE
YXRhUG9pbnRlciwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciwgc2l6ZV90
IG9mZnNldCwgc2l6ZV90KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0b3RhbExlbmd0aE91
dCwgY2hhcioqIGRhdGFQb2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGhBdE9m
ZnNldE91dCwgdG90YWxMZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldERhdGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQpAQCAtMTA0LDkgKzEwNyw5IEBAIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1h
dERlc2NyaXB0aW9uR2V0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50
ZXIsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCAodm9pZCksICgpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
Tm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIsIE9TU3RhdHVzLCAoQ01Ob3RpZmljYXRpb25D
ZW50ZXJSZWYgY2VudGVyLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxs
YmFjayBjYWxsYmFjaywgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBvYmpl
Y3QsIFVJbnQzMiBmbGFncyksIChjZW50ZXIsIGxpc3RlbmVyLCBjYWxsYmFjaywgbm90aWZpY2F0
aW9uLCBvYmplY3QsIGZsYWdzKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlclJl
bW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRlciwg
Y29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIENG
U3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0KSwgKGNlbnRlciwgbGlz
dGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCksIFBBTF9FWFBPUlQpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
TUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1
ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQgKm1h
a2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0Vu
dHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGltaW5nQXJyYXksIENNSXRl
bUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QgKnNhbXBsZVNpemVBcnJh
eSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBk
YXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9y
bWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBs
ZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVm
T3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBs
ZUJ1ZmZlclJlZiAqc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCks
IFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdp
bmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1w
bGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZD
b3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVz
LCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9j
a0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJN
YWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0
YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBD
TUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVz
LCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENN
U2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJl
YWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERl
c2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1p
bmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCks
IFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZm
ZXJSZWYqIHNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNC
dWYsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGlt
aW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91
dCksIChhbGxvY2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2Ft
cGxlVGltaW5nQXJyYXksIHNCdWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNh
bXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBpbWFn
ZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc0J1Zk91dCksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIEJv
b2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtl
RGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJ
bmZvKiBzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAo
YWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ss
IG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNh
bXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1l
U3RhbXAsIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBP
UlQpCkBAIC0xMTYsMTQgKzExOSwxNCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRQcmVzZQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24sIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50
YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1Ziks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5LCBD
RkFycmF5UmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQm9vbGVhbiBjcmVhdGVJZk5lY2Vz
c2FyeSksIChzYnVmLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJS
ZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWluZ0lu
Zm8gKnRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCAqdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVk
T3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWluZ0Fy
cmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1w
bGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01J
dGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0Fy
cmF5T3V0LCBDTUl0ZW1Db3VudCogdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYs
IHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWluZ0FycmF5RW50cmllc05l
ZWRlZE91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lQ29udmVydFNjYWxlLCBDTVRpbWUsIChDTVRp
bWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2NhbGUsIENNVGltZVJvdW5kaW5nTWV0aG9kIG1ldGhv
ZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1ldGhvZCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRUb3RhbFNhbXBsZVNpemUsIHNpemVfdCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYp
LCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyLCBPU1N0
YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyKSwg
KHNidWYsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01HZXRBdHRhY2htZW50LCBDRlR5cGVSZWYs
IChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENNQXR0YWNo
bWVudE1vZGUqIGF0dGFjaG1lbnRNb2RlT3V0KSwgKHRhcmdldCwga2V5LCBhdHRhY2htZW50TW9k
ZU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TZXRBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50
QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5cGVSZWYgdmFsdWUsIENNQXR0
YWNobWVudE1vZGUgYXR0YWNobWVudE1vZGUpLCAodGFyZ2V0LCBrZXksIHZhbHVlLCBhdHRhY2ht
ZW50TW9kZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01SZW1vdmVBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRh
Y2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5KSwgKHRhcmdldCwga2V5KSwg
UEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1l
YmFzZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VP
dXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBD
TVRpbWViYXNlUmVmKiB0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1l
YmFzZU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdldFRpbWUsIENNVGltZSwgKENNVGlt
ZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VH
ZXRSYXRlLCBGbG9hdDY0LCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSksIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFJhdGUsIE9TU3RhdHVzLCAoQ01UaW1lYmFzZVJlZiB0
aW1lYmFzZSwgRmxvYXQ2NCByYXRlKSwgKHRpbWViYXNlLCByYXRlKSwgUEFMX0VYUE9SVCkKQEAg
LTE0NCwxMSArMTQ3LDEzIEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUVucXVldWUsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJSZWYg
YnVmZmVyKSwgKHF1ZXVlLCBidWZmZXIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJc0Vt
cHR5LCBCb29sZWFuLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50LCBDTUl0ZW1Db3VudCwgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRD
YWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tz
ICosICgpLCAoKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5z
b3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAsIENN
VGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJbnN0
YWxsVHJpZ2dlciwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclF1
ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiByZWZjb24sIENNQnVmZmVyUXVldWVU
cmlnZ2VyQ29uZGl0aW9uIGNvbmRpdGlvbiwgQ01UaW1lIHRpbWUsIENNQnVmZmVyUXVldWVUcmln
Z2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgY2FsbGJhY2ssIHJlZmNvbiwgY29u
ZGl0aW9uLCB0aW1lLCB0cmlnZ2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVl
dWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkLCBPU1N0YXR1cywgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgdHJpZ2dlckNhbGxi
YWNrLCB2b2lkKiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNvbmRpdGlvbiB0
cmlnZ2VyQ29uZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmlnZ2VyVGhyZXNob2xkLCBDTUJ1ZmZlclF1
ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIHRyaWdnZXJDYWxsYmFj
aywgdHJpZ2dlclJlZmNvbiwgdHJpZ2dlckNvbmRpdGlvbiwgdHJpZ2dlclRocmVzaG9sZCwgdHJp
Z2dlclRva2VuT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwg
T1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVl
dWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05v
dERpc3BsYXksIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfTm90U3luYywgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCkBAIC0xNjgsNDAgKzE3Myw0MiBA
QCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbAogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZm
ZWN0aXZlUmF0ZUNoYW5nZWQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNl
Tm90aWZpY2F0aW9uX1RpbWVKdW1wZWQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRl
c2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgc3RydWN0dXJlQWxsb2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2Nr
TGVuZ3RoLCBDRkFsbG9jYXRvclJlZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZl
ckN1c3RvbUJsb2NrU291cmNlKiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0
YSwgc2l6ZV90IGRhdGFMZW5ndGgsIENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1
ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9j
aywgYmxvY2tMZW5ndGgsIGJsb2NrQWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0
VG9EYXRhLCBkYXRhTGVuZ3RoLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIs
IE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6
ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVy
TGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9y
UmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVm
ICpibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVy
TGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlB
bGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QqIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0
LCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0U2l6ZSwg
Q0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1l
bW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVm
ZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBi
dWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwg
ZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE51
bVNhbXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZSwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IENGUmFuZ2Ugc2FtcGxlUmFuZ2UsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9j
YXRvciwgc2J1Ziwgc2FtcGxlUmFuZ2UsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVfdCogc2l6ZUFycmF5T3V0LCBD
TUl0ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCBzaXplQXJyYXlF
bnRyaWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNOZWVkZWRPdXQpLCBQQUxfRVhQ
T1JUKQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRh
dGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlD
YWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQgKm1ha2VEYXRhUmVhZHlSZWZjb24s
IENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51
bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0
aW9uICpwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1h
a2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRT
LCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxv
Y2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlv
QnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVm
TWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xl
YW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0
YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGlt
ZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNj
cmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1
ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZj
b24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlw
dGlvbnMsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBwcmVz
ZW50YXRpb25UaW1lU3RhbXAsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBh
Y2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChh
bGxvY2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBwcmVz
ZW50YXRpb25UaW1lU3RhbXAsIHBhY2tldERlc2NyaXB0aW9ucywgc2FtcGxlQnVmZmVyT3V0KSwg
UEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZl
ckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYg
YmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwg
dWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdCksIChzYnVm
LCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVy
TGlzdCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50YXRpb25U
aW1lU3RhbXAsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01UaW1lIG91dHB1
dFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzYnVmLCBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3Rh
bXApLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBPU1N0YXR1cywg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGVSZWFkeSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENN
QmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXRE
ZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJh
eSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCogc2FtcGxl
U2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRv
ciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRp
bWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywgc2Ft
cGxlU2l6ZUFycmF5LCBzYW1wbGVCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91dFNp
emUsIGNvbnN0IEF1ZGlvQ2hhbm5lbExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29raWVT
aXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMs
IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFzYmQs
IGxheW91dFNpemUsIGxheW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5z
aW9ucywgb3V0RGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0
TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRl
c2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRp
b0Zvcm1hdExpc3RJdGVtICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChk
ZXNjKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVj
b2RhYmxlRm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwgKENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRIb3N0
VGltZUNsb2NrLCBDTUNsb2NrUmVmLCAodm9pZCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tH
ZXRUaW1lLCBDTVRpbWUsIChDTUNsb2NrUmVmIGNsb2NrKSwgKGNsb2NrKSwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cywgdWludDY0X3QsIChDTVRpbWUg
aG9zdFRpbWUpLCAoaG9zdFRpbWUpLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxs
Rm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1
cyAoKiBDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKCBDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50IGluZGV4LCB2b2lkICpyZWZjb24pLCB2b2lk
ICpyZWZjb24pLCAoc2J1ZiwgY2FsbGJhY2ssIHJlZmNvbiksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYsIE9TU3RhdHVzICheIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVy
KShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQpKSwgKHNidWYsIGhhbmRsZXIpLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NB
UEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQg
aW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVm
Y29uKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUs
IE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF5DTVNBTVBMRUJV
RkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRlbUNvdW50
KSksIChzYnVmLCBoYW5kbGVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3RyaW5n
UmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9zUkdCLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKICNlbmRpZiAvLyBQTEFURk9S
TShDT0NPQSkKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3JlYXRl
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiAqY2xvY2tP
dXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiogY2xv
Y2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11
bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWVNaW5pbXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGlt
ZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFp
bnNUaW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdl
LCB0aW1lKSwgUEFMX0VYUE9SVCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUsIFBBTF9F
WFBPUlQpCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2lmIFBMQVRGT1JNKE1B
QykKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwg
KGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Rl
dmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZT
dHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRl
dmljZVVJRCwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmFzZU9iamVjdEdldERlcml2ZWRT
dG9yYWdlLCB2b2lkKiwgKENNQmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3Qp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQmFzZU9iamVjdEdldFZUYWJsZSwgY29uc3QgQ01CYXNlVlRhYmxl
KiwgKENNQmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNRGVyaXZlZE9iamVjdENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogdlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQs
IENNQmFzZU9iamVjdFJlZiogYmFzZU9iamVjdCksIChhbGxvY2F0b3IsIHZUYWJsZSwgY2xhc3NJ
RCwgYmFzZU9iamVjdCksIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmgKaW5kZXggNzUyNWI5MTljNjk1ZDM2MDk3YjExMTAzMmI5NGY3
NDdmMTUxZjFmMC4uOThjY2I3OWFhNGQ5M2U1ODNmZTU2MzU3YTYxOWNiODE3YmUwY2M2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaApAQCAtNTEs
NiArNTEsMTAgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoLCBzaXplX3QKICNkZWZpbmUgQ01CbG9ja0J1ZmZl
ckdldERhdGFMZW5ndGggc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJHZXREYXRhTGVu
Z3RoCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9j
a0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMsIE9TU3RhdHVzLCAoY29uc3Qgdm9pZCogc291cmNlQnl0
ZXMsIENNQmxvY2tCdWZmZXJSZWYgZGVzdGluYXRpb25CdWZmZXIsIHNpemVfdCBvZmZzZXRJbnRv
RGVzdGluYXRpb24sIHNpemVfdCBkYXRhTGVuZ3RoKSwgKHNvdXJjZUJ5dGVzLCBkZXN0aW5hdGlv
bkJ1ZmZlciwgb2Zmc2V0SW50b0Rlc3RpbmF0aW9uLCBkYXRhTGVuZ3RoKSkKICNkZWZpbmUgQ01C
bG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZm
ZXJSZXBsYWNlRGF0YUJ5dGVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxv
Y2tCdWZmZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlcikpCisjZGVmaW5lIENNQmxvY2tCdWZm
ZXJBc3N1cmVCbG9ja01lbW9yeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckFzc3Vy
ZUJsb2NrTWVtb3J5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJS
ZWYgdGhlQnVmZmVyLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBz
aXplX3QqIHRvdGFsTGVuZ3RoT3V0LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVy
LCBvZmZzZXQsIGxlbmd0aEF0T2Zmc2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJP
dXQpKQorI2RlZmluZSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBD
RkRpY3Rpb25hcnlSZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAj
ZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlELCBDRlR5cGVJ
RCwgKHZvaWQpLCAoKSkKQEAgLTYzLDYgKzY3LDggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbywK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8KIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckRhdGFJc1JlYWR5LCBC
b29sZWFuLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1w
bGVCdWZmZXJEYXRhSXNSZWFkeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJEYXRh
SXNSZWFkeQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51
bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGlt
aW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3Qq
IHNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChh
bGxvY2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1T
YW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJp
ZXMsIHNhbXBsZVNpemVBcnJheSwgc2FtcGxlQnVmZmVyT3V0KSkKKyNkZWZpbmUgQ01TYW1wbGVC
dWZmZXJDcmVhdGVSZWFkeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMyX3QgbmV3VGltZXNjYWxl
LCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3VGltZXNjYWxlLCBtZXRo
b2QpKQogI2RlZmluZSBDTVRpbWVDb252ZXJ0U2NhbGUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGlt
ZUNvbnZlcnRTY2FsZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGlt
ZTEsIHRpbWUyKSkKQEAgLTg3LDI5ICs5MywyOSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VFcXVhbCwgQm9vbGVhbiwgKENNVGltZQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERl
c2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMsIENGU3Ry
aW5nUmVmKQogI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNj
cmlwdGlvbkV4dGVuc2lvbkF0b21zIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcygpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xv
clByaW1hcmllc19EQ0lfUDMsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBn
ZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2Ny
aXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRp
b25Db2xvclByaW1hcmllc19EQ0lfUDMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0RDSV9QMygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8y
MDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwIGdldF9Db3JlTWVk
aWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xv
clByaW1hcmllc19JVFVfUl8yMDIwKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xv
clByaW1hcmllc19JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25D
b2xvclByaW1hcmllc19JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2
NSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tD
TUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1IGdldF9Db3JlTWVkaWFfa0NN
Rm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1h
cmllc19QM19ENjUoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVz
X1AzX0Q2NSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
UDNfRDY1KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBr
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbywgQ0ZTdHJpbmdSZWYp
Ci0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0
aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlk
ZW8oKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRl
byBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZp
ZGVvKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYp
Ci0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lU
VV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
SVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9I
TEcsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9r
Q01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcgZ2V0X0Nv
cmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNj
cmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcoKQogU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3Jt
YXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fTGluZWFyIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NN
Rm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcigpCisjZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5z
ZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9TTVBURV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIw
ODRfUFEoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01Q
VEVfU1RfMjA4NF9QUSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01Q
VEVfU1RfNDI4XzEsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4
dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4
XzEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEoKQorI2RlZmluZSBrQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEo
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1h
dERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JN
YXRyaXhfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5z
aW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCgpCisjZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlh
X2tDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCgpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0LCBDRlN0cmlu
Z1JlZikKICNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29u
dGVudE9yaWdpbmFsRm9ybWF0IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0KCkKIFNPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fc1JHQiwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERl
c2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9z
UkdCIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNj
cmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQsIENGU3Ry
aW5nUmVmKQogI2RlZmluZSBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQgZ2V0X0NvcmVN
ZWRpYV9rQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQoKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX01p
ZGRsZSwgQ0ZTdHJpbmdSZWYpCkBAIC0xNTEsNyArMTU3LDcgQEAgU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRWZXJ0aWNhbExheW91dF9SaWdodFRv
TGVmdCwKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01U
aW1lSW52YWxpZCwgQ01UaW1lKQogI2RlZmluZSBrQ01UaW1lSW52YWxpZCBnZXRfQ29yZU1lZGlh
X2tDTVRpbWVJbnZhbGlkKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lKQotI2RlZmluZSBrQ01UaW1lWmVybyBQQUw6Omdl
dF9Db3JlTWVkaWFfa0NNVGltZVplcm8oKQorI2RlZmluZSBrQ01UaW1lWmVybyBnZXRfQ29yZU1l
ZGlhX2tDTVRpbWVaZXJvKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSwgQ01UaW1lKQogI2RlZmluZSBrQ01UaW1l
UG9zaXRpdmVJbmZpbml0eSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVQb3NpdGl2ZUluZmluaXR5KCkK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUmFu
Z2VJbnZhbGlkLCBDTVRpbWVSYW5nZSk7CkBAIC0xNjksMTMgKzE3NSwxMyBAQCBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJB
ZGRMaXN0ZW5lciwgTwogI2RlZmluZSBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50
ZXJSZW1vdmVMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50
ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNr
LCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIs
IGxpc3RlbmVyLCBjYWxsYmFjaywgbm90aWZpY2F0aW9uLCBvYmplY3QpKQogI2RlZmluZSBDTU5v
dGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTU5vdGlm
aWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4g
ZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJl
YWR5Q2FsbGJhY2ssIHZvaWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNv
dW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2Ft
cGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBz
aXplX3QgKnNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFr
ZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBs
ZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywg
c2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBk
YXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVh
ZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291
bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1w
bGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNp
emVfdCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxv
Y2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtl
RGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBz
YW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGUKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9T
U3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVm
Q29weU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYqIHNidWZDb3B5
T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZUNvcHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlQ29w
eQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRlbUNvdW50IG51
bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGlt
aW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmQ29weU91dCksIChhbGxvY2F0b3IsIG9y
aWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIHNC
dWZDb3B5T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0
ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8q
IHNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1ZkNvcHlPdXQpLCAoYWxs
b2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWlu
Z0FycmF5LCBzQnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdp
dGhOZXdUaW1pbmcgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdp
dGhOZXdUaW1pbmcKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAo
YWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywg
c0J1Zk91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVU
aW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFs
bG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNC
dWZPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVy
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVm
ZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5
LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJh
Y2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1p
bmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBpbWFn
ZUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlS
ZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNhbXBsZUJ1ZmZlck91dCkp
CiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIgc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKQEAgLTE5Myw3ICsxOTks
NyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpbwogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldE91
dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZm
ZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRz
QXJyYXksIENGQXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0
ZUlmTmVjZXNzYXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSkKICNkZWZpbmUgQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0
aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyAqdGltaW5nQXJyYXlPdXQsIENN
SXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJy
YXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5m
byogdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRP
dXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJy
YXlFbnRyaWVzTmVlZGVkT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUsIHNpemVfdCwgKENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1w
bGVTaXplIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6
ZQpAQCAtMjA1LDcgKzIxMSw3IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lCiAjZGVmaW5lIENN
U2V0QXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TZXRBdHRhY2htZW50CiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01SZW1vdmVBdHRhY2htZW50
LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5KSwg
KHRhcmdldCwga2V5KSkKICNkZWZpbmUgQ01SZW1vdmVBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVJlbW92ZUF0dGFjaG1lbnQKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1l
YmFzZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VP
dXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWViYXNlUmVmKiB0aW1lYmFzZU91
dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91dCkpCiAjZGVmaW5lIENNVGlt
ZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2sgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VD
cmVhdGVXaXRoTWFzdGVyQ2xvY2sKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1lYmFzZVJlZiB0aW1l
YmFzZSksICh0aW1lYmFzZSkpCiAjZGVmaW5lIENNVGltZWJhc2VHZXRUaW1lIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVRpbWViYXNlR2V0VGltZQpAQCAtMjI3LDcgKzIzMyw3IEBAIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0VGltZXJEaXNw
YXRjaFNvdXJjZVRvCiAjZGVmaW5lIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9G
aXJlSW1tZWRpYXRlbHkgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VTZXRUaW1lckRpc3Bh
dGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5LCBDRkRpY3Rpb25hcnlSZWYs
IChDTVRpbWUgdGltZSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yKSwgKHRpbWUsIGFsbG9jYXRv
cikpCiAjZGVmaW5lIENNVGltZUNvcHlBc0RpY3Rpb25hcnkgc29mdExpbmtfQ29yZU1lZGlhX0NN
VGltZUNvcHlBc0RpY3Rpb25hcnkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1h
Z2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiAqb3V0RGVzYyksIChhbGxvY2F0
b3IsIGltYWdlQnVmZmVyLCBvdXREZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1
ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJS
ZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChh
bGxvY2F0b3IsIGltYWdlQnVmZmVyLCBvdXREZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGlt
ZW5zaW9ucywgQ01WaWRlb0RpbWVuc2lvbnMsIChDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
dmlkZW9EZXNjKSwgKHZpZGVvRGVzYykpCiAjZGVmaW5lIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkdldERpbWVuc2lvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkdldERpbWVuc2lvbnMKQEAgLTI0OSwxNSArMjU1LDE4IEBAIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENN
SXRlCiAjZGVmaW5lIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCBzb2Z0TGlua19Db3JlTWVk
aWFfQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZp
bmUgQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0
Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNr
cyAqLCAoKSwgKCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29u
c3QgQ01CdWZmZXJDYWxsYmFja3MqLCAoKSwgKCkpCiAjZGVmaW5lIENNQnVmZmVyUXVldWVHZXRD
YWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVm
ZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJl
c2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1
ZXVlKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCBz
b2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFt
cAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVy
UXVldWVJbnN0YWxsVHJpZ2dlciwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBD
TUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiByZWZjb24sIENNQnVm
ZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIGNvbmRpdGlvbiwgQ01UaW1lIHRpbWUsIENNQnVmZmVy
UXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgY2FsbGJhY2ssIHJl
ZmNvbiwgY29uZGl0aW9uLCB0aW1lLCB0cmlnZ2VyVG9rZW5PdXQpKQorI2RlZmluZSBDTUJ1ZmZl
clF1ZXVlSW5zdGFsbFRyaWdnZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVJbnN0
YWxsVHJpZ2dlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkLCBPU1N0YXR1
cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sg
dHJpZ2dlckNhbGxiYWNrLCB2b2lkKiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dl
ckNvbmRpdGlvbiB0cmlnZ2VyQ29uZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmlnZ2VyVGhyZXNob2xk
LCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIHRy
aWdnZXJDYWxsYmFjaywgdHJpZ2dlclJlZmNvbiwgdHJpZ2dlckNvbmRpdGlvbiwgdHJpZ2dlclRo
cmVzaG9sZCwgdHJpZ2dlclRva2VuT3V0KSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUluc3RhbGxU
cmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVl
dWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEsIE9T
U3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5lIENNQnVm
ZmVyUXVldWVNYXJrRW5kT2ZEYXRhIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlTWFy
a0VuZE9mRGF0YQotCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1
ZXVlKSwgKHF1ZXVlKSkKKyNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldER1cmF0aW9uIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24KIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlz
cGxheSwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3RE
aXNwbGF5IGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXko
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBs
ZUF0dGFjaG1lbnRLZXlfTm90U3luYywgQ0ZTdHJpbmdSZWYpCkBAIC0yOTUsNDYgKzMwNCw0OCBA
QCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgZ2V0X0NvcmVN
ZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRhYwogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUs
IGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MsIHNpemVfdCog
c2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSkKICNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uR2V0TWFnaWNDb29raWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkdldE1hZ2ljQ29va2llCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlv
biwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qLCAoQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAjZGVmaW5lIENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24KIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ3JlYXRl
V2l0aE1lbW9yeUJsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIHN0cnVjdHVyZUFsbG9j
YXRvciwgdm9pZCogbWVtb3J5QmxvY2ssIHNpemVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxvY2F0b3JS
ZWYgYmxvY2tBbGxvY2F0b3IsIGNvbnN0IENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1NvdXJjZSog
Y3VzdG9tQmxvY2tTb3VyY2UsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3Ro
LCBDTUJsb2NrQnVmZmVyRmxhZ3MgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVy
T3V0KSwgKHN0cnVjdHVyZUFsbG9jYXRvciwgbWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3RoLCBibG9j
a0FsbG9jYXRvciwgY3VzdG9tQmxvY2tTb3VyY2UsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwg
ZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKICNkZWZpbmUgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhN
ZW1vcnlCbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1v
cnlCbG9jawotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9T
U3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5l
ZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlz
dFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVm
IGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpi
bG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlz
dE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxv
Y2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRo
UmV0YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBz
aXplX3QqIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxp
c3RPdXQsIHNpemVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFs
bG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxh
Z3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RT
aXplTmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFs
bG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKICNk
ZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1
ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RX
aXRoUmV0YWluZWRCbG9ja0J1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcywgQ01JdGVtQ291bnQsIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdl
dE51bVNhbXBsZXMgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxl
cwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9y
bWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9y
bWF0TGlzdEl0ZW0qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykp
CiAjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3Jt
YXQgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3RE
ZWNvZGFibGVGb3JtYXQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGUmFuZ2Ug
c2FtcGxlUmFuZ2UsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgc2J1
Ziwgc2FtcGxlUmFuZ2UsIHNCdWZPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNvcHlTYW1w
bGVCdWZmZXJGb3JSYW5nZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDb3B5U2Ft
cGxlQnVmZmVyRm9yUmFuZ2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSwgT1NTdGF0dXMsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCBzaXplQXJyYXlFbnRyaWVzLCBzaXplX3Qq
IHNpemVBcnJheU91dCwgQ01JdGVtQ291bnQqIHNpemVBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAo
c2J1Ziwgc2l6ZUFycmF5RW50cmllcywgc2l6ZUFycmF5T3V0LCBzaXplQXJyYXlFbnRyaWVzTmVl
ZGVkT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkgc29mdExp
bmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5CiAKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVy
Q3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHks
IENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFj
aywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNv
bnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01T
YW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVh
ZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVz
Y3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91
dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xl
YW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0
YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGlt
ZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNj
cmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1
ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZj
b24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlw
dGlvbnMsIHNCdWZPdXQpKQogI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBh
Y2tldERlc2NyaXB0aW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb1NhbXBsZUJ1ZmZlckNy
ZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZm
ZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2NhdG9yUmVm
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3Is
IHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3QpLCAoc2J1
ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJ1ZmZl
ckxpc3QpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
QXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZm
ZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50
IG51bVNhbXBsZXMsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGNvbnN0IEF1ZGlvU3Ry
ZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJS
ZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERlc2Ny
aXB0aW9uLCBudW1TYW1wbGVzLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIHBhY2tldERlc2NyaXB0
aW9ucywgc2FtcGxlQnVmZmVyT3V0KSkKKyNkZWZpbmUgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb1Nh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucworU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1
ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1
Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCog
YnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2Nh
dG9yLCBmbGFncywgYnVmZmVyTGlzdCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1
ZmZlckZyb21BdWRpb0J1ZmZlckxpc3Qgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFSZWFkeSwgT1NTdGF0
dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1
ZmZlclNldERhdGFSZWFkeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJTZXREYXRh
UmVhZHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCwgT1NTdGF0dXMsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVRpbWUgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwg
KHNidWYsIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCkpCisjZGVmaW5lIENNU2FtcGxlQnVm
ZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91dFNpemUsIGNvbnN0IEF1ZGlv
Q2hhbm5lbExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29raWVTaXplLCBjb25zdCB2b2lk
KiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMsIENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFzYmQsIGxheW91dFNpemUsIGxh
eW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5zaW9ucywgb3V0RGVzYykp
CiAjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBzb2Z0TGlua19Db3JlTWVk
aWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xvY2tS
ZWYsICh2b2lkKSwgKCkpCi0jZGVmaW5lIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrICBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sKKyNkZWZpbmUgQ01DbG9ja0dldEhv
c3RUaW1lQ2xvY2sgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRIb3N0VGltZUNsb2NrCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldFRp
bWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spKQotI2RlZmluZSBDTUNsb2Nr
R2V0VGltZSAgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCisjZGVmaW5lIENNQ2xv
Y2tHZXRUaW1lIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0VGltZQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVU
b1N5c3RlbVVuaXRzLCB1aW50NjRfdCwgKENNVGltZSBob3N0VGltZSksIChob3N0VGltZSkpCiAj
ZGVmaW5lIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cwogCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFj
aFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKiBD
TVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQgKnJlZmNv
biksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0
YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqQ01TQU1QTEVCVUZGRVJD
QUxMX05PRVNDQVBFIGNhbGxiYWNrKShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENN
SXRlbUNvdW50IGluZGV4LCB2b2lkKiByZWZjb24pLCB2b2lkKiByZWZjb24pLCAoc2J1ZiwgY2Fs
bGJhY2ssIHJlZmNvbikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNh
bGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
T1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxl
QnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tG
b3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVz
ICheQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVm
LCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVy
Q2FsbEJsb2NrRm9yRWFjaFNhbXBsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJD
YWxsQmxvY2tGb3JFYWNoU2FtcGxlCiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
Q2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2Nr
UmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSkKICNkZWZpbmUgQ01BdWRpb0Ns
b2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvQ2xvY2tDcmVhdGUKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBDTVRp
bWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQogI2RlZmlu
ZSBDTVRpbWVNYXhpbXVtIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNYXhpbXVtCkBAIC0zNDYs
MTggKzM1NywxNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUsIEJvb2xlYW4sCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICNk
ZWZpbmUga0NNVGltZUluZGVmaW5pdGUgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lSW5kZWZpbml0ZSgp
CiAKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotCiAjaWYgUExBVEZPUk0oTUFDKQog
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Rl
dmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZT
dHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGRl
dmljZVVJRCwgY2xvY2tPdXQpKQotI2RlZmluZSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUgIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VV
SUQsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091
dCkpCisjZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UsIHZvaWQqLCAoQ01C
YXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9i
amVjdEdldERlcml2ZWRTdG9yYWdlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVj
dEdldERlcml2ZWRTdG9yYWdlCisjZGVmaW5lIENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdl
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmFzZU9iamVjdEdldFZU
YWJsZSwgY29uc3QgQ01CYXNlVlRhYmxlKiwgKENNQmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0KSwg
KGJhc2VPYmplY3QpKQotI2RlZmluZSBDTUJhc2VPYmplY3RHZXRWVGFibGUgUEFMOjpzb2Z0TGlu
a19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0VlRhYmxlCisjZGVmaW5lIENNQmFzZU9iamVjdEdl
dFZUYWJsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0VlRhYmxlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01EZXJpdmVkT2JqZWN0Q3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01CYXNlVlRh
YmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwgQ01CYXNlT2JqZWN0UmVmKiBiYXNl
T2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFzc0lELCBiYXNlT2JqZWN0KSkKLSNkZWZp
bmUgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlhX0NNRGVyaXZl
ZE9iamVjdENyZWF0ZQorI2RlZmluZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNRGVyaXZlZE9iamVjdENyZWF0ZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRM
aW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsu
Y3BwCmluZGV4IGY1MWNiYmIxNjY2M2I4MWVjZTIwMWU4YWQ1NzI1YzI1MTIxZjU2ZmIuLjcyZjQx
MTRlZWFhZGY2MjBjZTM3MDIzMDk5NDc2NmI0OGM3OTViMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0zNCwxMyArMzQs
MTkgQEAgU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVmlk
ZW9Ub29sYm94LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFM
LCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJh
dGUsIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRl
b1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1
cmF0aW9uLCBDRlN0cmluZ1JlZikKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwg
VmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBDRlN0cmlu
Z1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBDRlN0cmluZ1JlZikKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJpbmdSZWYpCiAKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0VuY29kZXJTcGVj
aWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIsIENGU3RyaW5n
UmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtW
VFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxl
dmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5f
QXV0b0xldmVsLCBDRlN0cmluZ1JlZikKIAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQs
IENNVmlkZW9Db2RlY1R5cGUgY29kZWNUeXBlLCBDRkRpY3Rpb25hcnlSZWYgZW5jb2RlclNwZWNp
ZmljYXRpb24sIENGRGljdGlvbmFyeVJlZiBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIENG
QWxsb2NhdG9yUmVmIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBWVENvbXByZXNzaW9uT3V0cHV0
Q2FsbGJhY2sgb3V0cHV0Q2FsbGJhY2ssIHZvaWQqIG91dHB1dENhbGxiYWNrUmVmQ29uLCBWVENv
bXByZXNzaW9uU2Vzc2lvblJlZiogY29tcHJlc3Npb25TZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwg
d2lkdGgsIGhlaWdodCwgY29kZWNUeXBlLCBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgc291cmNlSW1h
Z2VCdWZmZXJBdHRyaWJ1dGVzLCBjb21wcmVzc2VkRGF0YUFsbG9jYXRvciwgb3V0cHV0Q2FsbGJh
Y2ssIG91dHB1dENhbGxiYWNrUmVmQ29uLCBjb21wcmVzc2lvblNlc3Npb25PdXQpKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25T
ZXNzaW9uQ29tcGxldGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYg
c2Vzc2lvbiwgQ01UaW1lIGNvbXBsZXRlVW50aWxQcmVzZW50YXRpb25UaW1lU3RhbXApLCAoc2Vz
c2lvbiwgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25F
bmNvZGVGcmFtZSwgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBD
VkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1w
LCBDTVRpbWUgZHVyYXRpb24sIENGRGljdGlvbmFyeVJlZiBmcmFtZVByb3BlcnRpZXMsIHZvaWQq
IHNvdXJjZUZyYW1lUmVmY29uLCBWVEVuY29kZUluZm9GbGFncyogaW5mb0ZsYWdzT3V0KSwgKHNl
c3Npb24sIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBmcmFt
ZVByb3BlcnRpZXMsIHNvdXJjZUZyYW1lUmVmY29uLCBpbmZvRmxhZ3NPdXQpKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNz
aW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9u
UmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlLCB2b2lkLCAo
VlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKIAogU09GVF9MSU5L
X0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBWaWRlb1Rvb2xi
b3gsIFZUUmVzdHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlkZW9EZWNvZGVyUmVz
dHJpY3Rpb25zIHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2RlY1R5cGUqIGFsbG93
ZWRDb2RlY1R5cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCAocmVz
dHJpY3Rpb25GbGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRDb2RlY1R5cGVDb3Vu
dCksIFBBTF9FWFBPUlQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2Yv
VmlkZW9Ub29sYm94U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9U
b29sYm94U29mdExpbmsuaAppbmRleCBlYzBmZjAxY2MxZmUxYTIxMDZjYzdhN2YwMmU4Yzg0Yjdk
ZDBkYTg0Li42MGE4ZmYzNzQyZDQ5NjEwN2IxNGZhYzdjNDEzNzNhYmM2ZDY5NGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCkBAIC0z
Nyw5ICszNywyMCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9v
bGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZQogI2RlZmluZSBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiBnZXRfVmlkZW9Ub29s
Ym94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9u
KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSBnZXRfVmlkZW9Ub29sYm94X2tWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJp
dFJhdGUsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2
ZXJhZ2VCaXRSYXRlIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9B
dmVyYWdlQml0UmF0ZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVv
VG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIENGU3RyaW5n
UmVmKQorI2RlZmluZSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBnZXRf
VmlkZW9Ub29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsKCkKIAog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVv
RW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rl
ciwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5h
YmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciBnZXRfVmlkZW9Ub29sYm94X2tWVFZp
ZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5j
b2RlcigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwg
a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKKyNk
ZWZpbmUga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsIGdldF9WaWRlb1Rv
b2xib3hfa1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKCkKK1NPRlRfTElO
S19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxf
SDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVFByb2ZpbGVMZXZl
bF9IMjY0X0hpZ2hfQXV0b0xldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZUUHJvZmlsZUxldmVsX0gy
NjRfSGlnaF9BdXRvTGV2ZWwoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBW
aWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsLCBDRlN0cmlu
Z1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwgZ2V0X1Zp
ZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCgpCisKIAogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Np
b25TZXNzaW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgaW50
MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIENNVmlkZW9Db2RlY1R5cGUgY29kZWNUeXBlLCBD
RkRpY3Rpb25hcnlSZWYgZW5jb2RlclNwZWNpZmljYXRpb24sIENGRGljdGlvbmFyeVJlZiBzb3Vy
Y2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIENGQWxsb2NhdG9yUmVmIGNvbXByZXNzZWREYXRhQWxs
b2NhdG9yLCBWVENvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sgb3V0cHV0Q2FsbGJhY2ssIHZvaWQq
IG91dHB1dENhbGxiYWNrUmVmQ29uLCBWVENvbXByZXNzaW9uU2Vzc2lvblJlZiogY29tcHJlc3Np
b25TZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwgd2lkdGgsIGhlaWdodCwgY29kZWNUeXBlLCBlbmNv
ZGVyU3BlY2lmaWNhdGlvbiwgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBjb21wcmVzc2Vk
RGF0YUFsbG9jYXRvciwgb3V0cHV0Q2FsbGJhY2ssIG91dHB1dENhbGxiYWNrUmVmQ29uLCBjb21w
cmVzc2lvblNlc3Npb25PdXQpKQogI2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSBz
b2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUKQEAgLTQ5LDYg
KzYwLDggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gs
IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUKICNkZWZpbmUgVlRDb21wcmVzc2lvblNl
c3Npb25FbmNvZGVGcmFtZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lvblNlc3Np
b25FbmNvZGVGcmFtZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rv
b2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzLCBPU1N0YXR1
cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCiAjZGVmaW5l
IFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIHNvZnRMaW5rX1ZpZGVv
VG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcworU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25T
ZXNzaW9uSW52YWxpZGF0ZSwgdm9pZCwgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24p
LCAoc2Vzc2lvbikpCisjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSBzb2Z0
TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlCiAKIFNPRlRf
TElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVFJl
c3RyaWN0VmlkZW9EZWNvZGVycywgT1NTdGF0dXMsIChWVFZpZGVvRGVjb2RlclJlc3RyaWN0aW9u
cyByZXN0cmljdGlvbkZsYWdzLCBjb25zdCBDTVZpZGVvQ29kZWNUeXBlKiBhbGxvd2VkQ29kZWNU
eXBlTGlzdCwgQ01JdGVtQ291bnQgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgKHJlc3RyaWN0aW9u
RmxhZ3MsIGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRM
aW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuY3BwCmluZGV4IDY3NGU2NDk0YTBhOGI1OTY5MDNlM2NhNWNmYjZhMjNkZGFjMzYzOGMuLmQ0
NDQ5MzFlZmQ4YWU1NTYwYjhjMWIyN2YyMmFkOTJlNzkzNDg1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwCkBAIC00
MSw2ICs0MSwxMCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwgTVRfR2V0U2hvdQogCiBTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwga01U
U3VwcG9ydE5vdGlmaWNhdGlvbl9TaG91bGRQbGF5SERSVmlkZW9DaGFuZ2VkLCBDRlN0cmluZ1Jl
ZiwgUEFMX0VYUE9SVCkKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBNZWRp
YVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlv
UHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlv
LCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVt
YmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRpb1Byb2Nl
c3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENNSXRl
bUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxpc3RJ
bk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKK1NPRlRfTElO
S19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29s
Ym94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzKiBjYWxsYmFj
a3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nl
c3NpbmdUYXBSZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91
dCksIFBBTF9FWFBPUlQpCisKICNpZiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQogCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJv
eCwga01UUGx1Z2luRm9ybWF0UmVhZGVyUHJvcGVydHlfRHVyYXRpb24sIENGU3RyaW5nUmVmLCBQ
QUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRp
YVRvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRv
b2xib3hTb2Z0TGluay5oCmluZGV4IGM3ZGUwMmNlNjNjMmMzMDBkOTY1NGY2NjcwYmZjMTI1MDIy
OTM0NGUuLjI1NWE3NjdiNTVlZWY0ZThlZWQxOWRlZjI5NzE3ODQ5MGJlOTNmMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgK
QEAgLTQxLDYgKzQxLDEzIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVS
KFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91bGRQbGF5SERSVmlkCiAKIFNPRlRfTElOS19D
T05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBrTVRTdXBwb3J0
Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQsIENGU3RyaW5nUmVmKQogCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRh
cCksICh0YXApKQorI2RlZmluZSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2Ugc29mdExp
bmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwR2V0U291cmNlQXVkaW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFw
LCBDTUl0ZW1Db3VudCBudW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdElu
T3V0LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRp
bWVSYW5nZU91dCwgQ01JdGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZy
YW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFt
ZXNPdXQpKQorI2RlZmluZSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvIHNvZnRM
aW5rX01lZGlhVG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvCitTT0ZU
X0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBjb25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyogY2FsbGJhY2tzLCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFw
UmVmKiB0YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpKQorI2Rl
ZmluZSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSBzb2Z0TGlua19NZWRpYVRvb2xib3hfTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUKKwogI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFE
RVIpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBr
TVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZTdHJpbmdSZWYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCA1NTI0ZWVjNTU4N2QxZTkxNzBlZjlmMTQ5MmNjMDdkZTI1
YzgwZWM3Li5jNTYyYmU3NjM1ZWE2YTE1ODQwODMzYWJjMmUxOTEwMTBjYzMxNzZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTM1MCw3ICszNTAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRG9jdW1lbnQpOwogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY6
OlVuaWNvZGU7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4V3JpdGVSZWN1cnNpb25EZXB0
aCA9IDIxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA5
ZjU1NjA4MDJiYWMzMmJiNDk5ZWM5N2M5YjBhZTMyZTExYzYyMWM3Li44NTBjZGU3MjcwZjBkNjFk
YzI1NDQ5YzFkYTg5YTQ5YTFhZjQzNjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcApAQCAtMTA5LDcgKzEwOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxDYW52YXNFbGVtZW50KTsKIAotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIC8vIFRoZXNlIHZh
bHVlcyBjb21lIGZyb20gdGhlIFdoYXRXRy9XM0MgSFRNTCBzcGVjLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZTA1MTZhNGFmMjVkMmI1YTRkNDk0Y2U0MzUw
OTY4NDE0MWI2N2Q5ZS4uNmFjMmRmYjlkZDY0ZjBmM2ZjMGQwZWY1ZmM1MTE1OTFkMjVmMGJhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xOTAsOCArMTkw
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
SFRNTE1lZGlhRWxlbWVudCk7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0YXRpYyBjb25z
dCBTZWNvbmRzIFNlZWtSZXBlYXREZWxheSB7IDEwMF9tcyB9Owogc3RhdGljIGNvbnN0IGRvdWJs
ZSBTZWVrVGltZSA9IDAuMjsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIFNjYW5SZXBlYXREZWxheSB7
IDEuNV9zIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKaW5kZXggZmQzZDNlMDNhMDNmMDgxMDUy
MTI4NmJkMDI2YTkxMDExMWQzY2M4NC4uNWQ1NmI5ZWUxYTBkM2Q2N2E3OWMzMDc2MWQxMzgxNWQ3
YzA2NDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcApAQCAtMzYsMjUgKzM2LDEzIEBACiAj
aW5jbHVkZSAiQXVkaW9GaWxlUmVhZGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9FeHRlbmRlZEF1
ZGlvRmlsZS5oPgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Cisj
aW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8d3RmL0No
ZWNrZWRBcml0aG1ldGljLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2luY2x1ZGUg
PHd0Zi9Tb2Z0TGlua2luZy5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJveCkK
LVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlv
RmlsZUlEIGluQXVkaW9GaWxlKSwgKGluQXVkaW9GaWxlKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xi
b3gsIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZvaWQgKmluQ2xpZW50
RGF0YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2Mg
aW5Xcml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0Zp
bGVfU2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVI
aW50LCBBdWRpb0ZpbGVJRCAqb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVu
YywgaW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVI
aW50LCBvdXRBdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxl
RGlzcG9zZSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUpLCAoaW5F
eHRBdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlR2V0UHJv
cGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRp
b0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyICppb1Byb3BlcnR5RGF0YVNpemUs
IHZvaWQgKm91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBp
b1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29s
Ym94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1
ZGlvRmlsZSwgVUludDMyICppb051bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICppb0RhdGEp
LCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEpKQotU09GVF9MSU5LKEF1
ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9G
aWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJ
RCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCAqaW5Qcm9wZXJ0eURhdGEp
LCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblBy
b3BlcnR5RGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVXcmFwQXVk
aW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5GaWxlSUQsIEJvb2xlYW4gaW5Gb3JX
cml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYgKm91dEV4dEF1ZGlvRmlsZSksIChpbkZpbGVJRCwgaW5G
b3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0
QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxl
UmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCi0jZW5kaWYK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIEF1ZGlv
QnVmZmVyTGlzdCogdHJ5Q3JlYXRlQXVkaW9CdWZmZXJMaXN0KHNpemVfdCBudW1iZXJPZkJ1ZmZl
cnMpCkBAIC0xMDMsMjIgKzkxLDIyIEBAIEF1ZGlvRmlsZVJlYWRlcjo6QXVkaW9GaWxlUmVhZGVy
KGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSkKICAgICA6IG1fZGF0YShkYXRhKQog
ICAgICwgbV9kYXRhU2l6ZShkYXRhU2l6ZSkKIHsKLSAgICBpZiAoQXVkaW9GaWxlT3BlbldpdGhD
YWxsYmFja3ModGhpcywgcmVhZFByb2MsIDAsIGdldFNpemVQcm9jLCAwLCAwLCAmbV9hdWRpb0Zp
bGVJRCkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6QXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3Mo
dGhpcywgcmVhZFByb2MsIDAsIGdldFNpemVQcm9jLCAwLCAwLCAmbV9hdWRpb0ZpbGVJRCkgIT0g
bm9FcnIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChFeHRBdWRpb0ZpbGVXcmFwQXVkaW9G
aWxlSUQobV9hdWRpb0ZpbGVJRCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIp
CisgICAgaWYgKFBBTDo6RXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEKG1fYXVkaW9GaWxlSUQs
IGZhbHNlLCAmbV9leHRBdWRpb0ZpbGVSZWYpICE9IG5vRXJyKQogICAgICAgICBtX2V4dEF1ZGlv
RmlsZVJlZiA9IDA7CiB9CiAKIEF1ZGlvRmlsZVJlYWRlcjo6fkF1ZGlvRmlsZVJlYWRlcigpCiB7
CiAgICAgaWYgKG1fZXh0QXVkaW9GaWxlUmVmKQotICAgICAgICBFeHRBdWRpb0ZpbGVEaXNwb3Nl
KG1fZXh0QXVkaW9GaWxlUmVmKTsKKyAgICAgICAgUEFMOjpFeHRBdWRpb0ZpbGVEaXNwb3NlKG1f
ZXh0QXVkaW9GaWxlUmVmKTsKIAogICAgIG1fZXh0QXVkaW9GaWxlUmVmID0gMDsKIAogICAgIGlm
IChtX2F1ZGlvRmlsZUlEKQotICAgICAgICBBdWRpb0ZpbGVDbG9zZShtX2F1ZGlvRmlsZUlEKTsK
KyAgICAgICAgUEFMOjpBdWRpb0ZpbGVDbG9zZShtX2F1ZGlvRmlsZUlEKTsKIAogICAgIG1fYXVk
aW9GaWxlSUQgPSAwOwogfQpAQCAtMTU1LDcgKzE0Myw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVk
aW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8p
CiAKICAgICAvLyBHZXQgZmlsZSdzIGRhdGEgZm9ybWF0CiAgICAgVUludDMyIHNpemUgPSBzaXpl
b2YobV9maWxlRGF0YUZvcm1hdCk7Ci0gICAgaWYgKEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1f
ZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3JtYXQsICZz
aXplLCAmbV9maWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6RXh0QXVkaW9G
aWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9G
aWxlRGF0YUZvcm1hdCwgJnNpemUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0VycikKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBzaXplX3QgbnVtYmVyT2ZDaGFubmVscyA9IG1fZmls
ZURhdGFGb3JtYXQubUNoYW5uZWxzUGVyRnJhbWU7CkBAIC0xNjMsNyArMTUxLDcgQEAgUmVmUHRy
PEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBi
b29sIG1peFRvTW9ubykKICAgICAvLyBOdW1iZXIgb2YgZnJhbWVzCiAgICAgU0ludDY0IG51bWJl
ck9mRnJhbWVzNjQgPSAwOwogICAgIHNpemUgPSBzaXplb2YobnVtYmVyT2ZGcmFtZXM2NCk7Ci0g
ICAgaWYgKEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVk
aW9GaWxlUHJvcGVydHlfRmlsZUxlbmd0aEZyYW1lcywgJnNpemUsICZudW1iZXJPZkZyYW1lczY0
KSAhPSBub0VyciB8fCBudW1iZXJPZkZyYW1lczY0IDw9IDApCisgICAgaWYgKFBBTDo6RXh0QXVk
aW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0
eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVzNjQpICE9IG5vRXJyIHx8
IG51bWJlck9mRnJhbWVzNjQgPD0gMCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBk
b3VibGUgZmlsZVNhbXBsZVJhdGUgPSBtX2ZpbGVEYXRhRm9ybWF0Lm1TYW1wbGVSYXRlOwpAQCAt
MTg1LDcgKzE3Myw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVC
dXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAgICAgaWYgKHNhbXBsZVJhdGUp
CiAgICAgICAgIG1fY2xpZW50RGF0YUZvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7CiAK
LSAgICBpZiAoRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRB
dWRpb0ZpbGVQcm9wZXJ0eV9DbGllbnREYXRhRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKSwgJm1fY2xpZW50RGF0YUZvcm1hdCkgIT0gbm9FcnIpCisgICAgaWYgKFBB
TDo6RXh0QXVkaW9GaWxlU2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0Zp
bGVQcm9wZXJ0eV9DbGllbnREYXRhRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uKSwgJm1fY2xpZW50RGF0YUZvcm1hdCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgLy8gQ2hhbmdlIG51bWJlck9mRnJhbWVzNjQgdG8gZGVzdGluYXRpb24g
c2FtcGxlLXJhdGUKQEAgLTI0Myw3ICsyMzEsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmls
ZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogCiAg
ICAgLy8gUmVhZCBmcm9tIHRoZSBmaWxlIChvciBpbi1tZW1vcnkgdmVyc2lvbikKICAgICBVSW50
MzIgZnJhbWVzVG9SZWFkID0gbnVtYmVyT2ZGcmFtZXM7Ci0gICAgaWYgKEV4dEF1ZGlvRmlsZVJl
YWQobV9leHRBdWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1ZmZlckxpc3QpICE9IG5vRXJy
KSB7CisgICAgaWYgKFBBTDo6RXh0QXVkaW9GaWxlUmVhZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZy
YW1lc1RvUmVhZCwgYnVmZmVyTGlzdCkgIT0gbm9FcnIpIHsKICAgICAgICAgZGVzdHJveUF1ZGlv
QnVmZmVyTGlzdChidWZmZXJMaXN0KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxl
UmVhZGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RmlsZVJlYWRlckNvY29hLmgKaW5kZXggYjdiOTE2M2I1NmUyNmMyOWNhYjg0ZWUyNDc2OWUyOTcx
NDE3YWZmYy4uMGJiYmJhMjc4NTdkOTc5ZWNjNjg4Zjg3ZjAzMzlmNjY1ZWY0MjUyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVy
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Zp
bGVSZWFkZXJDb2NvYS5oCkBAIC0zMSwxMCArMzEsMTIgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVE
SU8pCiAKLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+Ci0jaW5jbHVkZSA8QXVk
aW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CisjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVB
dWRpb1R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCit1c2luZyBFeHRBdWRpb0Zp
bGVSZWYgPSBzdHJ1Y3QgT3BhcXVlRXh0QXVkaW9GaWxlKjsKK3VzaW5nIEF1ZGlvRmlsZUlEID0g
c3RydWN0IE9wYXF1ZUF1ZGlvRmlsZUlEKjsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBBdWRpb0J1czsKQEAgLTU4LDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCB2b2lkKiBt
X2RhdGEgPSB7IG51bGxwdHIgfTsKICAgICBzaXplX3QgbV9kYXRhU2l6ZSA9IHsgMCB9OwogCi0g
ICAgQXVkaW9GaWxlSUQgbV9hdWRpb0ZpbGVJRCA9IHsgMCB9OworICAgIEF1ZGlvRmlsZUlEIG1f
YXVkaW9GaWxlSUQgPSB7IG51bGxwdHIgfTsKICAgICBFeHRBdWRpb0ZpbGVSZWYgbV9leHRBdWRp
b0ZpbGVSZWYgPSB7IG51bGxwdHIgfTsKIAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biBtX2ZpbGVEYXRhRm9ybWF0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcAppbmRleCA0Nzg3
NTA3MmE3ODZlZDY4NmMxZDQwMWU4MmU2MjU5Y2EyM2M1NGI2Li4xNDhiMDU1ZGJlYzg5NDNlYTVh
YWM2OGU2ODU4ZGU3ZDBiODIzMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcApAQCAt
MjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAorI2luY2x1ZGUgPHBhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEF1ZGlv
T3V0cHV0VW5pdEFkYXB0b3I6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IoQXVkaW9Vbml0UmVuZGVy
ZXImIHJlbmRlcmVyKQpAQCAtMzksMTIgKzQxLDEyIEBAIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6
OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IoQXVkaW9Vbml0UmVuZGVyZXImIHJlbmRlcmVyKQogQXVk
aW9PdXRwdXRVbml0QWRhcHRvcjo6fkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IoKQogewogICAgIGlm
IChtX291dHB1dFVuaXQpCi0gICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1f
b3V0cHV0VW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2Uo
bV9vdXRwdXRVbml0KTsKIH0KIAogT1NTdGF0dXMgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6c3Rh
cnQoKQogewotICAgIGF1dG8gcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9vdXRwdXRV
bml0KTsKKyAgICBhdXRvIHJlc3VsdCA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9vdXRw
dXRVbml0KTsKICAgICBpZiAocmVzdWx0ICE9IG5vRXJyKQogICAgICAgICBXVEZMb2dBbHdheXMo
IkVSUk9SOiBBdWRpb091dHB1dFVuaXRTdGFydCgpIGNhbGwgZmFpbGVkIHdpdGggZXJyb3IgY29k
ZTogJWxkIiwgc3RhdGljX2Nhc3Q8bG9uZz4ocmVzdWx0KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
QEAgLTUyLDcgKzU0LDcgQEAgT1NTdGF0dXMgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6c3RhcnQo
KQogCiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKCkKIHsKLSAgICByZXR1
cm4gQXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIHJldHVybiBQQUw6OkF1
ZGlvT3V0cHV0VW5pdFN0b3AobV9vdXRwdXRVbml0KTsKIH0KIAogLy8gRGVmYXVsdE91dHB1dFVu
aXQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCmluZGV4IGZkZjY3NzU3ZDFiNDc3
NjA4MDhiMTNmYjQzNGU0MGIzZGZkMzBlMDQuLjRlOTA2NGQwYzZlOTMwODlhZTBlYWE2Zjk5OGVj
ZDY1MzczNWQxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKICNpbmNsdWRlIDxBY2NlbGVyYXRlL0FjY2VsZXJh
dGUuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KKyNpbmNsdWRl
IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2Nv
cGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjcyLDcgKzI3Myw3IEBAIE9TU3RhdHVz
IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBz
b3VyY2UsIHNpemVfdCBmCiAKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gaW5wdXRG
b3JtYXQ7CiAgICAgVUludDMyIHByb3BlcnR5RGF0YVNpemUgPSBzaXplb2YoaW5wdXRGb3JtYXQp
OwotICAgIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0
ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZpbnB1
dEZvcm1hdCk7CisgICAgUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwg
a0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0eURh
dGFTaXplLCAmaW5wdXRGb3JtYXQpOwogICAgIEFTU0VSVChmcmFtZUNvdW50IDw9IHNvdXJjZS5t
QnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplIC8gaW5wdXRGb3JtYXQubUJ5dGVzUGVyUGFja2V0KTsK
IAogICAgIEF1ZGlvQ29udmVydGVyRnJvbUFCTENvbnRleHQgY29udGV4dCB7IHNvdXJjZSwgZnJh
bWVDb3VudCwgaW5wdXRGb3JtYXQubUJ5dGVzUGVyUGFja2V0IH07CkBAIC0yODAsNyArMjgxLDcg
QEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1
ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG91dHB1dEZvcm1hdDsKICAgICBwcm9wZXJ0eURhdGFTaXpl
ID0gc2l6ZW9mKG91dHB1dEZvcm1hdCk7Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShj
b252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwg
JnByb3BlcnR5RGF0YVNpemUsICZvdXRwdXRGb3JtYXQpOworICAgIFBBTDo6QXVkaW9Db252ZXJ0
ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJl
YW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZvdXRwdXRGb3JtYXQpOwogCiAgICAg
QVNTRVJUKENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihvdXRwdXRGb3JtYXQpLm51bWJlck9mQ2hh
bm5lbFN0cmVhbXMoKSA9PSBtX2J1ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCkpOwogICAgIGZvciAo
dWludDMyX3QgaSA9IDA7IGkgPCBtX2J1ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCk7ICsraSkgewpA
QCAtMjkwLDcgKzI5MSw3IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZy
b20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBzb3VyY2UsIHNpemVfdCBmCiAjZW5kaWYKIAogICAg
IFVJbnQzMiBzYW1wbGVzQ29udmVydGVkID0gbV9zYW1wbGVDYXBhY2l0eTsKLSAgICBPU1N0YXR1
cyBlcnIgPSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9D
b252ZXJ0ZXJGcm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9i
dWZmZXJMaXN0LT5saXN0KCksIG51bGxwdHIpOworICAgIE9TU3RhdHVzIGVyciA9IFBBTDo6QXVk
aW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcihjb252ZXJ0ZXIsIGF1ZGlvQ29udmVydGVyRnJv
bUFCTENhbGxiYWNrLCAmY29udGV4dCwgJnNhbXBsZXNDb252ZXJ0ZWQsIG1fYnVmZmVyTGlzdC0+
bGlzdCgpLCBudWxscHRyKTsKICAgICBpZiAoIWVyciB8fCBlcnIgPT0ga1Jhbk91dE9mSW5wdXRE
YXRhU3RhdHVzKSB7CiAgICAgICAgIG1fc2FtcGxlQ291bnQgPSBzYW1wbGVzQ29udmVydGVkOwog
ICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQppbmRleCBlNWVjNDc3Nzg1
ODFhN2FjZjBlNzI1NTMzM2Y5ZTI2OTQxYzQ3MmQxLi5kMmI1YWM0NWYzMGZkNGEzYWY1MWI0MjBk
ZTM3NjQ5YjExNTFjMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCkBAIC00Miw3ICs0Miw2
IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIFJl
ZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKHNp
emVfdCBtYXhpbXVtU2FtcGxlQ291bnQsIExvZ2dlckhlbHBlciYgbG9nZ2VySGVscGVyLCBzaXpl
X3Qgd2FpdFRvU3RhcnRGb3JQdXNoQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcAppbmRleCA4OWVj
ZWVkNjFjYjE5YmZkN2Q0MjBjNzc4YWFhMTIwYWMzNTZkYmZkLi4zMGRlYjJlNGM3NDFkZjU0ODhi
MzhmNWVkNTllZWJlNWEwMjg5YmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKQEAgLTMyLDcgKzMy
LDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogV2ViQXVkaW9CdWZmZXJMaXN0OjpX
ZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQp
CiAgICAgOiBtX2J5dGVzUGVyRnJhbWUoZm9ybWF0LmJ5dGVzUGVyRnJhbWUoKSkKQEAgLTExNiw3
ICsxMTUsNyBAQCBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgQwogICAgICAgICByZXR1cm47CiAKICAg
ICBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKG5vRXJyID09IENN
U2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIoc2Ft
cGxlQnVmZmVyLCBudWxscHRyLCBtX2Nhbm9uaWNhbExpc3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNp
emUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQs
IGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9CdWZmZXJMaXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVu
dCwgJmJ1ZmZlcikpCisgICAgaWYgKG5vRXJyID09IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRBdWRp
b0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1wbGVCdWZmZXIsIG51bGxwdHIs
IG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6ZSwga0NGQWxsb2NhdG9yU3lz
dGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NNU2FtcGxlQnVmZmVyRmxh
Z19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50LCAmYnVmZmVyKSkKICAgICAg
ICAgbV9ibG9ja0J1ZmZlciA9IGFkb3B0Q0YoYnVmZmVyKTsKIAogICAgIHJlc2V0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRVbml0
QWRhcHRvcklPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9P
dXRwdXRVbml0QWRhcHRvcklPUy5jcHAKaW5kZXggMmU5NjMwZmI2MGYyMmIzZWU1NmQyNDJkNzMw
NDM0ODZiODdiNTYyZi4uZjg5MTA3ZmZiMWMzZjUzYmUzMTlhYTM4NjgxNDc3NGJiNGQyN2E0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0
VW5pdEFkYXB0b3JJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lv
cy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcApAQCAtMzMsMTUgKzMzLDcgQEAKICNpZiBF
TkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaW5jbHVkZSAiQXVk
aW9TZXNzaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19G
UkFNRVdPUksoQXVkaW9Ub29sYm94KQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db21w
b25lbnRGaW5kTmV4dCwgQXVkaW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVu
dCwgY29uc3QgQXVkaW9Db21wb25lbnREZXNjcmlwdGlvbiAqaW5EZXNjKSwgKGluQ29tcG9uZW50
LCBpbkRlc2MpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5j
ZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25l
bnRJbnN0YW5jZSAqb3V0SW5zdGFuY2UpLCAoaW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKLVNP
RlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEFkZFByb3BlcnR5TGlzdGVuZXIsIE9TU3Rh
dHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1Vu
aXRQcm9wZXJ0eUxpc3RlbmVyUHJvYyBpblByb2MsIHZvaWQgKmluUHJvY1VzZXJEYXRhKSwgKGlu
VW5pdCwgaW5JRCwgaW5Qcm9jLCBpblByb2NVc2VyRGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29s
Ym94LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBB
dWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5p
dEVsZW1lbnQgaW5FbGVtZW50LCB2b2lkICpvdXREYXRhLCBVSW50MzIgKmlvRGF0YVNpemUpLCAo
aW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChB
dWRpb1VuaXQgaW5Vbml0KSwgKGluVW5pdCkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRp
b1VuaXRTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQ
cm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQg
aW5FbGVtZW50LCBjb25zdCB2b2lkICppbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXplKSwgKGluVW5p
dCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUpKQorI2luY2x1
ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTU4LDE1ICs1MCwxNSBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZp
Z3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIGRlc2Mu
Y29tcG9uZW50TWFudWZhY3R1cmVyID0ga0F1ZGlvVW5pdE1hbnVmYWN0dXJlcl9BcHBsZTsKICAg
ICBkZXNjLmNvbXBvbmVudEZsYWdzID0gMDsKICAgICBkZXNjLmNvbXBvbmVudEZsYWdzTWFzayA9
IDA7Ci0gICAgY29tcCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOworICAgIGNv
bXAgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOwogCiAgICAgQVNTRVJU
KGNvbXApOwogCi0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyhjb21wLCAmbV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBQQUw6OkF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFy
ZXN1bHQpOwogCiAgICAgVUludDMyIGZsYWcgPSAxOwotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1fb3V0cHV0VW5pdCwKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNldFBy
b3BlcnR5KG1fb3V0cHV0VW5pdCwKICAgICAgICAga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0Vu
YWJsZUlPLAogICAgICAgICBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LAogICAgICAgICAwLApAQCAt
NzQsMjAgKzY2LDIwIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZs
b2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgICAgIHNpemVvZihm
bGFnKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0SW5p
dGlhbGl6ZShtX291dHB1dFVuaXQpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0SW5pdGlh
bGl6ZShtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKICAgICAvLyBTZXQgcmVu
ZGVyIGNhbGxiYWNrCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBpbnB1dDsKICAgICBpbnB1
dC5pbnB1dFByb2MgPSBpbnB1dFByb2M7CiAgICAgaW5wdXQuaW5wdXRQcm9jUmVmQ29uID0gdGhp
czsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRp
b1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAw
LCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJh
Y2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKICAg
ICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdAogICAgIEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzdHJlYW1Gb3JtYXQ7CiAKICAgICBVSW50MzIgc2l6ZSA9
IHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pOwotICAgIHJlc3VsdCA9IEF1ZGlv
VW5pdEdldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsICZz
aXplKTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1fb3V0cHV0VW5p
dCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1
dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsICZzaXplKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7
CiAKICAgICBjb25zdGV4cHIgaW50IGJ5dGVzUGVyRmxvYXQgPSBzaXplb2YoRmxvYXQzMik7CkBA
IC0xMDEsNyArOTMsNyBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShm
bG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1h
dC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFt
Rm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAot
ICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCop
JnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAg
IHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lk
Kikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAg
ICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
c2V0UHJlZmVycmVkQnVmZmVyU2l6ZShrUHJlZmVycmVkQnVmZmVyU2l6ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRv
ck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRV
bml0QWRhcHRvck1hYy5jcHAKaW5kZXggYzhlZDNlZjc4YzhjNmEzYjFlMDcwY2I0NDA1OTY5YWRh
NGFjM2RhMi4uNzE0Y2NlODg2MjU3NTE4NjFkNWUyYjg1MTMxM2E4OWQwNDEyZWFjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFk
YXB0b3JNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRp
b091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAi
QXVkaW9CdXMuaCIKICNpbmNsdWRlIDxDb3JlQXVkaW8vQXVkaW9IYXJkd2FyZS5oPgorI2luY2x1
ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQ4LDIxICs0OSwyMSBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZp
Z3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIGRlc2Mu
Y29tcG9uZW50TWFudWZhY3R1cmVyID0ga0F1ZGlvVW5pdE1hbnVmYWN0dXJlcl9BcHBsZTsKICAg
ICBkZXNjLmNvbXBvbmVudEZsYWdzID0gMDsKICAgICBkZXNjLmNvbXBvbmVudEZsYWdzTWFzayA9
IDA7Ci0gICAgY29tcCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOworICAgIGNv
bXAgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOwogCiAgICAgQVNTRVJU
KGNvbXApOwogCi0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dyhjb21wLCAmbV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBQQUw6OkF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFy
ZXN1bHQpOwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQp
OworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQpOwog
ICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCByZW5kZXIgY2FsbGJhY2sKICAgICBB
VVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlucHV0LmlucHV0UHJvYyA9IGlucHV0
UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlzOwotICAgIHJlc3VsdCA9IEF1
ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJl
bmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmaW5wdXQsIHNpemVvZihp
bnB1dCkpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRV
bml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29w
ZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CiAgICAgQVNTRVJUKCFyZXN1bHQp
OwogCiAgICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQKQEAgLTc5LDcgKzgwLDcgQEAgdm9pZCBBdWRp
b091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1
bnNpZ25lZCBudW1iZXIKICAgICBzdHJlYW1Gb3JtYXQubUNoYW5uZWxzUGVyRnJhbWUgPSBudW1i
ZXJPZk91dHB1dENoYW5uZWxzOwogICAgIHN0cmVhbUZvcm1hdC5tQml0c1BlckNoYW5uZWwgPSBi
aXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQ7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCmlu
ZGV4IGE1MzMzMmNmN2RiZDY0NjZmNDRmNTc2ZDFjZDdhZGU3NjE1MGFhNGYuLjc4NDc0ZDhlNWE1
YWMwNzAzNTMzNTk5MGNkZGY4YWZjZDgwNTYxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTMzLDEzICszMywxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIFJldGFpblB0cjxD
TUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbWFnaWNDb29raWVT
aXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSkKIHsKICAgICBhdXRvIGJhc2ljRGVzY3JpcHRp
b24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlw
dGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwogICAgIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRp
b24sIDAsIG51bGxwdHIsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZm
b3JtYXQpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxscHRyLCBt
YWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBudWxscHRyLCAmZm9ybWF0KTsKICAgICBpZiAo
ZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTU1
LDE0ICs1MywxNCBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2Ft
cGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0g
ICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3Jp
cHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxs
cHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVm
ZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0
aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBmYWxzZSwg
bnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgbnVsbHB0
ciwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIExPR19FUlJPUigi
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgd2l0aCBwYWNrZXQgZGVzY3JpcHRpb25zIGZhaWxlZCAt
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgYXV0byBi
dWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7CiAKLSAgICBlcnJvciA9IENNU2FtcGxlQnVm
ZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1
ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7CisgICAgZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGRhdGEpLmxpc3QoKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIExPR19FUlJP
UigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgZnJvbSBhdWRpbyBidWZmZXIgbGlzdCBmYWlsZWQg
LSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKaW5kZXgg
NTdjZjI5ZDBkNzdlNjc4ODliZGNlZmQ0MDU4NTEyOWVkMTJhNDU1NS4uNjRlMzBiYzI5M2NhOGY5
Mzg4NDg4ZjE0ODg1MDZjNTdiZTBhNTE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtNDEsNyArNDEsNiBA
QAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gdHJhbnNmZXJCR1JBUGl4ZWxCdWZmZXJUb0lPU3VyZmFjZShDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyKQogewpAQCAtOTAsNyArODksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmIHNh
bXBsZQogewogICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFBsYXRm
b3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOwogCi0gICAgYXV0byBpbWFnZUJ1ZmZlciA9
IENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNh
bXBsZUJ1ZmZlcik7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIgcmV0dXJuZWQgbnVsbHB0ciIpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpp
bmRleCA5ODM5YjM3MGE3MTNiN2MxZDIzZDg0N2ZhODY1MDVkNWFlOTc5YWIyLi5kZmY0ZmE0ZWRm
MjY0YjQ1MmJmOGRhN2FmYWVmNGNiZDdhMDI3YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC00NiwyMiArNDYsMTMgQEAKICNpbXBv
cnQgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2VuZGlmCiAKKyNpbXBvcnQgPHBhbC9jZi9B
dWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KLQotU09GVF9M
SU5LX0ZSQU1FV09SSyhNZWRpYVRvb2xib3gpCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9v
bGJveCkKLQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29t
cGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVy
LCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCogaW5JbnB1
dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlvQ29udmVydGVy
LCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEpKQotU09GVF9M
SU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJl
Ziogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3Jt
YXQsIG91dEF1ZGlvQ29udmVydGVyKSkKLQotU09GVF9MSU5LKE1lZGlhVG9vbGJveCwgTVRBdWRp
b1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVm
IHRhcCksICh0YXApKQotU09GVF9MSU5LKE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAs
IENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5P
dXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGlt
ZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJh
bWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1l
c091dCkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IE1U
QXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzICpjYWxsYmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgKnRhcE91dCks
IChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91dCkpCisjaW1wb3J0IDxwYWwvY29j
b2EvTWVkaWFUb29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2lu
ZyBuYW1lc3BhY2UgUEFMOwogc3RhdGljIGNvbnN0IGRvdWJsZSBrUmluZ0J1ZmZlckR1cmF0aW9u
ID0gMTsKIAogY2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OlRhcFN0b3JhZ2UgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OlRh
cFN0b3JhZ2U+IHsKQEAgLTczLDcgKzY0LDcgQEAgcHVibGljOgogCiBSZWZQdHI8QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM+IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoQVZQ
bGF5ZXJJdGVtICppdGVtKQogewotICAgIGlmICghY2FuTG9hZE1UQXVkaW9Qcm9jZXNzaW5nVGFw
Q3JlYXRlKCkpCisgICAgaWYgKCFQQUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9j
ZXNzaW5nVGFwQ3JlYXRlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKGl0ZW0pKTsKIH0KQEAgLTE1
Miw3ICsxNDMsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5w
dXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgIG1fcmVhZENvdW50ICs9
IGZyYW1lc1RvUHJvY2VzczsKIAogICAgIGlmIChtX2NvbnZlcnRlcikKLSAgICAgICAgQXVkaW9D
b252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Q
cm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CisgICAgICAgIFBBTDo6QXVkaW9D
b252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Q
cm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CiB9CiAKIHZvaWQgQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBj
bGllbnQpCkBAIC0yMjUsNyArMjE2LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6Y3JlYXRlTWl4SWZOZWVkZWQoKQogICAgIH07CiAKICAgICBNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cFJlZiB0YXAgPSBudWxscHRyOwotICAgIE9TU3RhdHVzIHN0YXR1cyA9IE1UQXVkaW9Qcm9jZXNz
aW5nVGFwQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZjYWxsYmFja3MsIDEsICZ0YXApOwor
ICAgIE9TU3RhdHVzIHN0YXR1cyA9IFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwgJnRhcCk7CiAgICAgaWYgKHN0YXR1cyAh
PSBub0VycikgewogICAgICAgICBpZiAodGFwKQogICAgICAgICAgICAgQ0ZSZWxlYXNlKHRhcCk7
CkBAIC0yNTgsMTQgKzI0OSwxNCBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpp
bml0Q2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCB2b2lkKgogdm9pZCBBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcFJlZiB0YXApCiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3Rv
cmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0
b3JhZ2UodGFwKSk7CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRh
cFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKICAg
ICB0YXBTdG9yYWdlLT5kZXJlZigpOwogfQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpwcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1D
b3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiAqcHJvY2Vz
c2luZ0Zvcm1hdCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9y
YWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3Rv
cmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFw
U3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogCiAg
ICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjc2LDcgKzI2Nyw3
IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxsYmFjayhNVEF1
ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjp1bnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApCiB7CiAg
ICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0
PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CisgICAg
VGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1U
QXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExvY2tlciBsb2NrZXIg
eyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTI4Nyw3ICsyNzgsNyBAQCB2b2lkIEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cFJlZiB0YXApCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzQ2FsbGJh
Y2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1iZXJGcmFtZXMs
IE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgZmxhZ3MsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVy
TGlzdEluT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0LCBNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcEZsYWdzICpmbGFnc091dCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdl
KiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5n
VGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGlj
X2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRh
cCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMzE3
LDcgKzMwOCw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoQ01J
dGVtQ291bnQgbWF4RnJhbWVzLCBjb25zdCBBdWRpb1N0cmVhCiAKICAgICBpZiAoKm1fdGFwRGVz
Y3JpcHRpb24gIT0gKm1fb3V0cHV0RGVzY3JpcHRpb24pIHsKICAgICAgICAgQXVkaW9Db252ZXJ0
ZXJSZWYgb3V0Q29udmVydGVyID0gbnVsbHB0cjsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJOZXco
bV90YXBEZXNjcmlwdGlvbi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQoKSwgJm91dENv
bnZlcnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcobV90YXBEZXNjcmlwdGlv
bi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQoKSwgJm91dENvbnZlcnRlcik7CiAgICAg
ICAgIG1fY29udmVydGVyID0gb3V0Q29udmVydGVyOwogICAgIH0KIApAQCAtMzU3LDcgKzM0OCw3
IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3MoTVRBdWRpb1Byb2Nl
c3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VuCiAgICAgCiAgICAgQ01JdGVtQ291bnQgaXRlbUNv
dW50ID0gMDsKICAgICBDTVRpbWVSYW5nZSByYW5nZU91dDsKLSAgICBPU1N0YXR1cyBzdGF0dXMg
PSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvKHRhcCwgbnVtYmVyT2ZGcmFtZXMs
IGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsICZyYW5nZU91dCwgJml0ZW1Db3VudCk7CisgICAg
T1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlv
KHRhcCwgbnVtYmVyT2ZGcmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsICZyYW5nZU91
dCwgJml0ZW1Db3VudCk7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCAhaXRlbUNvdW50KQog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDMwNWIzZDI3ZTM0
MmY5ODcyMTEyZjExNzRjMTRmZjRmM2M2MDg1NWQuLjUzMjlmMWQ5ZDNhZWE3YzU0ZDMzNjZjMzJh
ZDFhNjAzOGE3OWViMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMjMyLDcgKzIzMiw2
IEBAIHN0cnVjdCBMb2dBcmd1bWVudDxBVlBsYXllclRpbWVDb250cm9sU3RhdHVzPiB7CiB9OyAv
LyBuYW1lc3BhY2UgV1RGCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiAKIHN0YXRpYyBOU0FycmF5ICphc3NldE1ldGFkYXRhS2V5TmFtZXMoKTsKIHN0YXRpYyBO
U0FycmF5ICppdGVtS1ZPUHJvcGVydGllcygpOwpAQCAtNTcyLDcgKzU3MSw2IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQ29udGV4dFZpZGVvUmVuZGVy
ZXIoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUlt
YWdlR2VuZXJhdG9yKCkKIHsKLSAgICB1c2luZyBuYW1lc3BhY2UgUEFMOwogICAgIElORk9fTE9H
KExPR0lERU5USUZJRVIpOwogCiAgICAgaWYgKCFtX2F2QXNzZXQgfHwgbV9pbWFnZUdlbmVyYXRv
cikKQEAgLTU4Miw4ICs1ODAsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZUltYWdlR2VuZXJhdG9yKCkKIAogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdl
dCgpIHNldEFwZXJ0dXJlTW9kZTpBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1vZGVDbGVh
bkFwZXJ0dXJlXTsKICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcHBsaWVzUHJlZmVy
cmVkVHJhY2tUcmFuc2Zvcm06WUVTXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRS
ZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOmtDTVRpbWVaZXJvXTsKLSAgICBbbV9pbWFnZUdl
bmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6a0NNVGltZVplcm9d
OworICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VC
ZWZvcmU6UEFMOjprQ01UaW1lWmVyb107CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0
UmVxdWVzdGVkVGltZVRvbGVyYW5jZUFmdGVyOlBBTDo6a0NNVGltZVplcm9dOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lDb250ZXh0VmlkZW9S
ZW5kZXJlcigpCkBAIC02NzEsNyArNjY5LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiAgICAgaWYgKCFkYXRlKQog
ICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOwogCi0gICAgZG91YmxlIGN1
cnJlbnRUaW1lID0gQ01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0ZW0gY3VycmVudFRpbWVd
KSAqIDEwMDA7CisgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRz
KFttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV0pICogMTAwMDsKIAogICAgIC8vIFJvdW5kaW5n
IGR1ZSB0byBzZWNvbmQgb2Zmc2V0IGVycm9yIHdoZW4gc3VidHJhY3RpbmcuCiAgICAgcmV0dXJu
IE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZShyb3VuZChkYXRlIC0gY3VycmVudFRpbWUpKTsK
QEAgLTEwODksNyArMTA4Nyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y3JlYXRlQVZQbGF5ZXIoKQogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRUaW1lT2JzZXJ2
ZXIpOwogICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7Ci0gICAgbV9jdXJy
ZW50VGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJ
bnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRpbWUpIHsKKyAgICBtX2N1cnJlbnRUaW1l
T2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFs
OlBBTDo6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1
c2luZ0Jsb2NrOlt3ZWFrVGhpc10gKENNVGltZSB0aW1lKSB7CiAgICAgICAgIGlmICh3ZWFrVGhp
cykKICAgICAgICAgICAgIHdlYWtUaGlzLT5jdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKFBBTDo6
dG9NZWRpYVRpbWUodGltZSkpOwogICAgIH1dOwpAQCAtMTQyMyw3ICsxNDIxLDcgQEAgTWVkaWFU
aW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRNZWRpYVRpbWUo
KSBjb25zdAogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCiAgICAgaWYg
KCFtX3dhbGxDbG9ja0F0Q2FjaGVkQ3VycmVudFRpbWUpCi0gICAgICAgIGN1cnJlbnRNZWRpYVRp
bWVEaWRDaGFuZ2UodG9NZWRpYVRpbWUoW21fYXZQbGF5ZXJJdGVtLmdldCgpIGN1cnJlbnRUaW1l
XSkpOworICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKFBBTDo6dG9NZWRpYVRpbWUo
W21fYXZQbGF5ZXJJdGVtLmdldCgpIGN1cnJlbnRUaW1lXSkpOwogICAgIEFTU0VSVChtX3dhbGxD
bG9ja0F0Q2FjaGVkQ3VycmVudFRpbWUpOwogCiAgICAgYXV0byBpdGVtVGltZSA9IG1fY2FjaGVk
Q3VycmVudE1lZGlhVGltZTsKQEAgLTE0NjgsOCArMTQ2Niw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUs
IGNvbnN0CiAgICAgQ01UaW1lIGNtQWZ0ZXIgPSBQQUw6OnRvQ01UaW1lKHBvc2l0aXZlVG9sZXJh
bmNlKTsKIAogICAgIC8vIFtBVlBsYXllckl0ZW0gc2Vla1RvVGltZV0gd2lsbCB0aHJvdyBhbiBl
eGNlcHRpb24gaWYgdG9sZXJhbmNlQmVmb3JlIGlzIG5lZ2F0aXZlLgotICAgIGlmIChDTVRpbWVD
b21wYXJlKGNtQmVmb3JlLCBrQ01UaW1lWmVybykgPCAwKQotICAgICAgICBjbUJlZm9yZSA9IGtD
TVRpbWVaZXJvOworICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoY21CZWZvcmUsIFBBTDo6a0NN
VGltZVplcm8pIDwgMCkKKyAgICAgICAgY21CZWZvcmUgPSBQQUw6OmtDTVRpbWVaZXJvOwogICAg
IAogICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAKQEAgLTE1ODYsNiAr
MTU4NCw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0UGl0
Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKE1lZGlhUGxheWVyCiAKIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRm
b3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFM
OyAvLyBGb3IgQ01USU1FUkFOR0VfSVNfRU1QVFkuCisKICAgICBhdXRvIHRpbWVSYW5nZXMgPSBt
YWtlVW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKIAogICAgIGlmICghbV9hdlBsYXllckl0
ZW0pCkBAIC0xNTk0LDEzICsxNTk0LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVS
YW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtCiAgICAg
Zm9yIChOU1ZhbHVlICp0aGlzUmFuZ2VWYWx1ZSBpbiBtX2NhY2hlZExvYWRlZFJhbmdlcy5nZXQo
KSkgewogICAgICAgICBDTVRpbWVSYW5nZSB0aW1lUmFuZ2UgPSBbdGhpc1JhbmdlVmFsdWUgQ01U
aW1lUmFuZ2VWYWx1ZV07CiAgICAgICAgIGlmIChDTVRJTUVSQU5HRV9JU19WQUxJRCh0aW1lUmFu
Z2UpICYmICFDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQotICAgICAgICAgICAgdGlt
ZVJhbmdlcy0+YWRkKFBBTDo6dG9NZWRpYVRpbWUodGltZVJhbmdlLnN0YXJ0KSwgUEFMOjp0b01l
ZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CisgICAgICAgICAgICB0aW1l
UmFuZ2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQQUw6OnRvTWVk
aWFUaW1lKFBBTDo6Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSkpOwogICAgIH0KICAgICBy
ZXR1cm4gdGltZVJhbmdlczsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBsYXRmb3JtTWluVGltZVNlZWthYmxlKCkgY29uc3QKIHsKKyAgICB1c2lu
ZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1FUkFOR0VfSVNfRU1QVFkuCisKICAgICBpZiAo
IW1fY2FjaGVkU2Vla2FibGVSYW5nZXMgfHwgIVttX2NhY2hlZFNlZWthYmxlUmFuZ2VzIGNvdW50
XSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIApAQCAtMTYyMSw2ICsx
NjIzLDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBs
YXRmb3JtTWluVGltZVNlZWthYmxlKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKIHsK
KyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1FUkFOR0VfSVNfRU1QVFkuCisK
ICAgICBpZiAoIW1fY2FjaGVkU2Vla2FibGVSYW5nZXMpCiAgICAgICAgIG1fY2FjaGVkU2Vla2Fi
bGVSYW5nZXMgPSBbbV9hdlBsYXllckl0ZW0gc2Vla2FibGVUaW1lUmFuZ2VzXTsKIApAQCAtMTYz
Myw3ICsxNjM3LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKICAgICAgICAgaWYgKCFDTVRJTUVS
QU5HRV9JU19WQUxJRCh0aW1lUmFuZ2UpIHx8IENNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5n
ZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIE1lZGlhVGltZSBl
bmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2Up
KTsKKyAgICAgICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CiAgICAgICAgIGlmIChtYXhUaW1lU2Vla2Fi
bGUgPCBlbmRPZlJhbmdlKQogICAgICAgICAgICAgbWF4VGltZVNlZWthYmxlID0gZW5kT2ZSYW5n
ZTsKICAgICB9CkBAIC0xNjQyLDYgKzE2NDYsOCBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAogCiBN
ZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhU
aW1lTG9hZGVkKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01U
SU1FUkFOR0VfSVNfRU1QVFkuCisKICAgICBpZiAoIW1fY2FjaGVkTG9hZGVkUmFuZ2VzKQogICAg
ICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCkBAIC0xNjUxLDcgKzE2NTcsNyBA
QCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1N
YXhUaW1lTG9hZGVkKCkgY29uc3QKICAgICAgICAgaWYgKCFDTVRJTUVSQU5HRV9JU19WQUxJRCh0
aW1lUmFuZ2UpIHx8IENNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5nZSkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIE1lZGlhVGltZSBlbmRPZlJhbmdlID0gUEFM
Ojp0b01lZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKKyAgICAgICAgTWVk
aWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lUmFuZ2VHZXRF
bmQodGltZVJhbmdlKSk7CiAgICAgICAgIGlmIChtYXhUaW1lTG9hZGVkIDwgZW5kT2ZSYW5nZSkK
ICAgICAgICAgICAgIG1heFRpbWVMb2FkZWQgPSBlbmRPZlJhbmdlOwogICAgIH0KQEAgLTE4MDMs
NyArMTgwOSw3IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlCiAgICAgTW9ub3RvbmljVGltZSBz
dGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogCiAgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0
KCkgc2V0TWF4aW11bVNpemU6Q0dTaXplKHJlY3Quc2l6ZSgpKV07Ci0gICAgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5
Q0dJbWFnZUF0VGltZTpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1l
Om5pbCBlcnJvcjpuaWxdKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBh
ZG9wdENGKFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOlBBTDo6Q01U
aW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJyb3I6bmlsXSk7
CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gYWRvcHRDRihDR0ltYWdlQ3JlYXRl
Q29weVdpdGhDb2xvclNwYWNlKHJhd0ltYWdlLmdldCgpLCBzUkdCQ29sb3JTcGFjZVJlZigpKSk7
CiAKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAiY3JlYXRpbmcgaW1hZ2UgdG9vayAiLCAo
TW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydCkuc2Vjb25kcygpKTsKQEAgLTE5ODksNyArMTk5
NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGlkU3RvcExv
YWRpbmdSZXF1ZXN0KEFWQXNzZXRSZXNvdXJjZUxvCiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBQQUw6OmlzQVZG
b3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgaXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFp
bGFibGUoKTsKKyAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJs
ZSgpICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKTsKIH0KIAogTWVkaWFU
aW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1lZGlhVGltZUZvclRpbWVW
YWx1ZShjb25zdCBNZWRpYVRpbWUmIHRpbWVWYWx1ZSkgY29uc3QKQEAgLTI5MDEsNyArMjkwNyw3
IEBAIHN0YXRpYyBOU1N0cmluZyAqZXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyKEFW
UGxheWVyICpwbGF5ZXIpCiAgICAgaWYgKCFQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZh
aWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBpZiAoYXV0byBjb250ZXh0ID0g
T3V0cHV0Q29udGV4dDo6c2hhcmVkQXVkaW9QcmVzZW50YXRpb25PdXRwdXRDb250ZXh0KCkpCisg
ICAgaWYgKGF1dG8gY29udGV4dCA9IFBBTDo6T3V0cHV0Q29udGV4dDo6c2hhcmVkQXVkaW9QcmVz
ZW50YXRpb25PdXRwdXRDb250ZXh0KCkpCiAgICAgICAgIHJldHVybiBjb250ZXh0LT5kZXZpY2VO
YW1lKCk7CiAKICAgICBpZiAocGxheWVyLmV4dGVybmFsUGxheWJhY2tUeXBlICE9IEFWUGxheWVy
RXh0ZXJuYWxQbGF5YmFja1R5cGVBaXJQbGF5KQpAQCAtMzIzNSw5ICszMjQxLDkgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZl
KGNvbnN0IFJldGFpblB0cjwKICAgICAgICAgZm9yIChBVk1ldGFkYXRhSXRlbSAqaXRlbSBpbiBn
cm91cC5pdGVtcykgewogICAgICAgICAgICAgUmV0YWluUHRyPEFWTXV0YWJsZU1ldGFkYXRhSXRl
bT4gaXRlbUNvcHkgPSBhZG9wdE5TKFtpdGVtIG11dGFibGVDb3B5XSk7CiAgICAgICAgICAgICBp
ZiAoIUNNVElNRV9JU19WQUxJRChpdGVtQ29weS5nZXQoKS50aW1lKSkKLSAgICAgICAgICAgICAg
ICBpdGVtQ29weS5nZXQoKS50aW1lID0gQ01UaW1lTWFrZVdpdGhTZWNvbmRzKGdyb3VwU3RhcnRU
aW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOworICAgICAgICAgICAgICAgIGl0ZW1D
b3B5LmdldCgpLnRpbWUgPSBQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhncm91cFN0YXJ0VGlt
ZSwgTWVkaWFUaW1lOjpEZWZhdWx0VGltZVNjYWxlKTsKICAgICAgICAgICAgIGlmICghQ01USU1F
X0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uKSkKLSAgICAgICAgICAgICAgICBpdGVt
Q29weS5nZXQoKS5kdXJhdGlvbiA9IHRvQ01UaW1lKGdyb3VwRHVyYXRpb24pOworICAgICAgICAg
ICAgICAgIGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gUEFMOjp0b0NNVGltZShncm91cER1cmF0
aW9uKTsKICAgICAgICAgICAgIFtncm91cENvcHkgYWRkT2JqZWN0Oml0ZW1Db3B5LmdldCgpXTsK
ICAgICAgICAgfQogCkBAIC0zMjc5LDcgKzMyODUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKGNvbnN0IFJldGFpblB0cjxOU0Fy
cgogCiAgICAgICAgIE1lZGlhVGltZSBlbmQgPSBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVU
aW1lKCk7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBpdGVtLmR1cmF0aW9uOwotICAgICAgICBp
ZiAoQ01USU1FX0lTX1ZBTElEKGR1cmF0aW9uKSAmJiBDTVRpbWVHZXRTZWNvbmRzKGR1cmF0aW9u
KSA+IDAuMDAxKQorICAgICAgICBpZiAoQ01USU1FX0lTX1ZBTElEKGR1cmF0aW9uKSAmJiBQQUw6
OkNNVGltZUdldFNlY29uZHMoZHVyYXRpb24pID4gMC4wMDEpCiAgICAgICAgICAgICBlbmQgPSBz
dGFydCArIFBBTDo6dG9NZWRpYVRpbWUoZHVyYXRpb24pOwogCiAgICAgICAgIEF0b21TdHJpbmcg
dHlwZSA9IG51bGxBdG9tKCk7CkBAIC0zNDU4LDcgKzM0NjQsNyBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5j
dGlvbjx2bwogICAgIGlmIChtX3RpbWVPYnNlcnZlcikKICAgICAgICAgW21fYXZQbGF5ZXIgcmVt
b3ZlVGltZU9ic2VydmVyOm1fdGltZU9ic2VydmVyLmdldCgpXTsKIAotICAgIG1fdGltZU9ic2Vy
dmVyID0gW21fYXZQbGF5ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1Zh
bHVlIHZhbHVlV2l0aENNVGltZTp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeeworICAgIG1fdGltZU9ic2VydmVyID0gW21fYXZQbGF5
ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENN
VGltZTpQQUw6OnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSB1c2luZ0Jsb2NrOl57CiAgICAgICAgIHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVybiB0
cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDVhNjlhYTY3OTUxODljYjRlMDc2
ZDMxOTQ2OWY5OTY1MDRmZjk0NmMuLjczYWRlYjliYjczYTc4MjhkZjVhM2Y0ODRjNWY5MGUzMzNk
MjQxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTY2LDcgKzY2LDYgQEAgLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoU3RvcmFnZURpcmVjdG9yeUF0VVJMOihOU1VSTCAqKXN0b3Jh
Z2VEaXJlY3Rvcnk7CiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OlNlZWtTdGF0ZSBlbnVtZXJhdGlvblZhbHVlKQogewpA
QCAtMTE2LDE1ICsxMTUsMTUgQEAgc3RhdGljIHZvaWQgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVD
aGFuZ2VkQ2FsbGJhY2soQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsIGNvbnMKIAogdm9pZCBFZmZl
Y3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpzdG9wKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiB7
Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBDTU5vdGlmaWNhdGlvbkNlbnRlckdl
dERlZmF1bHRMb2NhbENlbnRlcigpOwotICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlz
dGVuZXIobmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBr
Q01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UpOwor
ICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRl
ckdldERlZmF1bHRMb2NhbENlbnRlcigpOworICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJS
ZW1vdmVMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2Fs
bGJhY2ssIFBBTDo6a0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQs
IHRpbWViYXNlKTsKIH0KIAogRWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZl
UmF0ZUNoYW5nZWRMaXN0ZW5lcihNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMm
IGNsaWVudCwgQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKICAgICA6IG1fY2xpZW50KG1ha2VXZWFr
UHRyKGNsaWVudCkpCiB7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBDTU5vdGlm
aWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpOwotICAgIENNTm90aWZpY2F0aW9u
Q2VudGVyQWRkTGlzdGVuZXIobmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdl
ZENhbGxiYWNrLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwg
dGltZWJhc2UsIDApOworICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gUEFMOjpDTU5v
dGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpOworICAgIFBBTDo6Q01Ob3Rp
ZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJh
dGVDaGFuZ2VkQ2FsbGJhY2ssIFBBTDo6a0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZl
UmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAwKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWFQ
bGF5ZXIqIHBsYXllcikKQEAgLTE1Nyw3ICsxNTYsNyBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRp
YQogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwg
dG9NZWRpYVRpbWUodGltZSksICIsIHNlZWtpbmcgPSAiLCBtX3NlZWtpbmcsICIsIHBlbmRpbmcg
PSAiLCAhIW1fcGVuZGluZ1NlZWspOworICAgICAgICBERUJVR19MT0cobG9nU2l0ZUlkZW50aWZp
ZXIsICJzeW5jaHJvbml6ZXIgZmlyZWQgZm9yICIsIFBBTDo6dG9NZWRpYVRpbWUodGltZSksICIs
IHNlZWtpbmcgPSAiLCBtX3NlZWtpbmcsICIsIHBlbmRpbmcgPSAiLCAhIW1fcGVuZGluZ1NlZWsp
OwogCiAgICAgICAgIGlmIChtX3NlZWtpbmcgJiYgIW1fcGVuZGluZ1NlZWspIHsKICAgICAgICAg
ICAgIG1fc2Vla2luZyA9IGZhbHNlOwpAQCAtMjM4LDExICsyMzcsMTEgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3QKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpp
c0F2YWlsYWJsZSgpCiB7CiAgICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtB
dmFpbGFibGUoKQotICAgICAgICAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpCi0g
ICAgICAgICYmIGdldEFWU3RyZWFtRGF0YVBhcnNlckNsYXNzKCkKLSAgICAgICAgJiYgZ2V0QVZT
YW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKQotICAgICAgICAmJiBnZXRBVlNhbXBsZUJ1
ZmZlclJlbmRlclN5bmNocm9uaXplckNsYXNzKCkKLSAgICAgICAgJiYgY2xhc3NfZ2V0SW5zdGFu
Y2VNZXRob2QoZ2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9y
KHNldE11dGVkOikpOworICAgICAgICAmJiBQQUw6OmlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxh
YmxlKCkKKyAgICAgICAgJiYgUEFMOjpnZXRBVlN0cmVhbURhdGFQYXJzZXJDbGFzcygpCisgICAg
ICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKQorICAgICAg
ICAmJiBQQUw6OmdldEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQorICAg
ICAgICAmJiBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChQQUw6OmdldEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3RvcihzZXRNdXRlZDopKTsKIH0KIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcykKQEAgLTQxNyw3ICs0
MTYsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpk
dXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OmN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdAogewotICAgIE1lZGlh
VGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGlt
ZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXpl
clRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hy
b25pemVyIHRpbWViYXNlXSkpOwogICAgIGlmIChzeW5jaHJvbml6ZXJUaW1lIDwgTWVkaWFUaW1l
Ojp6ZXJvVGltZSgpKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogICAg
IGlmIChzeW5jaHJvbml6ZXJUaW1lIDwgbV9sYXN0U2Vla1RpbWUpCkBAIC00MzAsNyArNDI5LDcg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRU
aW1lRGlkQ2hhbmdlQ2FsbGJhY2soTWVkaWEKICAgICBtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIAogICAgIGlmIChtX2N1cnJlbnRUaW1lRGlkQ2hh
bmdlQ2FsbGJhY2spIHsKLSAgICAgICAgbV90aW1lQ2hhbmdlZE9ic2VydmVyID0gW21fc3luY2hy
b25pemVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6Q01UaW1lTWFrZSgxLCAx
MCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl4oQ01UaW1lIHRp
bWUpIHsKKyAgICAgICAgbV90aW1lQ2hhbmdlZE9ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFk
ZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6UEFMOjpDTVRpbWVNYWtlKDEsIDEwKSBx
dWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XihDTVRpbWUgdGltZSkg
ewogICAgICAgICAgICAgaWYgKG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjaykKICAgICAg
ICAgICAgICAgICBtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2soQ01USU1FX0lTX05VTUVS
SUModGltZSkgPyBQQUw6OnRvTWVkaWFUaW1lKHRpbWUpIDogTWVkaWFUaW1lOjp6ZXJvVGltZSgp
KTsKICAgICAgICAgfV07CkBAIC00ODIsNyArNDgxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnNlZWtJbnRlcm5hbCgpCiAgICAgaWYgKG1fbGFzdFNlZWtU
aW1lLmhhc0RvdWJsZVZhbHVlKCkpCiAgICAgICAgIG1fbGFzdFNlZWtUaW1lID0gTWVkaWFUaW1l
OjpjcmVhdGVXaXRoRG91YmxlKG1fbGFzdFNlZWtUaW1lLnRvRG91YmxlKCksIE1lZGlhVGltZTo6
RGVmYXVsdFRpbWVTY2FsZSk7CiAKLSAgICBNZWRpYVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBB
TDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNl
XSkpOworICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShQ
QUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKICAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSLCAic2Vla1RpbWUgPSAiLCBtX2xhc3RTZWVrVGltZSwgIiwg
c3luY2hyb25pemVyVGltZSA9ICIsIHN5bmNocm9uaXplclRpbWUpOwogCiAgICAgYm9vbCBkb2Vz
Tm90UmVxdWlyZVNlZWsgPSBzeW5jaHJvbml6ZXJUaW1lID09IG1fbGFzdFNlZWtUaW1lOwpAQCAt
NTk5LDcgKzU5OCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Ojp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKQogICAgIGlmIChtX3ZpZGVvT3V0cHV0KSB7CiAgICAg
ICAgIENNVGltZSBvdXRwdXRUaW1lOwogICAgICAgICBpZiAoYXV0byBwaXhlbEJ1ZmZlciA9IGFk
b3B0Q0YoW21fdmlkZW9PdXRwdXQgY29weVBpeGVsQnVmZmVyRm9yU291cmNlVGltZTp0b0NNVGlt
ZShjdXJyZW50TWVkaWFUaW1lKCkpIHNvdXJjZVRpbWVGb3JEaXNwbGF5OiZvdXRwdXRUaW1lXSkp
IHsKLSAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJuZXcgcGl4ZWxidWZmZXIg
Zm91bmQgZm9yIHRpbWUgIiwgdG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOworICAgICAgICAgICAg
SU5GT19MT0coTE9HSURFTlRJRklFUiwgIm5ldyBwaXhlbGJ1ZmZlciBmb3VuZCBmb3IgdGltZSAi
LCBQQUw6OnRvTWVkaWFUaW1lKG91dHB1dFRpbWUpKTsKICAgICAgICAgICAgIG1fbGFzdFBpeGVs
QnVmZmVyID0gV1RGTW92ZShwaXhlbEJ1ZmZlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQpAQCAtODA5LDcgKzgwOCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpkZXN0cm95TGF5ZXIoKQogICAgIGlmICghbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGltZSBjdXJyZW50VGltZSA9
IENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOworICAgIENNVGlt
ZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRp
bWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRlcmVyOm1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmdldCgpIGF0VGltZTpjdXJyZW50VGltZSB3aXRoQ29tcGxldGlvbkhh
bmRsZXI6XihCT09MKXsKICAgICAgICAgLy8gTm8tb3AuCiAgICAgfV07CkBAIC0xMDE4LDcgKzEw
MTcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Zmx1c2hQ
ZW5kaW5nU2l6ZUNoYW5nZXMoKQogI2lmIEhBVkUoQVZTVFJFQU1TRVNTSU9OKQogQVZTdHJlYW1T
ZXNzaW9uKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN0cmVhbVNlc3Np
b24oKQogewotICAgIGlmICghZ2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0
QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0
b3IoaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCisgICAgaWYgKCFQQUw6OmdldEFW
U3RyZWFtU2Vzc2lvbkNsYXNzKCkgfHwgIVtQQUw6OmdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkg
aW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRXaXRoU3RvcmFnZURpcmVj
dG9yeUF0VVJMOildKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgaWYgKCFtX3N0cmVhbVNl
c3Npb24pIHsKQEAgLTEyMTcsNyArMTIxNiw3IEBAIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFS
RFNfRU5ECiAgICAgaWYgKGl0ZXIgPT0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmVu
ZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBDTVRpbWVi
YXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKKyAgICBDTVRpbWUgY3VycmVu
dFRpbWUgPSBQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0p
OwogICAgIFttX3N5bmNocm9uaXplciByZW1vdmVSZW5kZXJlcjphdWRpb1JlbmRlcmVyIGF0VGlt
ZTpjdXJyZW50VGltZSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MKXsKICAgICAgICAgLy8g
Tm8tb3AuCiAgICAgfV07CkBAIC0xMzAxLDcgKzEzMDAsNyBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0
aW9uPAogICAgIGlmIChtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIpCiAgICAgICAgIFttX3N5bmNocm9u
aXplciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV9wZXJmb3JtVGFza09ic2VydmVyLmdldCgpXTsKIAot
ICAgIG1fcGVyZm9ybVRhc2tPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRp
bWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRp
bWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAg
bV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZEJvdW5kYXJ5VGltZU9i
c2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6UEFMOjp0b0NNVGltZSh0
aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeewogICAg
ICAgICB0YXNrSW4oKTsKICAgICB9XTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbQppbmRleCBlMWFkMTAyYmI5ODFiZjM3NGU2YmQ5MzdjMGM2ZTJhODdmNDBmMTVm
Li41NWI1MDBjNTdlOTNlYmJhNDk2YWU3NDE2ZmQ1ZGY3OGQ3Yjk0NThlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRl
eHRDRy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuaCIKKyNpbXBvcnQgIk1lZGlhUGxheWVyLmgiCiAjaW1wb3J0ICJNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2EuaCIKICNpbXBvcnQgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2lt
cG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgpAQCAtMTIxLDcgKzEyMiw2IEBAIC0gKHZv
aWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0Oihp
ZClvYmplY3QgY2hhbmdlOihOCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5h
bWVzcGFjZSBQQUw7CiAKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3QKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gaXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFp
bGFibGUoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpICYmIGdldEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKTsKKyAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlv
bkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFi
bGUoKSAmJiBQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKTsKIH0KIAog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcykKQEAg
LTIzMCw3ICsyMzAsNyBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogc3RhdGljIGlubGluZSBD
R0FmZmluZVRyYW5zZm9ybSB2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBz
YW1wbGUpCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gc2FtcGxlLnBs
YXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOwotICAgIENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1
ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZUJ1ZmZlcikpOworICAgIENWUGl4ZWxCdWZmZXJSZWYg
cGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CiAgICAgc2l6ZV90IHdpZHRoID0g
Q1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKICAgICBzaXplX3QgaGVpZ2h0ID0g
Q1ZQaXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcik7CiAgICAgaWYgKCF3aWR0aCB8fCAh
aGVpZ2h0KQpAQCAtOTYwLDcgKzk2MCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpCiAgICAgaWYgKCFtX2ltYWdl
UGFpbnRlci5waXhlbEJ1ZmZlckNvbmZvcm1lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVm
ZmVyR2V0SW1hZ2VCdWZmZXIobV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUtPnBsYXRmb3JtU2Ft
cGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1
ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUu
Y21TYW1wbGVCdWZmZXIpKTsKICAgICBtX2ltYWdlUGFpbnRlci5jZ0ltYWdlID0gTmF0aXZlSW1h
Z2U6OmNyZWF0ZShtX2ltYWdlUGFpbnRlci5waXhlbEJ1ZmZlckNvbmZvcm1lci0+Y3JlYXRlSW1h
Z2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4IDJmNDk4Mzg3NjVkM2M5NDQxYjY5YmI5
NTE4YjNiMWY5YTg3OTUwOWIuLmMwZjEzZDZlYTVjOTc1NzY3Y2U4ZjYyYWI2ODQyZDdkNmYwZmJi
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KQEAg
LTM2LDkgKzM2LDEyIEBACiAjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KLVdU
Rl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOworLy8gRXF1aXZhbGVudCB0
byBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKKy8vIE5lZWRlZCBk
dWUgdG8gcmVxdWlyZW1lbnQgb2Ygc3BlY2lmeWluZyB0aGUgUEFMIG5hbWVzcGFjZS4KK3RlbXBs
YXRlIDw+CitzdHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJlZj4geworICAg
IHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQgdHlwZUlEKHZvaWQpIHsgcmV0dXJuIFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRUeXBlSUQoKTsgfQorfTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02
NywzNSArNzAsMzUgQEAgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVBVkZP
YmpDOjpjcmVhdGVJbWFnZVNhbXBsZShQaXhlbEJ1ZmZlciYmIHAKICAgICBBU1NFUlRfVU5VU0VE
KHN0YXR1cywgIXN0YXR1cyk7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9y
bWF0RGVzY3JpcHRpb25SYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4
ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvblJhdyk7CisgICAgc3RhdHVzID0gUEFM
OjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb25SYXcpOwog
ICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIGZvcm1hdERlc2NyaXB0aW9uID0gYWRvcHRD
Rihmb3JtYXREZXNjcmlwdGlvblJhdyk7CiAKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2FtcGxl
VGltaW5nSW5mb3JtYXRpb24gPSB7IGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52YWxpZCwga0NN
VGltZUludmFsaWQgfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2FtcGxlVGltaW5nSW5mb3Jt
YXRpb24gPSB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6
a0NNVGltZUludmFsaWQgfTsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJSYXcg
PSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1h
Z2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0
RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1ZmZl
clJhdyk7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aElt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZvcm1h
dERlc2NyaXB0aW9uLmdldCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVCdWZm
ZXJSYXcpOwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFk
b3B0Q0Yoc2FtcGxlQnVmZmVyUmF3KTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJh
eSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIu
Z2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwg
dHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChh
dHRhY2htZW50c0FycmF5KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgQ0ZNdXRhYmxlRGlj
dGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9u
YXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAg
ICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1l
bnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgIENGRGlj
dGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlf
RGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogICAgIHJldHVybiBj
cmVhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhU2FtcGxlQVZG
T2JqQzo6cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAgPSBD
TVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQo
KSk7CisgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJl
c2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lO
VkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOworICAgICAgICB0aW1lU3RhbXAg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdl
dCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApOwogfQogCiBNZWRp
YVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIHsKLSAgICBhdXRv
IHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1fc2FtcGxlLmdl
dCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVU
aW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0aW1l
U3RhbXApKQogICAgICAgICByZXR1cm4gcHJlc2VudGF0aW9uVGltZSgpOwogICAgIHJldHVybiBQ
QUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCk7CkBAIC0xMDMsMTUgKzEwNiwxNSBAQCBNZWRpYVRp
bWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1lIE1l
ZGlhU2FtcGxlQVZGT2JqQzo6ZHVyYXRpb24oKSBjb25zdAogewotICAgIGF1dG8gZHVyYXRpb24g
PSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICBh
dXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1fc2Ft
cGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAgICAg
ICBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOwor
ICAgICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3NhbXBs
ZS5nZXQoKSk7CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUoZHVyYXRpb24pOwogfQogCiBz
aXplX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjpzaXplSW5CeXRlcygpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplKG1fc2FtcGxlLmdldCgpKTsKKyAg
ICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBsZS5n
ZXQoKSk7CiB9CiAKIFBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxhdGZvcm1T
YW1wbGUoKQpAQCAtMTIyLDIzICsxMjUsMjMgQEAgUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1wbGVB
VkZPYmpDOjpwbGF0Zm9ybVNhbXBsZSgpCiAKIHVpbnQzMl90IE1lZGlhU2FtcGxlQVZGT2JqQzo6
dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0CiB7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRp
Y19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9z
YW1wbGUuZ2V0KCkpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhl
bEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdl
dCgpKSk7CiAgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxC
dWZmZXIpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJhbmRv
bUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCiB7Ci0gICAgcmV0dXJuICFD
RkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNobWVu
dEtleV9Ob3RTeW5jKTsKKyAgICByZXR1cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFj
aG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7CiB9CiAKIHN0
YXRpYyBib29sIGRvZXNDTVNhbXBsZUJ1ZmZlckhhdmVTeW5jSW5mbyhDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGUpCiB7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVu
dHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBib29s
IGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQog
ewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0
dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50
cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwg
ZmFsc2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IApAQCAtMTUxLDEyICsxNTQsMTIgQEAgc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJhbmRv
bUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiAKIHN0YXRpYyBib29sIGlzQ01TYW1w
bGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVu
dERpY3QpCiB7Ci0gICAgcmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnRE
aWN0LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSk7CisgICAgcmV0dXJuIENG
RGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFj
aG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZl
ck5vbkRpc3BsYXlpbmcoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXko
c2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogICAgIGlm
ICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTE4NiwxMSAr
MTg5LDExIEBAIE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBNZWRpYVNhbXBsZUFWRk9iakM6OmZs
YWdzKCkgY29uc3QKIAogRmxvYXRTaXplIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0aW9u
U2l6ZSgpIGNvbnN0CiB7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlw
dGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9zYW1wbGUuZ2V0KCkp
OwotICAgIGlmIChDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0
aW9uKSAhPSBrQ01NZWRpYVR5cGVfVmlkZW8pCisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBm
b3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlv
bihtX3NhbXBsZS5nZXQoKSk7CisgICAgaWYgKFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1l
ZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQogICAgICAg
ICByZXR1cm4gRmxvYXRTaXplKCk7CiAgICAgCi0gICAgcmV0dXJuIEZsb2F0U2l6ZShDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0
aW9uLCB0cnVlLCB0cnVlKSk7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24s
IHRydWUsIHRydWUpKTsKIH0KIAogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKQEAgLTIwMSwxMiArMjA0LDEyIEBAIHZvaWQgTWVkaWFTYW1wbGVB
VkZPYmpDOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB2b2lkIE1lZGlhU2FtcGxlQVZG
T2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogewogICAg
IENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAm
aXRlbUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkp
CiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0
aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAg
ICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9z
YW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikp
CisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
QXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwg
bnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWluZyA6
IHRpbWluZ0luZm9BcnJheSkgewpAQCAtMjE1LDcgKzIxOCw3IEBAIHZvaWQgTWVkaWFTYW1wbGVB
VkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiAgICAg
fQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAobm9FcnIg
IT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAm
bmV3U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNv
cHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVt
Q291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0yMjQsMTIg
KzIyNywxMiBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNv
bnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVz
dGFtcHMoY29uc3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGFtcCwgY29uc3Qg
V1RGOjpNZWRpYVRpbWUgJmRlY29kZVRpbWVzdGFtcCkKIHsKICAgICBDTUl0ZW1Db3VudCBpdGVt
Q291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisgICAg
aWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
bV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5Owog
ICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9IENN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBpdGVt
Q291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0VyciAh
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdl
dCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgZm9yIChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZvQXJyYXkp
IHsKQEAgLTIzOCw3ICsyNDEsNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGltZXN0
YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogICAgIH0KICAg
ICAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5vRXJyICE9IENN
U2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
bV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1Nh
bXBsZSkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0
aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50
LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUpOwpAQCAtMjQ2LDEwICsyNDks
MTAgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RGOjpN
ZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGEKIAogYm9vbCBNZWRpYVNhbXBsZUFWRk9iakM6
OmlzRGl2aXNhYmxlKCkgY29uc3QKIHsKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1w
bGVzKG1fc2FtcGxlLmdldCgpKSA9PSAxKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSkgPT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5KG1fc2FtcGxlLmdldCgp
LCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVCdWZmZXJFcnJvcl9CdWZmZXJIYXNO
b1NhbXBsZVNpemVzKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFy
cmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVCdWZm
ZXJFcnJvcl9CdWZmZXJIYXNOb1NhbXBsZVNpemVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI2MiwxNyArMjY1LDE3IEBAIHN0ZDo6cGFpcjxSZWZQdHI8
TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRp
dmlkZShjCiAKICAgICBDRkluZGV4IHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lID0gMDsK
IAotICAgIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5nZXQo
KSwgWyZdIChDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAtPiBP
U1N0YXR1cyB7Ci0gICAgICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRw
dXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICBQQUw6OkNNU2FtcGxl
QnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5nZXQoKSwgWyZdIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAtPiBPU1N0YXR1cyB7CisgICAg
ICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRh
dGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogICAgICAgICBpZiAoQ01USU1FX0lTX0lOVkFM
SUQodGltZVN0YW1wKSkKLSAgICAgICAgICAgIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0
UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICB0aW1lU3Rh
bXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1
ZmZlcik7CiAKICAgICAgICAgaWYgKHVzZUVuZFRpbWUgPT0gVXNlRW5kVGltZTo6VXNlKSB7Ci0g
ICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlv
bihzYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwogICAgICAgICAgICAgaWYg
KENNVElNRV9JU19JTlZBTElEKGR1cmF0aW9uKSkKLSAgICAgICAgICAgICAgICBkdXJhdGlvbiA9
IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgICAg
ICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZmZXIp
OwogCi0gICAgICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShDTVRpbWVBZGQodGltZVN0YW1w
LCBkdXJhdGlvbikpID4gcHJlc2VudGF0aW9uVGltZSkKKyAgICAgICAgICAgIGlmIChQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+IHByZXNlbnRh
dGlvblRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0gZWxzZSBpZiAo
UEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApID49IHByZXNlbnRhdGlvblRpbWUpCiAgICAgICAg
ICAgICByZXR1cm4gMTsKQEAgLTI4MywxOSArMjg2LDE5IEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVk
aWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlk
ZShjCiAgICAgaWYgKCFzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgcmV0
dXJuIHsgbnVsbHB0ciwgdGhpcyB9OwogCi0gICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQgPSBD
TVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpOworICAgIENNSXRlbUNv
dW50IHNhbXBsZUNvdW50ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9zYW1w
bGUuZ2V0KCkpOwogICAgIGlmIChzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSA+PSBzYW1w
bGVDb3VudCkKICAgICAgICAgcmV0dXJuIHsgdGhpcywgbnVsbHB0ciB9OwogCiAgICAgQ01TYW1w
bGVCdWZmZXJSZWYgcmF3U2FtcGxlQmVmb3JlID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdl
QmVmb3JlID0gQ0ZSYW5nZU1ha2UoMCwgc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUpOwot
ICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VCZWZvcmUsICZyYXdTYW1wbGVCZWZvcmUp
ICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZv
clJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9yZSwg
JnJhd1NhbXBsZUJlZm9yZSkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIG51
bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJlZm9yZSA9
IGFkb3B0Q0YocmF3U2FtcGxlQmVmb3JlKTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1Nh
bXBsZUFmdGVyID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdlQWZ0ZXIgPSBDRlJhbmdlTWFr
ZShzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSwgc2FtcGxlQ291bnQgLSBzYW1wbGVzQmVm
b3JlUHJlc2VudGF0aW9uVGltZSk7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1
ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUFm
dGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVm
ZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxl
LmdldCgpLCByYW5nZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQogICAgICAgICBy
ZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVy
UmVmPiBzYW1wbGVBZnRlciA9IGFkb3B0Q0YocmF3U2FtcGxlQWZ0ZXIpOwogCkBAIC0zMDUsMTMg
KzMwOCwxMyBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlhU2Ft
cGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogUmVmPE1lZGlhU2FtcGxlPiBNZWRp
YVNhbXBsZUFWRk9iakM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3QKIHsKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXIgPSAwOwotICAgIENNU2FtcGxlQnVmZmVy
Q3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1NhbXBs
ZUJ1ZmZlcik7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAgIEFTU0VSVChu
ZXdTYW1wbGVCdWZmZXIpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG5ld1NhbXBsZUJ1ZmZlciwgdHJ1
ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsKICAgICBm
b3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7
ICsraSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hl
Y2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5k
ZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShh
dHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xl
YW5UcnVlKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6
a0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xlYW5UcnVlKTsKICAg
ICB9CiAKICAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRvcHRDRihuZXdT
YW1wbGVCdWZmZXIpLmdldCgpLCBtX2lkKTsKQEAgLTMyNiw3ICszMjksNyBAQCBSZWZQdHI8SlND
OjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JBSW1hZ2VEYXRh
KCkgY29uc3QKICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShjb25mb3JtZXJPcHRpb25zLmdldCgp
LCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgaW1hZ2VGb3JtYXROdW1iZXIuZ2V0
KCkpOwogICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgcGl4ZWxCdWZmZXJDb25mb3JtZXIoY29u
Zm9ybWVyT3B0aW9ucy5nZXQoKSk7CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBs
ZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVm
ZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkp
KTsKICAgICBhdXRvIHJnYmFQaXhlbEJ1ZmZlciA9IHBpeGVsQnVmZmVyQ29uZm9ybWVyLmNvbnZl
cnQocGl4ZWxCdWZmZXIpOwogICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNl
QWRkcmVzcyhyZ2JhUGl4ZWxCdWZmZXIuZ2V0KCksIGtDVlBpeGVsQnVmZmVyTG9ja19SZWFkT25s
eSk7CiAgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CkBAIC0zNDMsMTAgKzM0NiwxMCBAQCBS
ZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JB
SW1hZ2VEYXRhKCkgY29uc3QKIAogc3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZlckFz
RGlzcGxheUltbWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsKLSAg
ICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0
dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFj
aG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJh
eShzYW1wbGVCdWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJy
YXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURp
Y3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlv
bmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0g
ICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2ht
ZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRp
Y3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5
X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KIH0KIApAQCAtMzU3
LDcgKzM2MCw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlh
dGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiBib29sIE1lZGlhU2FtcGxlQVZGT2JqQzo6aXNI
b21vZ2VuZW91cygpIGNvbnN0CiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0
cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAgICAg
aWYgKCFhdHRhY2htZW50c0FycmF5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzg1LDcg
KzM4OCw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVBVkZP
YmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiB7CiAgICAgdXNpbmcgU2FtcGxlVmVj
dG9yID0gVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PjsKIAotICAgIENGQXJyYXlSZWYg
YXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJh
eShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUu
Z2V0KCksIHRydWUpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkKICAgICAgICAgcmV0dXJu
IFNhbXBsZVZlY3Rvcjo6ZnJvbShtYWtlUmVmKCp0aGlzKSk7CiAKQEAgLTQxOCw3ICs0MjEsNyBA
QCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2
aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcwogICAgIHNhbXBsZXMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShyYW5nZXMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIHJhbmdlIDogcmFuZ2VzKSB7CiAg
ICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZSA9IG51bGxwdHI7Ci0gICAgICAgIGlm
IChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2UsICZyYXdTYW1wbGUpICE9IG5vRXJyIHx8ICFyYXdT
YW1wbGUpCisgICAgICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZv
clJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1Nh
bXBsZSkgIT0gbm9FcnIgfHwgIXJhd1NhbXBsZSkKICAgICAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgICAgIHNhbXBsZXMudW5jaGVja2VkQXBwZW5kKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRl
KGFkb3B0Q0YocmF3U2FtcGxlKS5nZXQoKSwgbV9pZCkpOwogICAgIH0KQEAgLTQzMiwyNCArNDM1
LDI0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpj
bG9uZVNhbXBsZUJ1ZmZlckFuZFNldEFzRGlzcGxhCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVs
bHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZv
ckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCAmZm9ybWF0RGVz
Y3JpcHRpb24pOworICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwg
JmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICBhdXRvIHJldGFpbmVkRm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1h
dERlc2NyaXB0aW9uKTsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgc3Rh
dHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBu
dWxscHRyLCAmaXRlbUNvdW50KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CiAg
ICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBWZWN0b3I8Q01T
YW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdy
b3coaXRlbUNvdW50KTsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVs
bHB0cik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0
cik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBDTVNh
bXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1
ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1w
bGVCdWZmZXIpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdp
dGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgZm9ybWF0RGVz
Y3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAg
IGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDBiOWJi
NjQ4NWYzZTllMjUzNDVhYWQ0ZjRlNDcwOTJjNDI5YTVjYzguLjAyMTkyMTZkN2MyZDg4ZWY1Nzc1
MjZkODgyMzBjM2U1MDNmZDhjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yNTgsNyArMjU4LDYgQEAgLSAodm9p
ZClhdWRpb1JlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQ6KE5TTm90aWZpY2F0aW9uKilu
b3RlCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAK
ICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMK
QEAgLTI3Nyw3ICsyNzYsNyBAQCBzdGF0aWMgdWludDY0X3QgbmV4dE1hcElEKCkKIAogc3RhdGlj
IHZvaWQgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwg
Y29uc3Qgdm9pZCogbGlzdGVuZXIsIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUsIGNvbnN0
IHZvaWQqLCBDRlR5cGVSZWYpCiB7Ci0gICAgaWYgKCFDRkVxdWFsKGtDTVNhbXBsZUJ1ZmZlckNv
bnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkKKyAg
ICBpZiAoIUNGRXF1YWwoUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9C
dWZmZXJDb25zdW1lZCwgbm90aWZpY2F0aW9uTmFtZSkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmICghaXNNYWluVGhyZWFkKCkpIHsKQEAgLTMxNiw3ICszMTUsNyBAQCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2
YXRlQVZGT2JqQwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAoIVtQ
QUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25k
VG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhDb21wbGV0aW9uSGFuZGxlcjop
XSkKLSAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihDTU5vdGlmaWNhdGlv
bkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQqPiht
X21hcElEKSwgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywga0NNU2FtcGxlQnVmZmVyQ29uc3Vt
ZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIsIDApOworICAgICAgICBQQUw6
OkNNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRl
ckdldERlZmF1bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQqPihtX21hcElE
KSwgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywgUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1l
ck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7CiAKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICBtX3BhcnNlci0+c2V0TG9nZ2VyKG1fbG9nZ2VyLmdldCgpLCBt
X2xvZ0lkZW50aWZpZXIpOwpAQCAtMzU0LDcgKzM1Myw3IEBAIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQogICAgIGNsZWFyVHJhY2tzKCk7
CiAKICAgICBpZiAoIVtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBp
bnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhDb21w
bGV0aW9uSGFuZGxlcjopXSkKLSAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0
ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCB0aGlzLCBi
dWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNh
dGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0cik7CisgICAgICAgIFBBTDo6Q01Ob3RpZmljYXRp
b25DZW50ZXJSZW1vdmVMaXN0ZW5lcihQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVs
dExvY2FsQ2VudGVyKCksIHRoaXMsIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIFBBTDo6a0NN
U2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIp
OwogCiAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkKICAgICAgICAgbV9oYXNTZXNzaW9u
U2VtYXBob3JlLT5zaWduYWwoKTsKQEAgLTk5Myw3ICs5OTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcgogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1
dG9tYXRpY2FsbHlGbHVzaGVkKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqcmVuZGVyZXIs
IGNvbnN0IENNVGltZSYgdGltZSkKIHsKLSAgICBhdXRvIG1lZGlhVGltZSA9IHRvTWVkaWFUaW1l
KHRpbWUpOworICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZSh0aW1lKTsKICAg
ICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgbWVkaWFUaW1lKTsKICAgICBBdG9tU3RyaW5nIHRy
YWNrSWQ7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9hdWRpb1JlbmRlcmVycykgewpAQCAtMTEw
MSwxMyArMTEwMCwxMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVl
U2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAgICAgYXV0byBsb2dTaXRl
SWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CiAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlm
aWVyLCAidHJhY2sgSUQgPSAiLCB0cmFja0lELCAiLCBzYW1wbGUgPSAiLCBzYW1wbGUuZ2V0KCkp
OwogCi0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2Ft
cGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxl
LnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiAgICAgQVNTRVJUKGZvcm1hdERlc2NyaXB0aW9uKTsK
ICAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEVSUk9SX0xPRyhsb2dTaXRl
SWRlbnRpZmllciwgIlJlY2VpdmVkIHNhbXBsZSB3aXRoIGEgbnVsbCBmb3JtYXREZXNjcmlwdGlv
bi4gQmFpbGluZy4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBhdXRvIG1lZGlhVHlw
ZSA9IENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24pOwor
ICAgIGF1dG8gbWVkaWFUeXBlID0gUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBl
KGZvcm1hdERlc2NyaXB0aW9uKTsKIAogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVv
VHJhY2tJRCkgewogICAgICAgICAvLyBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciB3aWxsIHRo
cm93IGFuIHVuLWRvY3VtZW50ZWQgZXhjZXB0aW9uIGlmIHBhc3NlZCBhIHNhbXBsZQpAQCAtMTEy
MCw3ICsxMTE5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNh
bXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAogICAgICAgICB9CiAKICAgICAg
ICAgYXV0byBwbGF5ZXIgPSB0aGlzLT5wbGF5ZXIoKTsKLSAgICAgICAgRmxvYXRTaXplIGZvcm1h
dFNpemUgPSBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9u
RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAgICAgICBGbG9h
dFNpemUgZm9ybWF0U2l6ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUp
KTsKICAgICAgICAgaWYgKCFtX2NhY2hlZFNpemUgfHwgZm9ybWF0U2l6ZSAhPSBtX2NhY2hlZFNp
emUudmFsdWUoKSkgewogICAgICAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAi
c2l6ZSBjaGFuZ2VkIHRvICIsIGZvcm1hdFNpemUpOwogICAgICAgICAgICAgYm9vbCBzaXplV2Fz
TnVsbCA9ICFtX2NhY2hlZFNpemU7CkBAIC0xMTQ2LDkgKzExNDUsOSBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1w
bGUsIGNvbnN0CiAKICAgICAgICAgICAgIGlmICghaGF2ZVByZXJvbGxEZWNvZGVXaXRoQ29tcGxl
dGlvbkhhbmRsZXIpIHsKICAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1w
bGVDb3B5OwotICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsICZyYXdT
YW1wbGVDb3B5KTsKKyAgICAgICAgICAgICAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29w
eShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZm
ZXIsICZyYXdTYW1wbGVDb3B5KTsKICAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUNvcHkgPSBh
ZG9wdENGKHJhd1NhbXBsZUNvcHkpOwotICAgICAgICAgICAgICAgIENNU2V0QXR0YWNobWVudChz
YW1wbGVDb3B5LmdldCgpLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3RpZmlj
YXRpb25XaGVuQ29uc3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9fYnJpZGdl
IE5TU3RyaW5nICopa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9u
V2hlbkNvbnN1bWVkIDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9wYWdh
dGUpOworICAgICAgICAgICAgICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUNvcHkuZ2V0
KCksIFBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hl
bkNvbnN1bWVkLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7IChfX2JyaWRnZSBOU1N0cmlu
ZyAqKVBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hl
bkNvbnN1bWVkIDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQcm9wYWdhdGUp
OwogICAgICAgICAgICAgICAgIFttX2Rpc3BsYXlMYXllciBlbnF1ZXVlU2FtcGxlQnVmZmVyOnNh
bXBsZUNvcHkuZ2V0KCldOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgICAgICAg
ICAgcGxheWVyLT5zZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHRydWUpOwpAQCAtMTI5OCwxNCAr
MTI5NywxNCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRX
aGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9tUwogYm9vbCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6Y2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBB
dG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nKSBjb25zdAogewogICAgIHJldHVybiBwYXJzZUludGVn
ZXJBbGxvd2luZ1RyYWlsaW5nSnVuazx1aW50NjRfdD4odHJhY2tJRFN0cmluZykudmFsdWVfb3Io
MCkgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lECi0gICAgICAgICYmIFtnZXRBVlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9y
KGV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6KV07Cisg
ICAgICAgICYmIFtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0
YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoZXhwZWN0TWluaW11bVVwY29taW5nU2Ft
cGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTopXTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6c2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9t
U3RyaW5nJiB0cmFja0lEU3RyaW5nLCBjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRpbWUp
CiB7CiAgICAgQVNTRVJUKGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJh
Y2tJRFN0cmluZykpOwogICAgIGlmIChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25U
aW1lKHRyYWNrSURTdHJpbmcpKQotICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZXhwZWN0TWluaW11
bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTp0b0NNVGltZShwcmVzZW50YXRp
b25UaW1lKV07CisgICAgICAgIFttX2Rpc3BsYXlMYXllciBleHBlY3RNaW5pbXVtVXBjb21pbmdT
YW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOlBBTDo6dG9DTVRpbWUocHJlc2VudGF0aW9uVGlt
ZSldOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjbGVhck1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRFN0cmluZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJj
ZUJ1ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5kZXggZTZkZmNiMzQ5NmY5MmQyYWEy
MWY4NzY4NDY0ODA4YjE2MWQ1Nzc2Yi4uYjVkOGY1MzZhMjA3OGY5NGU0NGRhYzcxODM1NzEzNTg4
ZGY0MzE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAgLTI1OCw4ICsy
NTgsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQYXJzZXJXZWJNOjpTdGF0ZT4gewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5h
bWVzcGFjZSBQQUw7Ci0KIHN0YXRpYyBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgeyByZXR1
cm4gTG9nTWVkaWE7IH0KIHN0YXRpYyBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJldHVy
biAiU291cmNlQnVmZmVyUGFyc2VyV2ViTSI7IH0KIApAQCAtMTA1Nyw3ICsxMDU1LDcgQEAgd2Vi
bTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJhbWUoY29uc3QgRnJhbWVNZXRh
ZGF0YSYgbWV0YWRhdGEsIFJlYWQKICAgICAgICAgcmV0dXJuIFNraXAocmVhZGVyLCBieXRlc1Jl
bWFpbmluZyk7CiAgICAgfQogCi0gICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZyYW1lRGF0
YSgqcmVhZGVyLCBtZXRhZGF0YSwgYnl0ZXNSZW1haW5pbmcsIENNVGltZU1ha2UoYmxvY2stPnRp
bWVjb2RlICsgbV9jdXJyZW50VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9mcmFt
ZXMpOworICAgIHJldHVybiB0cmFja0RhdGEtPmNvbnN1bWVGcmFtZURhdGEoKnJlYWRlciwgbWV0
YWRhdGEsIGJ5dGVzUmVtYWluaW5nLCBQQUw6OkNNVGltZU1ha2UoYmxvY2stPnRpbWVjb2RlICsg
bV9jdXJyZW50VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9mcmFtZXMpOwogfQog
CiB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnByb3ZpZGVNZWRpYURhdGEoUmV0YWluUHRy
PENNU2FtcGxlQnVmZmVyUmVmPiBzYW1wbGVCdWZmZXIsIHVpbnQ2NF90IHRyYWNrSUQsIHN0ZDo6
b3B0aW9uYWw8c2l6ZV90PiBieXRlUmFuZ2VPZmZzZXQpCkBAIC0xMDgxLDcgKzEwNzksNyBAQCB3
ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNvbnN1
bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgIENNQmxvY2tCdWZmZXJSZWYgcmF3QmxvY2tCdWZm
ZXIgPSBudWxscHRyOwogCiAgICAgaWYgKCFtX2N1cnJlbnRCbG9ja0J1ZmZlcikgewotICAgICAg
ICBhdXRvIGVyciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwg
bnVsbHB0ciwgMCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKKyAgICAgICAg
YXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxs
b2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgMCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKICAgICAg
ICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgi
Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCBlcnJvciIsIGVy
cik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CkBA
IC0xMDkwLDcgKzEwODgsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6
VmlkZW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgICAgICBtX2N1
cnJlbnRCbG9ja0J1ZmZlciA9IGFkb3B0Q0YocmF3QmxvY2tCdWZmZXIpOwogICAgICAgICBtX2N1
cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uID0gMDsKIAotICAgICAgICBlcnIgPSBDTUJsb2NrQnVm
ZmVyQXNzdXJlQmxvY2tNZW1vcnkobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOworICAgICAg
ICBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRCbG9j
a0J1ZmZlci5nZXQoKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFBBUlNFUl9M
T0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0
RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVy
biBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKQEAgLTExMDEsNyArMTA5OSw3IEBAIHdl
Ym06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29uc3Vt
ZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgd2hpbGUgKGJ5dGVzVG9SZWFkKSB7CiAgICAgICAg
IHNpemVfdCBzZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwogICAgICAgICB1aW50OF90KiBibG9j
a0J1ZmZlckRhdGEgPSBudWxscHRyOwotICAgICAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZmZXJH
ZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50QmxvY2tC
dWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikm
YmxvY2tCdWZmZXJEYXRhKTsKKyAgICAgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJH
ZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50QmxvY2tC
dWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikm
YmxvY2tCdWZmZXJEYXRhKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFSU0VS
X0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyIGZhaWxl
ZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5
dGVzUmVtYWluaW5nKTsKQEAgLTExMzUsNyArMTEzMyw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUm
IHByCiAjaWYgRU5BQkxFKFZQOSkKICAgICB1aW50OF90KiBibG9ja0J1ZmZlckRhdGEgPSBudWxs
cHRyOwogICAgIHNpemVfdCBzZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwotICAgIGF1dG8gZXJy
ID0gQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgp
LCAwLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioqKSZibG9ja0J1ZmZl
ckRhdGEpOworICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIo
bV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIDAsICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51
bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0YSk7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50
ZXIgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICByZXR1cm47CkBAIC0xMTc5LDkg
KzExNzcsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpj
cmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogICAgICAgICBkdXJhdGlvbiA9IHRy
YWNrLmRlZmF1bHRfZHVyYXRpb24udmFsdWUoKSAqIHByZXNlbnRhdGlvblRpbWUudGltZXNjYWxl
IC8gMTAwMDAwMDAwMDsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9
IG51bGxwdHI7Ci0gICAgc2l6ZV90IGZyYW1lU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVu
Z3RoKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8g
dGltaW5nID0geyBDTVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRpbWVzY2Fs
ZSksIHByZXNlbnRhdGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKLSAgICBlcnIgPSBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJsb2Nr
QnVmZmVyLmdldCgpLCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVDb3Vu
dCwgMSwgJnRpbWluZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CisgICAgc2l6
ZV90IGZyYW1lU2l6ZSA9IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9jdXJyZW50
QmxvY2tCdWZmZXIuZ2V0KCkpOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmcgPSB7IFBB
TDo6Q01UaW1lTWFrZShkdXJhdGlvbiwgcHJlc2VudGF0aW9uVGltZS50aW1lc2NhbGUpLCBwcmVz
ZW50YXRpb25UaW1lLCBwcmVzZW50YXRpb25UaW1lIH07CisgICAgZXJyID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVudEJsb2NrQnVm
ZmVyLmdldCgpLCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1wbGVDb3VudCwg
MSwgJnRpbWluZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVy
cikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5IGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTE5MSw3ICsxMTg5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1Ry
YWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICBtX2N1cnJl
bnRCbG9ja0J1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9jdXJyZW50QmxvY2tCdWZmZXJQb3NpdGlv
biA9IDA7CiAKLSAgICBhdXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKKyAgICBhdXRv
IGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVu
dHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOwogICAgIEFTU0VSVChhdHRhY2htZW50
c0FycmF5KTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpIHsKICAgICAgICAgUEFSU0VSX0xP
R19FUlJPUl9JRl9QT1NTSUJMRSgiQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5IHJldHVybmVkIE5VTEwiKTsKQEAgLTEyMDEsNyArMTE5OSw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBD
TVRpbWUmIHByCiAgICAgaWYgKCFpc0tleSkgewogICAgICAgICBmb3IgKENGSW5kZXggaSA9IDAs
IGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsr
aSkgewogICAgICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNo
ZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdElu
ZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZh
bHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMsIGtDRkJvb2xl
YW5UcnVlKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQ
QUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYywga0NGQm9vbGVhblRydWUpOwogICAg
ICAgICB9CiAgICAgfQogCkBAIC0xMjgyLDEyICsxMjgwLDEyIEBAIHdlYm06OlN0YXR1cyBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJt
OjpSZWFkCiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7
CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIHN0cmVhbURlc2NyaXB0aW9uID0gQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3JtYXREZXNjcmlwdGlv
bi5nZXQoKSk7CisgICAgICAgIGF1dG8gc3RyZWFtRGVzY3JpcHRpb24gPSBQQUw6OkNNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24oZm9ybWF0RGVzY3JpcHRp
b24uZ2V0KCkpOwogICAgICAgICBpZiAoIXN0cmVhbURlc2NyaXB0aW9uKSB7CiAgICAgICAgICAg
ICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25H
ZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGZhaWxlZCIpOwogICAgICAgICAgICAgcmV0dXJuIFNr
aXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwogICAgICAgICB9Ci0gICAgICAgIG1fcGFja2V0
RHVyYXRpb24gPSBDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFja2V0
LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOworICAgICAgICBtX3BhY2tldER1cmF0
aW9uID0gUEFMOjpDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVzUGVyUGFja2V0
LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOwogCiAgICAgICAgIHNldEZvcm1hdERl
c2NyaXB0aW9uKFdURk1vdmUoZm9ybWF0RGVzY3JpcHRpb24pKTsKICAgICB9IGVsc2UgaWYgKGNv
ZGVjKCkgPT0gQ29kZWNUeXBlOjpPcHVzKSB7CkBAIC0xMzA5LDcgKzEzMDcsNyBAQCB3ZWJtOjpT
dGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNvbnN1bWVGcmFt
ZURhdGEod2VibTo6UmVhZAogICAgIG1fY3VycmVudFBhY2tldEJ5dGVPZmZzZXQgPSBzdGQ6Om51
bGxvcHQ7CiAgICAgbV9jdXJyZW50UGFja2V0U2l6ZSA9IHN0ZDo6bnVsbG9wdDsKIAotICAgIGF1
dG8gc2FtcGxlRHVyYXRpb24gPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZVN1YnRyYWN0KHByZXNl
bnRhdGlvblRpbWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgQ01UaW1lR2V0U2Vjb25k
cyhtX3BhY2tldER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OworICAgIGF1dG8gc2FtcGxlRHVyYXRp
b24gPSBQQUw6OkNNVGltZUdldFNlY29uZHMoUEFMOjpDTVRpbWVTdWJ0cmFjdChwcmVzZW50YXRp
b25UaW1lLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUpKSArIFBBTDo6Q01UaW1lR2V0U2Vjb25k
cyhtX3BhY2tldER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OwogICAgIGlmIChzYW1wbGVEdXJhdGlv
biA+PSBtX21pbmltdW1TYW1wbGVEdXJhdGlvbikKICAgICAgICAgY3JlYXRlU2FtcGxlQnVmZmVy
KG1ldGFkYXRhLnBvc2l0aW9uKTsKIApAQCAtMTMyNCwyMSArMTMyMiwyMSBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoc3Rk
OjpvcHRpb25hbDxzaQogICAgIEFTU0VSVCghbV9wYWNrZXREYXRhLmlzRW1wdHkoKSk7CiAKICAg
ICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVyciA9
IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwg
bnVsbHB0ciwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZlckFz
c3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CisgICAgYXV0byBlcnIgPSBQQUw6OkNN
QmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVs
bHB0ciwgbV9wYWNrZXREYXRhLnNpemVJbkJ5dGVzKCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51
bGxwdHIsIDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpLCBrQ01CbG9ja0J1ZmZlckFzc3Vy
ZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAgICBQ
QVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgZXJyID0gQ01CbG9j
a0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMobV9wYWNrZXREYXRhLmRhdGEoKSwgYnVmZmVyLmdldCgp
LCAwLCBtX3BhY2tldERhdGEuc2l6ZUluQnl0ZXMoKSk7CisgICAgZXJyID0gUEFMOjpDTUJsb2Nr
QnVmZmVyUmVwbGFjZURhdGFCeXRlcyhtX3BhY2tldERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0KCks
IDAsIG1fcGFja2V0RGF0YS5zaXplSW5CeXRlcygpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAg
IFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5
dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgZXJyID0g
Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCks
IG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lLCBt
X3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOworICAgIGVyciA9
IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9u
cyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uKCku
Z2V0KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRpb25U
aW1lLCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOwogICAg
IGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRp
b1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggJWQi
LCBlcnIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCmluZGV4IGU5Zjg2
ZGVhNDM4ZTg5NWU2M2RiZGUwN2M0ZDk1ZjliNWFlZjE4Y2MuLmFhNzM2Y2YxNDlhNDc0YmEyNjNj
YWFjZDY2NDJkZTc4Zjc3ODg3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCkBAIC00Nyw3ICs0
Nyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVz
aW5nIG5hbWVzcGFjZSB3ZWJtOwogCiBWUDlUZXN0aW5nT3ZlcnJpZGVzJiBWUDlUZXN0aW5nT3Zl
cnJpZGVzOjpzaW5nbGV0b24oKQpAQCAtMzYyLDExICszNjEsMTEgQEAgc3RhdGljIENGU3RyaW5n
UmVmIGNvbnZlcnRUb0NNQ29sb3JQcmltYXJpZXModWludDhfdCBwcmltYXJpZXMpCiAgICAgY2Fz
ZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfU1RfMjQwOgogICAgICAgICBy
ZXR1cm4ga0NWSW1hZ2VCdWZmZXJDb2xvclByaW1hcmllc19TTVBURV9DOwogICAgIGNhc2UgVlBD
b25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX1JQXzQzMV8yOgotICAgICAgICByZXR1
cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7CisgICAgICAgIHJl
dHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzOwogICAg
IGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX0VHXzQzMl8xOgotICAg
ICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjU7Cisg
ICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNf
RDY1OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OkJUXzIwMjBfTm9u
Y29uc3RhbnRfTHVtaW5hbmNlOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25D
b2xvclByaW1hcmllc19JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXRE
ZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CiAgICAgfQogCiAgICAgcmV0dXJu
IG51bGxwdHI7CkBAIC00MjAsMTggKzQxOSwxOCBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVy
dFRvQ01UcmFuc2ZlckZ1bmN0aW9uKHVpbnQ4X3QgY2hhcmFjdGVyaXN0aWNzKQogICAgIGNhc2Ug
VlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OlNNUFRFX1NUXzI0MDoKICAg
ICAgICAgcmV0dXJuIGtDVkltYWdlQnVmZmVyVHJhbnNmZXJGdW5jdGlvbl9TTVBURV8yNDBNXzE5
OTU7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6U01Q
VEVfU1RfMjA4NDoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9TTVBURV9TVF8yMDg0X1BROworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUTsKICAgICBjYXNlIFZQ
Q29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpCVF8yMDIwXzEwYml0OgogICAg
IGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBfMTJi
aXQ6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
SVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFu
c2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjA7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2Zl
ckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfNDI4XzE6Ci0gICAgICAgIHJldHVybiBrQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzE7CisgICAgICAgIHJl
dHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80
MjhfMTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpC
VF8yMTAwX0hMRzoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9JVFVfUl8yMTAwX0hMRzsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHOwogICAgIGNhc2UgVlBDb25m
aWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OklFQ182MTk2Nl8yXzE6Ci0gICAgICAg
IHJldHVybiBjYW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fc1JHQigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9zUkdCKCkgOiBudWxscHRyOworICAgICAgICByZXR1cm4gUEFMOjpjYW5M
b2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigp
ID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9zUkdCKCkgOiBudWxscHRyOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFy
YWN0ZXJpc3RpY3M6OkxpbmVhcjoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CiAgICAgfQogCiAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC00NjcsNyArNDY2LDcgQEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZlcnRUb0NN
WUNiQ1JNYXRyaXgodWludDhfdCBjb2VmZmljaWVudHMpCiB7CiAgICAgc3dpdGNoIChjb2VmZmlj
aWVudHMpIHsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRf
MjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNj
cmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZv
cm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29uZmln
dXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNDcwXzdfQkc6CiAgICAgY2FzZSBWUENvbmZp
Z3VyYXRpb25NYXRyaXhDb2VmZmljaWVudHM6OkJUXzYwMV83OgogICAgICAgICByZXR1cm4ga0NW
SW1hZ2VCdWZmZXJZQ2JDck1hdHJpeF9JVFVfUl82MDFfNDsKQEAgLTU0MywxMSArNTQyLDExIEBA
IHN0YXRpYyBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlRm9ybWF0RGVz
Y3JpcHRpb25Gcm9tVlBDb2RlY0NvbmZpCiAgICAgQ0ZUeXBlUmVmIGNvbmZpZ3VyYXRpb25WYWx1
ZXNbXSA9IHsgZGF0YS5nZXQoKSB9OwogICAgIGF1dG8gY29uZmlndXJhdGlvbkRpY3QgPSBhZG9w
dENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb25maWd1cmF0aW9u
S2V5cywgY29uZmlndXJhdGlvblZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChjb25maWd1cmF0aW9u
S2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5
VmFsdWVDYWxsQmFja3MpKTsKIAotICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNLZXlz
IHsga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNp
b25BdG9tcyB9OworICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNLZXlzIHsgUEFMOjpr
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0
b21zIH07CiAgICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc1ZhbHVlcyA9IHsgY29uZmln
dXJhdGlvbkRpY3QuZ2V0KCkgfTsKIAogICAgIGlmIChyZWNvcmQudmlkZW9GdWxsUmFuZ2VGbGFn
ID09IFZQQ29uZmlndXJhdGlvblJhbmdlOjpGdWxsUmFuZ2UpIHsKLSAgICAgICAgZXh0ZW5zaW9u
c0tleXMuYXBwZW5kKGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVv
KTsKKyAgICAgICAgZXh0ZW5zaW9uc0tleXMuYXBwZW5kKFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRp
b25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOwogICAgICAgICBleHRlbnNpb25zVmFsdWVzLmFw
cGVuZChrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb24ubW0KaW5kZXggY2VhMTU2YWUyZmJlMjVhZGEwMDc2NjhlOTFkNTBlNTYxYzY0
MmU0ZS4uOGVlZjNiMmVhNjA0YmQxOTgzZDc3ZDM4YmY1MjFhOGQyMWYyMGVkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQpAQCAtNDMsOSArNDMsMTIgQEAKICNp
bXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJWaWRlb1Rvb2xib3hTb2Z0TGlu
ay5oIgogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCi1XVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlU
KENNU2FtcGxlQnVmZmVyKTsKKy8vIEVxdWl2YWxlbnQgdG8gV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9U
UkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBOZWVkZWQgZHVlIHRvIHJlcXVpcmVtZW50IG9mIHNw
ZWNpZnlpbmcgdGhlIFBBTCBuYW1lc3BhY2UuCit0ZW1wbGF0ZSA8Pgorc3RydWN0IFdURjo6Q0ZU
eXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJSZWY+IHsKKyAgICBzdGF0aWMgaW5saW5lIENGVHlwZUlE
IHR5cGVJRCh2b2lkKSB7IHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VHlwZUlEKCk7IH0K
K307CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzIsNyArNzUsNyBAQCB2b2lkIFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c2V0VGltZWJhc2UoQ01UaW1lYmFzZVJlZiB0aW1lYmFz
ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENNVGlt
ZWJhc2VSZW1vdmVUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJT
b3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VSZW1vdmVUaW1lckRpc3BhdGNo
U291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgbV90
aW1lYmFzZSA9IHRpbWViYXNlOwogCkBAIC04NCw3ICs4Nyw3IEBAIHZvaWQgV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZShDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICBkaXNwYXRjaF9hY3RpdmF0ZShtX3RpbWVyU291cmNl
LmdldCgpKTsKICAgICAgICAgfQotICAgICAgICBDTVRpbWViYXNlQWRkVGltZXJEaXNwYXRjaFNv
dXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgUEFM
OjpDTVRpbWViYXNlQWRkVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3Rp
bWVyU291cmNlLmdldCgpKTsKICAgICB9CiB9CiAKQEAgLTEwNCwxMiArMTA3LDEyIEBAIHZvaWQg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjptYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlh
RGF0YSgpCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZShD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGJvb2wgZGlzcGxheWluZykKIHsKICAgICBD
TUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIDAsIG51bGxwdHIsICZpdGVt
Q291bnQpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9B
cnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIGlmIChub0Vy
ciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIs
IGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAgaWYgKG5v
RXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxl
QnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBDTUJ1ZmZlckNhbGxiYWNrcyBjb250YWlucyA2NC1iaXQg
cG9pbnRlcnMgdGhhdCBhcmVuJ3QgOC1ieXRlIGFsaWduZWQuIFRvIHN1cHByZXNzIHRoZSBsaW5r
ZXIKQEAgLTEzNCw3ICsxMzcsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
ZW5xdWV1ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsCiAgICAgICAgIHN0
YXRpY19hc3NlcnQoc2l6ZW9mKGNhbGxiYWNrcy5jYWxsYmFja3MudmVyc2lvbikgPT0gc2l6ZW9m
KHVpbnQzMl90KSwgIlZlcnNpb24gZmllbGQgbXVzdCBiZSA0IGJ5dGVzIik7CiAgICAgICAgIHN0
YXRpY19hc3NlcnQoYWxpZ25vZihCdWZmZXJDYWxsYmFja3MpID09IDQsICJDTUJ1ZmZlckNhbGxi
YWNrcyBzdHJ1Y3QgbXVzdCBoYXZlIDQgYnl0ZSBhbGlnbm1lbnQiKTsKIAotICAgICAgICBDTUJ1
ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZj
YWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOworICAgICAgICBQQUw6OkNNQnVmZmVyUXVl
dWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNr
cy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fcHJvZHVjZXJRdWV1ZSA9IGFkb3B0
Q0Yob3V0UXVldWUpOwogICAgIH0KIApAQCAtMTU2LDcgKzE1OSw3IEBAIHZvaWQgV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZUJ1ZmZlciwKICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoY2FsbGJhY2tzLmNhbGxiYWNr
cy52ZXJzaW9uKSA9PSBzaXplb2YodWludDMyX3QpLCAiVmVyc2lvbiBmaWVsZCBtdXN0IGJlIDQg
Ynl0ZXMiKTsKICAgICAgICAgc3RhdGljX2Fzc2VydChhbGlnbm9mKEJ1ZmZlckNhbGxiYWNrcykg
PT0gNCwgIkNNQnVmZmVyQ2FsbGJhY2tzIHN0cnVjdCBhbGlnbm1lbnQgbXVzdCBiZSA0Iik7CiAK
LSAgICAgICAgQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11
bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKKyAgICAgICAgUEFM
OjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNp
dHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOwogICAgICAgICBtX2NvbnN1bWVy
UXVldWUgPSBhZG9wdENGKG91dFF1ZXVlKTsKICAgICB9CiAKQEAgLTE3NywyMCArMTgwLDIwIEBA
IGJvb2wgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUoQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBiCiAgICAgaWYgKCFtX3RpbWViYXNlKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gY3VycmVudFRpbWUgPSBDTVRpbWViYXNlR2V0VGltZSht
X3RpbWViYXNlLmdldCgpKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IENNU2Ft
cGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7Ci0gICAgYXV0byBkdXJh
dGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKLSAgICBhdXRvIHByZXNl
bnRhdGlvbkVuZFRpbWUgPSBDTVRpbWVBZGQocHJlc2VudGF0aW9uU3RhcnRUaW1lLCBkdXJhdGlv
bik7Ci0gICAgaWYgKENNVGltZUNvbXBhcmUocHJlc2VudGF0aW9uRW5kVGltZSwgY3VycmVudFRp
bWUpID49IDApCisgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUo
bV90aW1lYmFzZS5nZXQoKSk7CisgICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7CisgICAgYXV0
byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOworICAg
IGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IFBBTDo6Q01UaW1lQWRkKHByZXNlbnRhdGlvblN0
YXJ0VGltZSwgZHVyYXRpb24pOworICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUocHJlc2VudGF0
aW9uRW5kVGltZSwgY3VycmVudFRpbWUpID49IDApCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxz
ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBm
b3IgKENGSW5kZXggaW5kZXggPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50
cyk7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIGF0
dGFjaG1lbnREaWN0ID0gKENGRGljdGlvbmFyeVJlZilDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0
dGFjaG1lbnRzLCBpbmRleCk7Ci0gICAgICAgIENGQm9vbGVhblJlZiBkZXBlbmRlZE9uID0gKENG
Qm9vbGVhblJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShhdHRhY2htZW50RGljdCwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycyk7CisgICAgICAgIENGQm9vbGVhblJl
ZiBkZXBlbmRlZE9uID0gKENGQm9vbGVhblJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShhdHRhY2ht
ZW50RGljdCwgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJz
KTsKICAgICAgICAgaWYgKGRlcGVuZGVkT24gJiYgIUNGQm9vbGVhbkdldFZhbHVlKGRlcGVuZGVk
T24pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIwMywxNCArMjA2LDE0
IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNvbXByZXNzaW9u
U2Vzc2lvbkZvclNhbXBsZShDTVNhbXBsZUJ1CiAgICAgaWYgKGlzSW52YWxpZGF0ZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9y
bWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBs
ZSk7CisgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRp
b24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKICAg
ICBpZiAobV9kZWNvbXByZXNzaW9uU2Vzc2lvbiAmJiAhVlREZWNvbXByZXNzaW9uU2Vzc2lvbkNh
bkFjY2VwdEZvcm1hdERlc2NyaXB0aW9uKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCksIHZp
ZGVvRm9ybWF0RGVzY3JpcHRpb24pKSB7CiAgICAgICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25X
YWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCkpOwog
ICAgICAgICBtX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBp
ZiAoIW1fZGVjb21wcmVzc2lvblNlc3Npb24pIHsKLSAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKHNhbXBsZSk7CisgICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERl
c2NyaXB0aW9uKHNhbXBsZSk7CiAgICAgICAgIGF1dG8gdmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlv
biA9IEB7IChfX2JyaWRnZSBOU1N0cmluZyAqKWtWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25f
RW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlcjogQCggbV9oYXJkd2FyZURlY29k
ZXJFbmFibGVkICkgfTsKIAogICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXM7CkBAIC0y
NTYsNyArMjU5LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmRlY29kZVNh
bXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGJvb2wgZGkKIAogICAgIE1vbm90b25pY1Rp
bWUgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgVlREZWNvbXByZXNzaW9u
U2Vzc2lvbkRlY29kZUZyYW1lV2l0aE91dHB1dEhhbmRsZXIobV9kZWNvbXByZXNzaW9uU2Vzc2lv
bi5nZXQoKSwgc2FtcGxlLCBmbGFncywgbnVsbHB0ciwgW3RoaXMsIGRpc3BsYXlpbmcsIHN0YXJ0
VGltZV0oT1NTdGF0dXMgc3RhdHVzLCBWVERlY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsIENWSW1h
Z2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIENN
VGltZSBwcmVzZW50YXRpb25EdXJhdGlvbikgewotICAgICAgICBkb3VibGUgZGVsdGFSYXRpbyA9
IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkuc2Vjb25kcygpIC8gQ01UaW1lR2V0
U2Vjb25kcyhwcmVzZW50YXRpb25EdXJhdGlvbik7CisgICAgICAgIGRvdWJsZSBkZWx0YVJhdGlv
ID0gKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5zZWNvbmRzKCkgLyBQQUw6OkNN
VGltZUdldFNlY29uZHMocHJlc2VudGF0aW9uRHVyYXRpb24pOwogCiAgICAgICAgIHVwZGF0ZVFv
c1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyhkZWx0YVJhdGlvKTsKICAgICAgICAgaGFuZGxlRGVj
b21wcmVzc2lvbk91dHB1dChkaXNwbGF5aW5nLCBzdGF0dXMsIGluZm9GbGFncywgaW1hZ2VCdWZm
ZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcHJlc2VudGF0aW9uRHVyYXRpb24pOwpAQCAtMjg5
LDcgKzI5Miw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpoYW5kbGVEZWNv
bXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAgICAgICAgICsrbV9kcm9wcGVk
VmlkZW9GcmFtZXM7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgcmF3SW1hZ2VC
dWZmZXJEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCBu
b0VyciAhPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgJnJhd0ltYWdlQnVmZmVyRGVzY3JpcHRp
b24pKSB7CisgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCBub0VyciAhPSBQQUw6OkNNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHJhd0ltYWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbikpIHsKICAgICAgICAg
KyttX2NvcnJ1cHRlZFZpZGVvRnJhbWVzOwogICAgICAgICAtLW1fZnJhbWVzQmVpbmdEZWNvZGVk
OwogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzA0LDcg
KzMwNyw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpoYW5kbGVEZWNvbXBy
ZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAgICAgfTsKIAogICAgIENNU2FtcGxl
QnVmZmVyUmVmIHJhd0ltYWdlU2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9FcnIg
IT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJEZXNjcmlwdGlvbi5nZXQoKSwgJmlt
YWdlQnVmZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVCdWZmZXIpKSB7CisgICAgaWYgKG5vRXJy
ICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJEZXNjcmlwdGlvbi5nZXQo
KSwgJmltYWdlQnVmZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVCdWZmZXIpKSB7CiAgICAgICAg
ICsrbV9jb3JydXB0ZWRWaWRlb0ZyYW1lczsKICAgICAgICAgLS1tX2ZyYW1lc0JlaW5nRGVjb2Rl
ZDsKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTMxOCwx
MSArMzIxLDExIEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpoYW5kbGVEZWNv
bXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAKIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0VmlkZW9GcmFt
ZSgpCiB7Ci0gICAgaWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgQ01CdWZmZXJRdWV1ZUlzRW1wdHko
bV9wcm9kdWNlclF1ZXVlLmdldCgpKSkKKyAgICBpZiAoIW1fcHJvZHVjZXJRdWV1ZSB8fCBQQUw6
OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50
U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVm
ZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKLSAgICBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJl
ZilDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOworICAg
IFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hl
Y2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVl
QW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CiAgICAgQVNTRVJUKENG
R2V0VHlwZUlEKGltYWdlQnVmZmVyLmdldCgpKSA9PSBDVlBpeGVsQnVmZmVyR2V0VHlwZUlEKCkp
OwogCiAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTMzNSwyNSAr
MzM4LDI1IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1
ZXVlKCkKICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8g
dGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQo
KSkpOworICAgIGF1dG8gdGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0
VGltZShtX3RpbWViYXNlLmdldCgpKSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHB1cmdpbmcgYWxsIHNhbXBsZXMg
YmVmb3JlIHRpbWUoJXMpIiwgdGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSk7CiAK
ICAgICBNZWRpYVRpbWUgbmV4dEZpcmVUaW1lID0gTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRl
VGltZSgpOwogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSBmYWxzZTsKIAotICAgIHdo
aWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNh
bXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSkpIHsKLSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9N
ZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1w
bGUpKTsKLSAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShDTVNh
bXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CisgICAgd2hpbGUgKENNU2FtcGxl
QnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVm
PihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Cisg
ICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1l
KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1wbGUp
KTsKKyAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKICAgICAgICAgTWVkaWFUaW1l
IHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlvblRpbWVzdGFtcCArIGR1cmF0
aW9uOwogICAgICAgICBpZiAodGltZSA+IHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCkgewotICAg
ICAgICAgICAgQ0ZSZWxlYXNlKENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgQ0ZSZWxlYXNlKFBBTDo6Q01CdWZmZXJRdWV1
ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAgICBy
ZWxlYXNlZEltYWdlQnVmZmVycyA9IHRydWU7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01l
ZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9k
dWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShD
TUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpOworICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVm
ZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKTsKKyAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJR
dWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsK
ICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0
aWNEZXF1ZXVlKCVwKSAtIHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKGJlZ2luKS51
dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAKQEAg
LTM2NSw3ICszNjgsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21h
dGljRGVxdWV1ZSgpCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7
CiAKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRp
Y0RlcXVldWUoJXApIC0gcXVldWUgZW1wdHkiLCB0aGlzKTsKLSAgICBDTVRpbWViYXNlU2V0VGlt
ZXJEaXNwYXRjaFNvdXJjZU5leHRGaXJlVGltZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291
cmNlLmdldCgpLCBQQUw6OnRvQ01UaW1lKG5leHRGaXJlVGltZSksIDApOworICAgIFBBTDo6Q01U
aW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUobV90aW1lYmFzZS5nZXQo
KSwgbV90aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0b0NNVGltZShuZXh0RmlyZVRpbWUpLCAwKTsK
IH0KIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2Ft
cGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYm9vbCBkaXNwbGF5aW5nKQpAQCAtMzgzLDE3
ICszODYsMTcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNv
ZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKICAgICBib29sIHNob3VsZE5vdGlm
eSA9IHRydWU7CiAKICAgICBpZiAoZGlzcGxheWluZyAmJiBtX3RpbWViYXNlKSB7Ci0gICAgICAg
IGF1dG8gY3VycmVudFJhdGUgPSBDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsK
LSAgICAgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdl
dFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOwotICAgICAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0
VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1l
U3RhbXAoc2FtcGxlKSk7Ci0gICAgICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IHByZXNl
bnRhdGlvblN0YXJ0VGltZSArIFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJh
dGlvbihzYW1wbGUpKTsKKyAgICAgICAgYXV0byBjdXJyZW50UmF0ZSA9IFBBTDo6Q01UaW1lYmFz
ZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7CisgICAgICAgIGF1dG8gY3VycmVudFRpbWUgPSBQ
QUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkp
OworICAgICAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKKyAg
ICAgICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJlc2VudGF0aW9uU3RhcnRUaW1lICsg
UEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKSk7
CiAgICAgICAgIGlmIChjdXJyZW50VGltZSA8IHByZXNlbnRhdGlvblN0YXJ0VGltZSB8fCBjdXJy
ZW50VGltZSA+PSBwcmVzZW50YXRpb25FbmRUaW1lKQogICAgICAgICAgICAgc2hvdWxkTm90aWZ5
ID0gZmFsc2U7CiAKICAgICAgICAgaWYgKGN1cnJlbnRSYXRlID4gMCAmJiBwcmVzZW50YXRpb25F
bmRUaW1lIDwgY3VycmVudFRpbWUpIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgICAgICBh
dXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50
YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgICAgICAgICBhdXRv
IGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRp
bWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIGF1dG8gYmVnaW4g
PSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9u
VGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgYXV0byBlbmQg
PSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRp
bWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIExPRyhNZWRpYSwg
IldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoJXApIC0g
ZHJvcHBpbmcgZnJhbWUgbGF0ZSBieSAlcywgZnJhbWVzQmVpbmdEZWNvZGVkKCVkKSwgcHJvZHVj
ZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhwcmVzZW50YXRpb25FbmRUaW1lIC0g
Y3VycmVudFRpbWUpLnV0ZjgoKS5kYXRhKCksIG1fZnJhbWVzQmVpbmdEZWNvZGVkLCB0b1N0cmlu
ZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNl
bmRpZgogICAgICAgICAgICAgKyttX2Ryb3BwZWRWaWRlb0ZyYW1lczsKQEAgLTQwMSwxNyArNDA0
LDE3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNh
bXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBD
TUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX3Byb2R1Y2VyUXVldWUuZ2V0KCksIHNhbXBsZSk7CisgICAg
UEFMOjpDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX3Byb2R1Y2VyUXVldWUuZ2V0KCksIHNhbXBsZSk7
CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUo
Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOwotICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVl
R2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAg
IGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJH
ZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7CisgICAgYXV0byBiZWdpbiA9IFBBTDo6
dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3Rh
bXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFU
aW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxl
KSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVl
RGVjb2RlZFNhbXBsZSglcCkgLSBwcmVzZW50YXRpb25UaW1lKCVzKSwgZnJhbWVzQmVpbmdEZWNv
ZGVkKCVkKSwgcHJvZHVjZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhwcmVzZW50
YXRpb25UaW1lKS51dGY4KCkuZGF0YSgpLCBtX2ZyYW1lc0JlaW5nRGVjb2RlZCwgdG9TdHJpbmco
YmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5k
aWYKIAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNw
YXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3Vy
Y2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNl
VG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7
CiAKICAgICBpZiAoIW1faGFzQXZhaWxhYmxlRnJhbWVDYWxsYmFjaykKICAgICAgICAgcmV0dXJu
OwpAQCAtNDI2LDcgKzQyOSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpl
bnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAKIGJvb2wgV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpIGNvbnN0
CiB7Ci0gICAgQ01JdGVtQ291bnQgcHJvZHVjZXJDb3VudCA9IG1fcHJvZHVjZXJRdWV1ZSA/IENN
QnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpIDogMDsKKyAg
ICBDTUl0ZW1Db3VudCBwcm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVlID8gUEFMOjpDTUJ1
ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSA6IDA7CiAgICAg
cmV0dXJuIG1fZnJhbWVzQmVpbmdEZWNvZGVkICsgcHJvZHVjZXJDb3VudCA8PSBrSGlnaFdhdGVy
TWFyazsKIH0KIApAQCAtNDUyLDcgKzQ1NSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjpzdG9wUmVxdWVzdGluZ01lZGlhRGF0YSgpCiAKIHZvaWQgV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uOjpub3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFtZShzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gY2FsbGJhY2spCiB7Ci0gICAgaWYgKGNhbGxiYWNrICYmIG1fcHJvZHVjZXJR
dWV1ZSAmJiAhQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgewor
ICAgIGlmIChjYWxsYmFjayAmJiBtX3Byb2R1Y2VyUXVldWUgJiYgIVBBTDo6Q01CdWZmZXJRdWV1
ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgewogICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW2NhbGxiYWNrXSB7CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAg
ICB9KTsKQEAgLTQ2Myw3ICs0NjYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6bm90aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoc3RkOjpmdW5jdGlvbgogCiBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFn
ZUZvclRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBJbWFnZUZvclRpbWVGbGFncyBmbGFncykK
IHsKLSAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkg
eworICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQo
KSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpp
bWFnZUZvclRpbWUoJXApIC0gdGltZSglcyksIHF1ZXVlIGVtcHR5IiwgdGhpcywgdG9TdHJpbmco
dGltZSkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAg
LTQ3MSw5ICs0NzQsOSBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQogICAgIGJvb2wgYWxsb3dF
YXJsaWVyID0gZmxhZ3MgPT0gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpBbGxvd0Vhcmxp
ZXI7CiAgICAgYm9vbCBhbGxvd0xhdGVyID0gZmxhZ3MgPT0gV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjpBbGxvd0xhdGVyOwogCi0gICAgTWVkaWFUaW1lIHN0YXJ0VGltZSA9IFBBTDo6dG9N
ZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIE1lZGlhVGltZSBzdGFydFRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogI2lmICFMT0dfRElTQUJMRUQKLSAgICBNZWRpYVRpbWUg
ZW5kVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBNZWRpYVRpbWUgZW5kVGlt
ZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9u
VGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogI2VuZGlmCiAgICAgaWYgKCFhbGxv
d0xhdGVyICYmIHRpbWUgPCBzdGFydFRpbWUpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoJXApIC0gdGltZSglcykgdG9vIGVh
cmx5IGZvciBxdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0
YSgpLCB0b1N0cmluZyhzdGFydFRpbWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZFRpbWUp
LnV0ZjgoKS5kYXRhKCkpOwpAQCAtNDgyLDI0ICs0ODUsMjQgQEAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0
IE1lZGkKIAogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSBmYWxzZTsKIAotICAgIHdo
aWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNh
bXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSkpIHsKLSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9N
ZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1w
bGUpKTsKLSAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShDTVNh
bXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CisgICAgd2hpbGUgKENNU2FtcGxl
QnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVm
PihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7Cisg
ICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFUaW1l
KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1wbGUp
KTsKKyAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKICAgICAgICAgTWVkaWFUaW1l
IHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlvblRpbWVzdGFtcCArIGR1cmF0
aW9uOwogICAgICAgICBpZiAoIWFsbG93TGF0ZXIgJiYgcHJlc2VudGF0aW9uVGltZXN0YW1wID4g
dGltZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAoIWFsbG93RWFy
bGllciAmJiBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPCB0aW1lKSB7Ci0gICAgICAgICAgICBD
RlJlbGVhc2UoQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdl
dCgpKSk7CisgICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFu
ZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIHJlbGVhc2VkSW1h
Z2VCdWZmZXJzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAg
ICAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRD
RihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVEZXF1ZXVl
QW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKLSAgICAgICAgUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpQ01TYW1wbGVC
dWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKKyAgICAgICAgUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2Nm
X2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRh
aW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOworICAgICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CiAgICAgICAgIEFTU0VSVChD
RkdldFR5cGVJRChpbWFnZUJ1ZmZlci5nZXQoKSkgPT0gQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJRCgp
KTsKIAogICAgICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgICAgIENNVGltZWJhc2VTZXRU
aW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90
aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgICAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRp
c3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNv
dXJjZS5nZXQoKSk7CiAKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEo
KTsKIApAQCAtNTA4LDcgKzUxMSw3IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiAgICAgfQog
CiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNo
U291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5n
ZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0Zp
cmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAog
ICAgIGlmIChyZWxlYXNlZEltYWdlQnVmZmVycykKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZv
ck1vcmVNZWRpYURhdGEoKTsKQEAgLTUyMCw5ICs1MjMsOSBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3Qg
TWVkaQogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmZsdXNoKCkKIHsKICAgICBt
X2RlY29tcHJlc3Npb25RdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldKCkgbXV0YWJsZSB7Ci0gICAgICAgIENNQnVmZmVyUXVldWVSZXNldChw
cm90ZWN0ZWRUaGlzLT5tX3Byb2R1Y2VyUXVldWUuZ2V0KCkpOworICAgICAgICBQQUw6OkNNQnVm
ZmVyUXVldWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX3Byb2R1Y2VyUXVldWUuZ2V0KCkpOwogICAg
ICAgICBtX2VucXVlaW5nUXVldWUtPmRpc3BhdGNoU3luYyhbcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyldIHsKLSAgICAgICAgICAgIENNQnVmZmVyUXVldWVSZXNldChwcm90
ZWN0ZWRUaGlzLT5tX2NvbnN1bWVyUXVldWUuZ2V0KCkpOworICAgICAgICAgICAgUEFMOjpDTUJ1
ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25zdW1lclF1ZXVlLmdldCgpKTsKICAg
ICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fZnJhbWVzU2luY2VMYXN0UW9zQ2hlY2sgPSAwOwog
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jdXJyZW50UW9zVGllciA9IDA7CiAgICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5yZXNldFFvc1RpZXIoKTsKQEAgLTUzMywyNCArNTM2LDI0IEBA
IHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCgpCiBDTVRpbWUgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKENNQnVmZmVyUmVmIGJ1Ziwgdm9p
ZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENN
U2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldERlY29k
ZVRpbWVTdGFtcChzYW1wbGUpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGVj
b2RlVGltZVN0YW1wKHNhbXBsZSk7CiB9CiAKIENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OmdldFByZXNlbnRhdGlvblRpbWUoQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikKIHsKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZm
ZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50
YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKIH0KIAogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6Z2V0RHVyYXRpb24oQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikKIHsKICAgICBDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+
KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKKyAg
ICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CiB9CiAKIENG
Q29tcGFyaXNvblJlc3VsdCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmNvbXBhcmVCdWZm
ZXJzKENNQnVmZmVyUmVmIGJ1ZjEsIENNQnVmZmVyUmVmIGJ1ZjIsIHZvaWQqIHJlZmNvbikKIHsK
LSAgICByZXR1cm4gKENGQ29tcGFyaXNvblJlc3VsdClDTVRpbWVDb21wYXJlKGdldFByZXNlbnRh
dGlvblRpbWUoYnVmMSwgcmVmY29uKSwgZ2V0UHJlc2VudGF0aW9uVGltZShidWYyLCByZWZjb24p
KTsKKyAgICByZXR1cm4gKENGQ29tcGFyaXNvblJlc3VsdClQQUw6OkNNVGltZUNvbXBhcmUoZ2V0
UHJlc2VudGF0aW9uVGltZShidWYxLCByZWZjb24pLCBnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjIs
IHJlZmNvbikpOwogfQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6cmVzZXRR
b3NUaWVyKCkKQEAgLTYwMiw3ICs2MDUsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6dXBkYXRlUW9zV2l0aERlY29kZVRpbWVTdGF0aXN0aWNzKGRvdWJsZSByYXRpbwogICAg
IGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZG91YmxlIHJhdGUgPSBD
TVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKKyAgICBkb3VibGUgcmF0ZSA9IFBB
TDo6Q01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7CiAgICAgaWYgKCFyYXRlKQog
ICAgICAgICByYXRlID0gMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KaW5kZXggZTNmMDky
NzAzNDhlN2E1YWVmNzI2NmViNDcyZGRiYWU3M2JjMzQwNy4uZjMxNjlhYmMwMjc3MDgyZjBjZmNl
NDcyNjc5ZTExMDc5N2M4YzlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCkBAIC00Miw3
ICs0Miw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBDRlN0
cmluZ1JlZiBjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkKIHsKQEAgLTEzOCw3ICsxMzcsNyBAQCBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVy
dFBpeGVsQnVmZmVyKENWUGl4ZWxCdQogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYg
c291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBjb252ZXJ0
UGl4ZWxCdWZmZXIoQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpLCBz
aXplKTsKKyAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpLCBzaXplKTsKIH0KIAogUmV0YWluUHRyPENNU2Ft
cGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZm
ZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQpA
QCAtMTQ2LDkgKzE0NSw5IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgaWYgKCFzb3Vy
Y2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBkZXNjcmlwdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc291cmNlQnVmZmVyKTsKLSAg
ICBhdXRvIHNvdXJjZVNpemUgPSBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0
UHJlc2VudGF0aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwotICAgIGF1
dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1
ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOworICAgIGF1dG8gZGVzY3JpcHRpb24g
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc291cmNlQnVmZmVyKTsK
KyAgICBhdXRvIHNvdXJjZVNpemUgPSBGbG9hdFNpemUoUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGRlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7
CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpKTsKICAgICBpZiAo
c2l6ZSA9PSBleHBhbmRlZEludFNpemUoc291cmNlU2l6ZSkgJiYgbV9waXhlbEZvcm1hdCA9PSBD
VlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSkKICAgICAgICAgcmV0
dXJuIHJldGFpblB0cihzb3VyY2VCdWZmZXIpOwogCkBAIC0xNjAsNyArMTU5LDcgQEAgUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01T
YW1wbGVCdWZmZXIoQ01TYW0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBDTUl0ZW1D
b3VudCBpdGVtQ291bnQgPSAwOwotICAgIGF1dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCAxLCBudWxscHRyLCAmaXRlbUNvdW50
KTsKKyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkoc291cmNlQnVmZmVyLCAxLCBudWxscHRyLCAmaXRlbUNvdW50KTsKICAgICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19j
YXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTY5LDcgKzE2
OCw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgQ01TYW1wbGVUaW1pbmdJbmZvKiB0
aW1laW5nSW5mb1B0ciA9IG51bGxwdHI7CiAgICAgaWYgKGl0ZW1Db3VudCkgewogICAgICAgICB0
aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgICAgICBzdGF0dXMgPSBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIGl0ZW1Db3VudCwg
dGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CisgICAgICAgIHN0YXR1cyA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCBpdGVt
Q291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOwogICAgICAgICBpZiAoc3Rh
dHVzICE9IG5vRXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVUaW1pbmdJbmZvQXJyYXkgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNf
Y2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNzgs
MTQgKzE3NywxNCBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIH0KIAogICAgIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAg
c3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNj
cmlwdGlvbik7CisgICAgc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZl
ci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29u
dmVydENNU2FtcGxlQnVmZmVyOiBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFn
ZUJ1ZmZlciByZXR1cm5lZDogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByZXNpemVk
U2FtcGxlQnVmZmVyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRo
SW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0
KCksIGZvcm1hdERlc2NyaXB0aW9uLCB0aW1laW5nSW5mb1B0ciwgJnJlc2l6ZWRTYW1wbGVCdWZm
ZXIpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFn
ZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwg
Zm9ybWF0RGVzY3JpcHRpb24sIHRpbWVpbmdJbmZvUHRyLCAmcmVzaXplZFNhbXBsZUJ1ZmZlcik7
CiAgICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzICE9IG5v
RXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBmYWlsZWQgdG8gY3JlYXRlIENNU2FtcGxlQnVmZmVy
IHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpAQCAtMjM3
LDE2ICsyMzYsMTYgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihDVlBpeGUKICAgICB9CiAKICAgICBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAg
IGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZm
ZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0
KCksICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24p
OwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6IGZhaWxlZCB0byBpbml0aWFsaXpl
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbiB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nh
c3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAg
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1dG8gY21UaW1lID0gdG9DTVRp
bWUoc2FtcGxlVGltZSk7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IGtD
TVRpbWVJbnZhbGlkLCBjbVRpbWUsIGNtVGltZSB9OwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1h
Z2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5n
SW5mbywgJnNhbXBsZUJ1ZmZlcik7CisgICAgYXV0byBjbVRpbWUgPSBQQUw6OnRvQ01UaW1lKHNh
bXBsZVRpbWUpOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBQQUw6OmtD
TVRpbWVJbnZhbGlkLCBjbVRpbWUsIGNtVGltZSB9OworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAo
Q1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sICZ0
aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRp
b24pOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6IGZhaWxlZCB0byBpbml0aWFs
aXplIENNU2FtcGxlQnVmZmVyIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+
KHN0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXli
YWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IGUwZGFhYzg1Yjg3M2FkNmFh
OWI0YWIyZGI3YTAwOWNjMzdkNDc4OTUuLjMyYTA0NDk2Y2ZmN2Q4NDExMTIwZmNkMTMzZTZkNjc0
MjU0YTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KQEAgLTQ3LDcgKzQ3LDYgQEAgU09G
VExJTktfQVZLSVRfRlJBTUVXT1JLKCkKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVktpdCwg
QVZWYWx1ZVRpbWluZykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIAogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OlBsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZUFWS2l0KFBsYXliYWNrU2Vzc2lvbk1vZGVsJiBtb2RlbCkKICAgICA6IG1fcGxheWVyQ29u
dHJvbGxlcihhZG9wdE5TKFtbV2ViQVZQbGF5ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0XSkpCkBA
IC0xNDUsNyArMTQ0LDcgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6c2Vl
a2FibGVSYW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMmIHRpbWUKICAgICAgICAgZG91Ymxl
IHN0YXJ0ID0gdGltZVJhbmdlcy5zdGFydChpKS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICAg
ICAgZG91YmxlIGVuZCA9IHRpbWVSYW5nZXMuZW5kKGkpLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwog
Ci0gICAgICAgIENNVGltZVJhbmdlIHJhbmdlID0gQ01UaW1lUmFuZ2VNYWtlKENNVGltZU1ha2VX
aXRoU2Vjb25kcyhzdGFydCwgMTAwMCksIENNVGltZU1ha2VXaXRoU2Vjb25kcyhlbmQtc3RhcnQs
IDEwMDApKTsKKyAgICAgICAgQ01UaW1lUmFuZ2UgcmFuZ2UgPSBQQUw6OkNNVGltZVJhbmdlTWFr
ZShQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhzdGFydCwgMTAwMCksIFBBTDo6Q01UaW1lTWFr
ZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOwogICAgICAgICBbc2Vla2FibGVSYW5nZXMg
YWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENNVGltZVJhbmdlOnJhbmdlXV07CiAgICAgfQog
I2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCmluZGV4IGVhNDIzYzcxN2M3YWU5MWJkNGVlOTkwODdl
MDdjNGU1YzM3ZTRjM2YuLjVkZjM0OWZjNmZjZGZjZmFlYTc1NTYzMjBmM2FlNmU2Njc2MzRlOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5tbQpAQCAtMzczLDcgKzM3Myw2IEBAIC0gKHZvaWQpcGlwQWN0
aW9uU3RvcDooUElQVmlld0NvbnRyb2xsZXIgKilwaXAKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
OjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMoUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFj
JiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgOiBtX3BsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2
YXRlQVZGSW1wbC5jcHAKaW5kZXggODg0MDk0Mjk3OTI2YzhhZWJkZWY2ZjNlOTU3ODQyZjgzNDI4
Yjg5Mi4uZDQxOWUwZTE5MjU1NWQ3MzYwODU4NTFmNTRjYTAwNDBkNDZiNjYzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtNDIsNyArNDIsNiBAQAogI2lu
Y2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSwgY29uc3QgTWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zJiBv
cHRpb25zKQogewpAQCAtODgsMTIgKzg3LDEyIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlQnVmZmVyCiB7
CiAgICAgaWYgKHNob3VsZE11dGVWaWRlbygpKSB7CiAgICAgICAgIGlmICghbV9ibGFja0ZyYW1l
KSB7Ci0gICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVy
R2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxl
LmNtU2FtcGxlQnVmZmVyKTsKLSAgICAgICAgICAgIGF1dG8gZGltZW5zaW9ucyA9IENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0
KCkpOworICAgICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCku
c2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgIGF1dG8gZGltZW5zaW9ucyA9IFBB
TDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhtX2JsYWNrRnJhbWVEZXNj
cmlwdGlvbi5nZXQoKSk7CiAgICAgICAgICAgICBtX2JsYWNrRnJhbWUgPSBjcmVhdGVCbGFja1Bp
eGVsQnVmZmVyKGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0KTsKIAogICAgICAg
ICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVs
bHB0cjsKLSAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9ibGFja0ZyYW1lLmdl
dCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgICAgICAgICAgYXV0byBzdGF0dXMgPSBQQUw6
OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICAg
ICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVB
dmFpbGFibGUgOjp1bmFibGUgdG8gY3JlYXRlIGEgYmxhY2sgZnJhbWUgZGVzY3JpcHRpb246ICVk
Iiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgICAgICAgICBtX2JsYWNrRnJh
bWUgPSBudWxscHRyOwpAQCAtMTAzLDggKzEwMiw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlQnVmZmVy
CiAgICAgICAgIH0KIAogICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBudWxscHRy
OwotICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyB7IGtDTVRpbWVJbnZhbGlk
LCB0b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0aW9uVGltZSgpKSwgdG9DTVRpbWUoc2Ft
cGxlQnVmZmVyLmRlY29kZVRpbWUoKSkgfTsKLSAgICAgICAgYXV0byBzdGF0dXMgPSBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChD
VkltYWdlQnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0ZyYW1lRGVzY3JpcHRp
b24uZ2V0KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKKyAgICAgICAgQ01TYW1wbGVUaW1pbmdJ
bmZvIHRpbWluZ0luZm8geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OnRvQ01UaW1lKHNhbXBs
ZUJ1ZmZlci5wcmVzZW50YXRpb25UaW1lKCkpLCBQQUw6OnRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5k
ZWNvZGVUaW1lKCkpIH07CisgICAgICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdl
QnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0
KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKIAogICAgICAgICBpZiAoc3RhdHVzICE9IG5vRXJy
KSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUgLSB1bmFibGUgdG8gY3Jl
YXRlIGEgYmxhY2sgZnJhbWU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNTFhM2Ux
OGEyY2VkZDNjZDVkYTkzZjM0ZWJmMzcxMWUwMjBmOGI2Mi4uNWUxMTBlY2Q3ZGUzODQ2MWI0Mjkw
NGEwZWI0ODgzNDE4NDNlNzVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IubW0KQEAgLTM2LDEzICszNiwxMiBAQAogI2luY2x1ZGUgPHd0Zi9TY29w
ZS5oPgogCiAjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KKyNpbXBvcnQg
PHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiAjZGVmaW5lIExPV19XQVRFUl9USU1FX0lO
X1NFQ09ORFMgMC4xCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKLQogc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFj
ayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgYXV0byBjb21wcmVzc29y
ID0gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4obmV3IEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpKTsKQEAgLTUyLDE1ICs1MSwxNSBAQCBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmNyZWF0ZQogfQogCiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvcigpCi0gICAgOiBtX3NlcmlhbERpc3BhdGNoUXVldWUgeyBXb3Jr
UXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciIpIH0K
LSAgICAsIG1fbG93V2F0ZXJUaW1lIHsgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKExPV19XQVRFUl9U
SU1FX0lOX1NFQ09ORFMsIDEwMDApIH0KKyAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciIpKQor
ICAgICwgbV9sb3dXYXRlclRpbWUoUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dBVEVS
X1RJTUVfSU5fU0VDT05EUywgMTAwMCkpCiB7CiB9CiAKIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgaWYgKG1fY29udmVy
dGVyKSB7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAg
ICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKICAgICAgICAgbV9j
b252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0KIH0KQEAgLTY4LDE5ICs2NywxOSBAQCBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogYm9v
bCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRy
aWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgQ01C
dWZmZXJRdWV1ZVJlZiBpbnB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01C
dWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0
Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZpbnB1dEJ1ZmZlclF1ZXVlKSkg
eworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVk
U2FtcGxlQnVmZmVycygpLCAmaW5wdXRCdWZmZXJRdWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZm
ZXJRdWV1ZUNyZWF0ZSBmb3IgbV9pbnB1dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1faW5wdXRCdWZmZXJRdWV1
ZSA9IGFkb3B0Q0YoaW5wdXRCdWZmZXJRdWV1ZSk7CiAKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91
dHB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5z
b3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0
byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAw
LCBQQUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMo
KSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlQ3JlYXRl
IGZvciBtX291dHB1dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1fb3V0cHV0QnVmZmVyUXVldWUgPSBhZG9wdENG
KG91dHB1dEJ1ZmZlclF1ZXVlKTsKLSAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9v
dXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZm
ZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVaZXJvLCBOVUxMKTsK
KyAgICBQQUw6OkNNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVl
LmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9X
aGVuRGF0YUJlY29tZXNSZWFkeSwgUEFMOjprQ01UaW1lWmVybywgTlVMTCk7CiAKICAgICBtX2lz
RW5jb2RpbmcgPSB0cnVlOwogICAgIHJldHVybiB0cnVlOwpAQCAtODksOCArODgsOCBAQCBib29s
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJp
Z2dlckNhbGxiYWNrIGNhbGxiYQogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZp
bmlzaCgpCiB7CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNd
IHsKLSAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShrQ01UaW1l
SW52YWxpZCk7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0
YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKKyAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZl
cnNVbnRpbExvd1dhdGVyVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBl
cnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1
ZS5nZXQoKSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0
YSBmYWlsZWQgJWQiLCBlcnJvcik7CiAgICAgICAgIG1faXNFbmNvZGluZyA9IGZhbHNlOwogICAg
IH0pOwpAQCAtMTEyLDcgKzExMSw3IEBAIFVJbnQzMiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmRlZmF1bHRPdXRwdXRCaXRSYXRlKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNECiAKIGJvb2wg
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VG
b3JtYXREZXNjcmlwdGlvbihDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
LCBBdWRpb0Zvcm1hdElEIG91dHB1dEZvcm1hdElEKQogewotICAgIGNvbnN0IGF1dG8gKmF1ZGlv
Rm9ybWF0TGlzdEl0ZW0gPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2Rh
YmxlRm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBhdXRvICphdWRpb0Zvcm1h
dExpc3RJdGVtID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2Rh
YmxlRm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBtX3NvdXJjZUZvcm1hdCA9IGF1ZGlv
Rm9ybWF0TGlzdEl0ZW0tPm1BU0JEOwogCiAgICAgbWVtc2V0KCZtX2Rlc3RpbmF0aW9uRm9ybWF0
LCAwLCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CkBAIC0xMjEsMzQgKzEy
MCwzNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVy
dGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIG1fZGVzdGluYXRpb25Gb3JtYXQu
bUNoYW5uZWxzUGVyRnJhbWUgPSBtX3NvdXJjZUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKIAog
ICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOwotICAgIGlmIChh
dXRvIGVycm9yID0gQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9wZXJ0eV9G
b3JtYXRJbmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CisgICAg
aWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvRm9ybWF0R2V0UHJvcGVydHkoa0F1ZGlvRm9ybWF0
UHJvcGVydHlfRm9ybWF0SW5mbywgMCwgTlVMTCwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0
KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBBdWRpb0Zvcm1hdEdldFByb3BlcnR5IGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgQXVkaW9Db252ZXJ0
ZXJSZWYgY29udmVydGVyOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJOZXco
Jm1fc291cmNlRm9ybWF0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZlcnRlcikpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcoJm1fc291cmNlRm9ybWF0
LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZlcnRlcikpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQXVkaW9D
b252ZXJ0ZXJOZXcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAgICAgbV9jb252ZXJ0ZXIgPSBjb252ZXJ0ZXI7CiAKICAgICBhdXRvIGNsZWFu
dXBJbkNhc2VPZkVycm9yID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAgICBBdWRpb0NvbnZl
cnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyRGlz
cG9zZShtX2NvbnZlcnRlcik7CiAgICAgICAgIG1fY29udmVydGVyID0gbnVsbHB0cjsKICAgICB9
KTsKIAogICAgIHNpemVfdCBjb29raWVTaXplID0gMDsKLSAgICBjb25zdCB2b2lkICpjb29raWUg
PSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlv
biwgJmNvb2tpZVNpemUpOworICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IFBBTDo6Q01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRpb24sICZjb29raWVT
aXplKTsKICAgICBpZiAoY29va2llU2l6ZSkgewotICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1
ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckRlY29t
cHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUpKSB7CisgICAg
ICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29u
dmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUsIChVSW50MzIp
Y29va2llU2l6ZSwgY29va2llKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252
ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBzaXplID0g
c2l6ZW9mKG1fc291cmNlRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0
cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgeworICAgIGlmIChhdXRv
IGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX3NvdXJj
ZUZvcm1hdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5w
dXRTdHJlYW1EZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KQEAgLTE1OSw3ICsxNTgsNyBAQCBib29sIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRp
b24oQwogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0g
ICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVy
LCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAm
bV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9D
b252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91
dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2Ny
aXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpAQCAtMTY3LDE0ICsxNjYsMTQgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICBp
ZiAobV9kZXN0aW5hdGlvbkZvcm1hdC5tRm9ybWF0SUQgPT0ga0F1ZGlvRm9ybWF0TVBFRzRBQUMp
IHsKICAgICAgICAgYm9vbCBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSA9IHRydWU7CiAg
ICAgICAgIGlmIChtX291dHB1dEJpdFJhdGUpIHsKLSAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBB
dWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNv
ZGVCaXRSYXRlLCBzaXplb2YoKm1fb3V0cHV0Qml0UmF0ZSksICZtX291dHB1dEJpdFJhdGUudmFs
dWUoKSk7CisgICAgICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFBy
b3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXplb2Yo
Km1fb3V0cHV0Qml0UmF0ZSksICZtX291dHB1dEJpdFJhdGUudmFsdWUoKSk7CiAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlIGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgc2hvdWxkU2V0RGVmYXVsdE91dHB1dEJp
dFJhdGUgPSAhIWVycm9yOwogICAgICAgICB9CiAgICAgICAgIGlmIChzaG91bGRTZXREZWZhdWx0
T3V0cHV0Qml0UmF0ZSkgewogICAgICAgICAgICAgYXV0byBvdXRwdXRCaXRSYXRlID0gZGVmYXVs
dE91dHB1dEJpdFJhdGUobV9kZXN0aW5hdGlvbkZvcm1hdCk7CiAgICAgICAgICAgICBzaXplID0g
c2l6ZW9mKG91dHB1dEJpdFJhdGUpOwotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRp
b0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVC
aXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCisgICAgICAgICAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29u
dmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZSwgJm91dHB1dEJpdFJhdGUpKQogICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIHNldHRpbmcgZGVmYXVsdCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlIGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTgzLDcgKzE4Miw3IEBA
IGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JT
b3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgICAgIC8vIElmIHRoZSBkZXN0aW5hdGlvbiBm
b3JtYXQgaXMgVkJSLCB3ZSBuZWVkIHRvIGdldCBtYXggc2l6ZSBwZXIgcGFja2V0IGZyb20gdGhl
IGNvbnZlcnRlci4KICAgICAgICAgc2l6ZSA9IHNpemVvZihtX21heE91dHB1dFBhY2tldFNpemUp
OwogCi0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSht
X2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6
ZSwgJnNpemUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7CisgICAgICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4T3V0
cHV0UGFja2V0U2l6ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVy
UHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMjExLDYgKzIxMCw4IEBA
IHNpemVfdCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNvbXB1dGVCdWZmZXJTaXplRm9y
QXVkaW9Gb3JtYXQoQXVkaW9TdHJlYW1CCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZChDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIp
CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJ
RChtX3JlbWFpbmluZ1ByaW1lRHVyYXRpb24pKSB7CiAgICAgICAgIEF1ZGlvQ29udmVydGVyUHJp
bWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKICAgICAgICAgVUludDMyIHNpemUgPSBzaXplb2Yo
cHJpbWVJbmZvKTsKQEAgLTIzNiwyNSArMjM3LDI1IEBAIFJldGFpblB0cjxOU051bWJlcj4gQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2RlclJlZnJlc2hDb3VudCgpCiB7
CiAgICAgVUludDMyIGRlbGF5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7CiAgICAgdWludDMyX3Qg
b3JpZ2luYWxEZWxheU1vZGUgPSAwOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0
ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwg
JmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1By
b3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICB1aW50MzJfdCBv
cHRpbWFsRGVsYXlNb2RlID0ga0F1ZGlvQ29kZWNEZWxheU1vZGVfT3B0aW1hbDsKLSAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRp
b0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxEZWxheU1vZGUpKSB7
CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9j
b252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGlt
YWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURl
bGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAg
ICB9CiAKICAgICBVSW50MzIgcHJpbWVTaXplID0gc2l6ZW9mKEF1ZGlvQ29kZWNQcmltZUluZm8p
OwogICAgIEF1ZGlvQ29kZWNQcmltZUluZm8gcHJpbWVJbmZvIHsgMCwgMCB9OwotICAgIGlmIChh
dXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlv
Q29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5mbykpIHsKKyAgICBp
ZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5mbykp
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvIGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAotICAgIGlm
IChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1
ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUp
KSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9y
aWdpbmFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVy
dHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7
CiAgICAgfQpAQCAtMjY3LDE4ICsyNjgsMTggQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAg
ICBpZiAoIW1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikgewogICAgICAgICBVSW50MzIg
Y29va2llU2l6ZSA9IDA7CiAKLSAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0
UHJvcGVydHlJbmZvKG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2lj
Q29va2llLCAmY29va2llU2l6ZSwgTlVMTCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6OkF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJD
b21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgTlVMTCk7CiAgICAgICAgIGlmICgo
ZXJyb3IgPT0gbm9FcnIpICYmICEhY29va2llU2l6ZSkgewogICAgICAgICAgICAgY29va2llLnJl
c2l6ZShjb29raWVTaXplKTsKIAotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Nv
bnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lv
bk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsKKyAgICAgICAgICAg
IGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVy
dGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwg
Y29va2llLmRhdGEoKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZl
cnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAg
ICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbjsK
LSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEwsIGNvb2tp
ZVNpemUsIGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9u
KSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBO
VUxMLCBjb29raWVTaXplLCBjb29raWUuZGF0YSgpLCBOVUxMLCAmZGVzdGluYXRpb25Gb3JtYXRE
ZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBuaWw7CiAg
ICAgICAgIH0KQEAgLTI5MCwyNiArMjkxLDI2IEBAIENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tldHMoVUludDMyCiAg
ICAgc2l6ZV90IGRhdGFTaXplID0gZmlsbEJ1ZmZlckxpc3QubUJ1ZmZlcnNbMF0ubURhdGFCeXRl
U2l6ZTsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXI7Ci0gICAgaWYgKGF1dG8g
ZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIE5VTEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBkYXRh
U2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIpKSB7
CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5
QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZGF0YVNpemUsIGtDRkFsbG9jYXRvckRl
ZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXplLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5vd0Zs
YWcsICZibG9ja0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhN
ZW1vcnlCbG9jayBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsK
ICAgICB9CiAgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKGJsb2NrQnVmZmVyKTsKIAotICAgIGlm
IChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMoZGF0YSwgYnVmZmVy
LmdldCgpLCAwLCBkYXRhU2l6ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9j
a0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMoZGF0YSwgYnVmZmVyLmdldCgpLCAwLCBkYXRhU2l6ZSkp
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVm
ZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZm
ZXIuZ2V0KCksIHRydWUsIE5VTEwsIE5VTEwsIG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlv
bi5nZXQoKSwgbnVtUGFja2V0cywgbV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1w
LCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnNhbXBsZUJ1ZmZlcik7
CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCB0cnVlLCBO
VUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksIG51bVBhY2tl
dHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCwgbV9kZXN0aW5hdGlvblBh
Y2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIpOwogICAgIGlmIChlcnJvcikg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0
aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9
CiAKICAgICBpZiAoW21fZ2RyQ291bnROdW0gaW50VmFsdWVdKQotICAgICAgICBDTVNldEF0dGFj
aG1lbnQoc2FtcGxlQnVmZmVyLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1YWxE
ZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgpLCBr
Q01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOworICAgICAgICBQQUw6OkNNU2V0QXR0
YWNobWVudChzYW1wbGVCdWZmZXIsIFBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9H
cmFkdWFsRGVjb2RlclJlZnJlc2gsIChfX2JyaWRnZSBDRlR5cGVSZWYpbV9nZHJDb3VudE51bS5n
ZXQoKSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKIAogICAgIHJldHVybiBz
YW1wbGVCdWZmZXI7CiB9CkBAIC0zNDEsMjQgKzM0MiwyNCBAQCBPU1N0YXR1cyBBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyhVSW50
MzIqCiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAg
ICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1w
dHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKKyAgICAgICAgICAgICAgICBpZiAoUEFMOjpD
TUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVmZmVyID0g
YWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVl
dWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7Ci0gICAgICAg
ICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZl
cihzYW1wbGVCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVmZmVy
ID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01C
dWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsK
KyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgICAgICBpZiAo
IW1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01TYW1wbGVC
dWZmZXJHZXREYXRhQnVmZmVyIGZhaWxlZCIpOwogICAgICAgICAgICAgICAgICAgICBtX3NhbXBs
ZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudE9mZnNl
dEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNp
emUgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgp
KTsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IFBBTDo6Q01CbG9j
a0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSk7CiAgICAgICAg
ICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGlmIChtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAg
ICAgICAgICAgc2l6ZV90IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1pbihu
dW1CeXRlc1RvQ29weSwgKG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplIC0gbV9jdXJyZW50T2Zmc2V0
SW5TYW1wbGVCbG9ja0J1ZmZlcikpOwotICAgICAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0g
Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9j
dXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxl
QmJ1ZiwgKG1fc291cmNlQnVmZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZl
cikpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZm
ZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNl
dEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChtX3Nv
dXJjZUJ1ZmZlci5kYXRhKCkgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgewogICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAg
ICAgICAgICAgIH0KQEAgLTM5MywyOCArMzk0LDI4IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioK
ICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVy
UXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1wdHko
bV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgICAgICBicmVhazsKIAotICAg
ICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZiko
Y29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1
ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBh
ZG9wdENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihDTVNh
bXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkpKSk7CisgICAgICAg
ICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25z
dF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRC
dWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0g
YWRvcHRDRigoQ01CbG9ja0J1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ0ZSZXRhaW4oUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkpKSk7CiAg
ICAgICAgICAgICBpZiAoIW1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIgZmFpbGVkIik7CiAgICAgICAgICAgICAgICAg
bV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgICAgIG1fY3VycmVudE9m
ZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBDTUJs
b2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7Cisg
ICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IFBBTDo6Q01CbG9ja0J1ZmZlckdl
dERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSkgLyAyOwogICAgICAgICAgICAg
bV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgc2l6ZV90IG51bUJ5
dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1pbihudW1CeXRlc1RvQ29weSwgKG1fc2Ft
cGxlQmxvY2tCdWZmZXJTaXplIC0gbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlcikp
OwotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRl
cyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2Nr
QnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoZmlyc3RDaGFubmVsICsgY3Vy
cmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9y
ID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdl
dCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZy
b21TYW1wbGVCYnVmLCAoZmlyc3RDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVy
KSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyBmaXJz
dCBjaGFubmVsIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVy
biBlcnJvcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01C
bG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJy
ZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplLCBu
dW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25kQ2hhbm5lbCArIGN1cnJlbnRPZmZz
ZXRJblNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6
Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9j
dXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXpl
LCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25kQ2hhbm5lbCArIGN1cnJlbnRP
ZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZl
ckNvcHlEYXRhQnl0ZXMgc2Vjb25kIGNoYW5uZWwgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICAgICAgfQpAQCAtNDM4LDYgKzQz
OSw4IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJj
ZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGxv
d1dhdGVyVGltZSkKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1FX0NP
TVBBUkVfSU5MSU5FCisKICAgICBpZiAoIW1fY29udmVydGVyKSB7CiAgICAgICAgIGlmIChDTUJ1
ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtNTAxLDcgKzUwNCw3IEBAIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENNVGltZSBsCiAKIHZv
aWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2Ft
cGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKLSAgICBhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUVu
cXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOworICAgIGF1dG8gZXJyb3Ig
PSBQQUw6OkNNQnVmZmVyUXVldWVFbnF1ZXVlKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVm
ZmVyKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAKICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1l
KG1fbG93V2F0ZXJUaW1lKTsKQEAgLTUyMCwxMiArNTIzLDEyIEBAIHZvaWQgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVy
KQogCiBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdldE91
dHB1dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29u
c3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5n
ZXQoKSkpKTsKKyAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQq
PihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7
CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gYWRvcHRDRigo
Q01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVl
QW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgIHJldHVybiBhZG9w
dENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1
ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKIH0KIAog
dW5zaWduZWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpiaXRSYXRlKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKaW5k
ZXggZjVmODU1ODcxZmM3MDg1NjZmN2VmOGI5YTE2MWUyN2I4ZTVkODllZC4uYjc1NThkMjgwYzJl
Zjc5NjA2OGNhYzBjYzk2YjUwMzNkYzM3MDk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNv
Y29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKQEAgLTEyNyw4ICsxMjcsOCBAQCBwcml2
YXRlOgogICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX3ZpZGVvRm9ybWF0
RGVzY3JpcHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcj4gbV92aWRlb0NvbXByZXNzb3I7CiAgICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXJJbnB1
dD4gbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQ7Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJlc2Vu
dGF0aW9uVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVvRGVj
b2RpbmdUaW1lIHsga0NNVGltZUludmFsaWQgfTsKKyAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVz
ZW50YXRpb25UaW1lOworICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5nVGltZTsKICAgICBi
b29sIG1faGFzRW5jb2RlZFZpZGVvU2FtcGxlcyB7IGZhbHNlIH07CiAKICAgICBSZXRhaW5QdHI8
V2ViQVZBc3NldFdyaXRlckRlbGVnYXRlPiBtX3dyaXRlckRlbGVnYXRlOwpAQCAtMTM5LDkgKzEz
OSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFN0b3BBZnRlckZsdXNoaW5nU2FtcGxl
cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ZpcnN0VmlkZW9GcmFtZSB7IGZhbHNlIH07CiAgICAg
c3RkOjpvcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gbV92aWRlb1RyYW5zZm9ybTsKLSAgICBD
TVRpbWUgbV9yZXN1bWVkVmlkZW9UaW1lIHsga0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUgbV9j
dXJyZW50VmlkZW9EdXJhdGlvbiB7IGtDTVRpbWVaZXJvIH07Ci0gICAgQ01UaW1lIG1fY3VycmVu
dEF1ZGlvU2FtcGxlVGltZSB7IGtDTVRpbWVaZXJvIH07CisgICAgQ01UaW1lIG1fcmVzdW1lZFZp
ZGVvVGltZTsKKyAgICBDTVRpbWUgbV9jdXJyZW50VmlkZW9EdXJhdGlvbjsKKyAgICBDTVRpbWUg
bV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lOwogICAgIGRvdWJsZSBtX3RpbWVDb2RlIHsgMCB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNv
Y29hLm1tCmluZGV4IDYzYmQ2NTk4ZDAyYTVjNzAwNmRhOTI5ZmM5NGYxZjVmNjZhNzE2ZGEuLjZh
ZDIwYmU4Y2I1NzkyM2EwZTc4NDJlMzcwMWQzM2E2YWEwM2FiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KQEAgLTkzLDggKzkz
LDYgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7
Ci0KIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBjb25zdCBNZWRp
YVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgYXV0byB3cml0ZXIgPSBh
ZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKGhhc0F1ZGlvLCBoYXNWaWRl
bykpOwpAQCAtMTIyLDYgKzEyMCwxMSBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Ojpjb21wcmVzc2VkQXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFjayh2b2lkICptZWRpYQogTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKGJvb2wgaGFz
QXVkaW8sIGJvb2wgaGFzVmlkZW8pCiAgICAgOiBtX2hhc0F1ZGlvKGhhc0F1ZGlvKQogICAgICwg
bV9oYXNWaWRlbyhoYXNWaWRlbykKKyAgICAsIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZShQ
QUw6OmtDTVRpbWVJbnZhbGlkKQorICAgICwgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUoUEFMOjpr
Q01UaW1lSW52YWxpZCkKKyAgICAsIG1fcmVzdW1lZFZpZGVvVGltZShQQUw6OmtDTVRpbWVaZXJv
KQorICAgICwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbihQQUw6OmtDTVRpbWVaZXJvKQorICAgICwg
bV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKFBBTDo6a0NNVGltZVplcm8pCiB7CiB9CiAKQEAgLTE3
OSw3ICsxODIsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3
Q29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycygpCiB7CiAgICAgQVNTRVJUKG1faGFzVmlkZW8p
OwogICAgIGlmICghbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uKSB7Ci0gICAgICAgIG1fdmlkZW9G
b3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV92
aWRlb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKKyAgICAgICAgbV92aWRl
b0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0
aW9uKG1fdmlkZW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CiAKICAgICAg
ICAgaWYgKG1faGFzQXVkaW8gJiYgIW1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbikKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTE5Niw3ICsxOTksNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjpwcm9jZXNzTmV3Q29tcHJlc3NlZEF1ZGlvU2FtcGxlQnVmZmVycygpCiB7CiAgICAg
QVNTRVJUKG1faGFzQXVkaW8pOwogICAgIGlmICghbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKSB7
Ci0gICAgICAgIG1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9y
bWF0RGVzY3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigp
KTsKKyAgICAgICAgbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldEZvcm1hdERlc2NyaXB0aW9uKG1fYXVkaW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVC
dWZmZXIoKSk7CiAgICAgICAgIGlmIChtX2hhc1ZpZGVvICYmICFtX3ZpZGVvRm9ybWF0RGVzY3Jp
cHRpb24pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTIzOCw3ICsyNDEsNyBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3JpdGVyKCkKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNlc3Npb25BdFNvdXJjZVRp
bWU6a0NNVGltZVplcm9dOworICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNlc3Npb25BdFNvdXJj
ZVRpbWU6UEFMOjprQ01UaW1lWmVyb107CiAKICAgICBhcHBlbmRDb21wcmVzc2VkU2FtcGxlQnVm
ZmVycygpOwogCkBAIC0zMDAsOCArMzAzLDggQEAgYm9vbCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6YXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVySWZQb3NzaWJsZSgpCiB2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVC
dWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogewogICAgIEFTU0VSVChbbV92aWRlb0Fz
c2V0V3JpdGVySW5wdXQgaXNSZWFkeUZvck1vcmVNZWRpYURhdGFdKTsKLSAgICBtX2xhc3RWaWRl
b1ByZXNlbnRhdGlvblRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFt
cChidWZmZXIpOwotICAgIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lID0gQ01TYW1wbGVCdWZmZXJH
ZXREZWNvZGVUaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRp
bWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7
CisgICAgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGVj
b2RlVGltZVN0YW1wKGJ1ZmZlcik7CiAgICAgbV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzID0gdHJ1
ZTsKIAogICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKSBhcHBlbmRTYW1wbGVCdWZm
ZXI6YnVmZmVyXTsKQEAgLTMxNCwxNyArMzE3LDE3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCkKIAogc3RhdGljIGlubGlu
ZSB2b2lkIGFwcGVuZEVuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uTWFya2VyKEFWQXNzZXRXcml0
ZXJJbnB1dCAqYXNzZXRXcml0ZXJJbnB1dCwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwg
Q01UaW1lIGRlY29kaW5nVGltZVN0YW1wKQogewotICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1p
bmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkZWNvZGlu
Z1RpbWVTdGFtcH07CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IFBBTDo6
a0NNVGltZUludmFsaWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZGVjb2RpbmdUaW1lU3RhbXB9
OwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyID0gTlVMTDsKLSAgICBhdXRvIGVycm9y
ID0gQ01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgdHJ1ZSwg
TlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5VTEwsICZidWZmZXIpOwor
ICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIE5VTEwsIHRydWUsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEsICZ0aW1pbmdJbmZvLCAw
LCBOVUxMLCAmYnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBhcHBlbmRFbmRz
UHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlciBmYWlsZWQgQ01TYW1wbGVCdWZmZXJDcmVhdGUg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHNhbXBs
ZUJ1ZmZlciA9IGFkb3B0Q0YoYnVmZmVyKTsKIAotICAgIENNU2V0QXR0YWNobWVudChzYW1wbGVC
dWZmZXIuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2Ft
cGxlRHVyYXRpb24sIGtDRkJvb2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9w
YWdhdGUpOworICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlci5nZXQoKSwgUEFM
OjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9u
LCBrQ0ZCb29sZWFuVHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKICAg
ICBpZiAoIVthc3NldFdyaXRlcklucHV0IGFwcGVuZFNhbXBsZUJ1ZmZlcjpzYW1wbGVCdWZmZXIu
Z2V0KCldKQogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZFNhbXBsZUJ1ZmZlciB0byB3cml0ZXIgaW5wdXQgZmFp
bGVkIik7CiB9CkBAIC0zODIsMTggKzM4NSwxOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjpmbHVzaENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKEZ1bmN0aW9uPHZvaWQoKT4mJgog
c3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNvcHlTYW1wbGVCdWZm
ZXJXaXRoQ3VycmVudFRpbWVTdGFtcChDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbEJ1ZmZlciwg
Q01UaW1lIHN0YXJ0VGltZSkKIHsKICAgICBDTUl0ZW1Db3VudCBjb3VudCA9IDA7Ci0gICAgQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIsIDAsIG5p
bCwgJmNvdW50KTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5KG9yaWdpbmFsQnVmZmVyLCAwLCBuaWwsICZjb3VudCk7CiAKICAgICBWZWN0b3I8Q01TYW1w
bGVUaW1pbmdJbmZvPiB0aW1lSW5mbyhjb3VudCk7Ci0gICAgQ01TYW1wbGVCdWZmZXJHZXRTYW1w
bGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIsIGNvdW50LCB0aW1lSW5mby5kYXRhKCks
ICZjb3VudCk7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50KTsKIAogICAg
IGZvciAoYXV0byBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgdGltZUluZm9baV0u
ZGVjb2RlVGltZVN0YW1wID0ga0NNVGltZUludmFsaWQ7CisgICAgICAgIHRpbWVJbmZvW2ldLmRl
Y29kZVRpbWVTdGFtcCA9IFBBTDo6a0NNVGltZUludmFsaWQ7CiAgICAgICAgIHRpbWVJbmZvW2ld
LnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IHN0YXJ0VGltZTsKICAgICB9CiAKICAgICBDTVNhbXBs
ZUJ1ZmZlclJlZiBuZXdCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01T
YW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBv
cmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1ZmZlcikpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1Rp
bWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZv
LmRhdGEoKSwgJm5ld0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFT
dHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNv
cHlXaXRoTmV3VGltaW5nIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CkBAIC00MDQsNyArNDA3LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkK
IHsKICAgICBpZiAoIW1fZmlyc3RWaWRlb0ZyYW1lKSB7CiAgICAgICAgIG1fZmlyc3RWaWRlb0Zy
YW1lID0gdHJ1ZTsKLSAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gQ01DbG9ja0dldFRpbWUo
Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CisgICAgICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9
IFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKICAg
ICAgICAgaWYgKHNhbXBsZS52aWRlb1JvdGF0aW9uKCkgIT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246Ok5vbmUgfHwgc2FtcGxlLnZpZGVvTWlycm9yZWQoKSkgewogICAgICAgICAgICAgbV92
aWRlb1RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVJvdGF0aW9uKHN0YXRpY19jYXN0
PGludD4oc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgKiBNX1BJIC8gMTgwKTsKICAgICAgICAgICAg
IGlmIChzYW1wbGUudmlkZW9NaXJyb3JlZCgpKQpAQCAtNDEyLDggKzQxNSw4IEBAIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2Ft
cGxlJiBzYW1wbGUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvIHNhbXBsZVRpbWUgPSBD
TVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwg
bV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICBzYW1wbGVUaW1lID0gQ01UaW1lQWRkKHNhbXBsZVRp
bWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOworICAgIGF1dG8gc2FtcGxlVGltZSA9IFBBTDo6
Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGlt
ZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgIHNhbXBsZVRpbWUgPSBQQUw6OkNN
VGltZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKICAgICBpZiAoYXV0
byBidWZmZXJXaXRoQ3VycmVudFRpbWUgPSBjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1l
U3RhbXAoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCBzYW1w
bGVUaW1lKSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihidWZm
ZXJXaXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQpAQCAtNDIyLDcgKzQyNSw3IEBAIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVk
aW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGlt
ZSwgc2FtcGxlQ291bnQpKQogICAgICAgICBtX2F1ZGlvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVm
ZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7Ci0gICAgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lID0g
Q01UaW1lQWRkKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgdG9DTVRpbWUoTWVkaWFUaW1lKHNh
bXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7CisgICAgbV9jdXJyZW50QXVk
aW9TYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVBZGQobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBQ
QUw6OnRvQ01UaW1lKE1lZGlhVGltZShzYW1wbGVDb3VudCwgZGVzY3JpcHRpb24uc2FtcGxlUmF0
ZSgpKSkpOwogfQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpmaW5pc2hlZEZs
dXNoaW5nU2FtcGxlcygpCkBAIC01MjMsMTAgKzUyNiwxMCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpjb21wbGV0ZUZldGNoRGF0YSgpCiB7CiAgICAgYXV0byBjdXJyZW50VGlt
ZUNvZGUgPSBtX3RpbWVDb2RlOwogICAgIGlmIChtX2hhc0F1ZGlvKQotICAgICAgICBtX3RpbWVD
b2RlID0gQ01UaW1lR2V0U2Vjb25kcyhtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUpOworICAgICAg
ICBtX3RpbWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1ZGlvU2FtcGxl
VGltZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gc2FtcGxlVGltZSA9IENNVGltZVN1YnRy
YWN0KENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRW
aWRlb1RpbWUpOwotICAgICAgICBtX3RpbWVDb2RlID0gQ01UaW1lR2V0U2Vjb25kcyhDTVRpbWVB
ZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbikpOworICAgICAgICBhdXRvIHNh
bXBsZVRpbWUgPSBQQUw6OkNNVGltZVN1YnRyYWN0KFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpD
TUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICAgICAg
bV90aW1lQ29kZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhQQUw6OkNNVGltZUFkZChzYW1wbGVU
aW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKSk7CiAgICAgfQogICAgIG1fZmV0Y2hEYXRhQ29t
cGxldGlvbkhhbmRsZXIodGFrZURhdGEoKSwgY3VycmVudFRpbWVDb2RlKTsKIH0KQEAgLTU1MCwx
MyArNTUzLDEzIEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjp0YWtlRGF0YSgpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnBhdXNl
KCkKIHsKLSAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gQ01UaW1lU3VidHJhY3QoQ01DbG9j
a0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7
Ci0gICAgbV9jdXJyZW50VmlkZW9EdXJhdGlvbiA9IENNVGltZUFkZChyZWNvcmRpbmdEdXJhdGlv
biwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CisgICAgYXV0byByZWNvcmRpbmdEdXJhdGlvbiA9
IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRI
b3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgIG1fY3VycmVudFZpZGVv
RHVyYXRpb24gPSBQQUw6OkNNVGltZUFkZChyZWNvcmRpbmdEdXJhdGlvbiwgbV9jdXJyZW50Vmlk
ZW9EdXJhdGlvbik7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnJlc3Vt
ZSgpCiB7Ci0gICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dl
dEhvc3RUaW1lQ2xvY2soKSk7CisgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpDTUNsb2Nr
R2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogfQogCiBjb25zdCBTdHJp
bmcmIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjptaW1lVHlwZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IDc2ZDU2ZDdi
OGQxM2M3MmVhMzlmYzM0OTlkMTc5ODk5NzE3ZjBlNzguLmQwNzYwZjA3ZTM3MDgxMjdmOWRlMmVm
YWY5MmYwZTA3NzJmZDM4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yLm1tCkBAIC0zNCwxMiArMzQsMTEgQEAKICNpbXBvcnQgPFZpZGVvVG9vbGJv
eC9WVENvbXByZXNzaW9uU2Vzc2lvbi5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAK
KyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NmL1Zp
ZGVvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKLQogc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoU3RyaW5nIG1pbWVUeXBlLCBD
TUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVj
dCkKIHsKICAgICBhdXRvIHByb2ZpbGUgPSBQcm9maWxlOjpCYXNlbGluZTsKQEAgLTY5LDcgKzY4
LDcgQEAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IoQ01WaWRlb0NvZGVjVHlwZSBvdXRwdXQKIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgaWYgKG1fdnRTZXNzaW9u
KSB7Ci0gICAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShtX3Z0U2Vzc2lvbi5n
ZXQoKSk7CisgICAgICAgIFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRT
ZXNzaW9uLmdldCgpKTsKICAgICAgICAgbV92dFNlc3Npb24gPSBudWxscHRyOwogICAgIH0KIH0K
QEAgLTc3LDEyICs3NiwxMiBAQCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCog
Y2FsbGJhY2tPYmplY3QpCiB7CiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBvdXRwdXRCdWZmZXJRdWV1
ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVm
ZmVycygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6
OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFMOjpDTUJ1ZmZl
clF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZm
ZXJRdWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgdW5hYmxlIHRvIGNyZWF0ZSBidWZmZXIgcXVldWUgJWQi
LCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9vdXRwdXRCdWZm
ZXJRdWV1ZSA9IG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJp
Z2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3Qs
IGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8s
IE5VTEwpOworICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVm
ZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVU
cmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKIAog
ICAgIG1faXNFbmNvZGluZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBAIC05NiwxMCArOTUs
MTAgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNldEJpdHNQZXJTZWNvbmQo
dW5zaWduZWQgYml0UmF0ZSkKIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpmaW5p
c2goKQogewogICAgIG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzXSB7
Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRlRnJhbWVz
KG1fdnRTZXNzaW9uLmdldCgpLCBrQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8gZXJyb3Ig
PSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92dFNlc3Npb24uZ2V0
KCksIFBBTDo6a0NNVGltZUludmFsaWQpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihl
cnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVz
c2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAotICAg
ICAgICBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCkpOworICAgICAgICBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRh
dGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1
ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAogICAgICAg
ICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKQEAgLTExNCw3ICsxMTMsNyBAQCB2b2lkIFZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6dmlkZW9Db21wcmVzc2lvbkNhbGxiYWNrKHZvaWQgKnJlZkNv
biwgdm9pZCosCiAKICAgICBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgKmNvbXByZXNzb3Ig
PSBzdGF0aWNfY2FzdDxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IqPihyZWZDb24pOwogCi0g
ICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVFbnF1ZXVlKGNvbXByZXNzb3ItPm1fb3V0cHV0
QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01CdWZm
ZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVm
ZmVyKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiB9CiAKQEAgLTEzMCw1MyArMTI5LDUzIEBAIENGU3RyaW5nUmVmIFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dnRQcm9maWxlTGV2ZWwoKSBjb25zdAogewogICAgIHN3
aXRjaCAobV9wcm9maWxlKSB7CiAgICAgY2FzZSBQcm9maWxlOjpCYXNlbGluZToKLSAgICAgICAg
cmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbDsKKyAgICAgICAg
cmV0dXJuIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOwogICAg
IGNhc2UgUHJvZmlsZTo6SGlnaDoKLSAgICAgICAgcmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9IMjY0
X0hpZ2hfQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2
NF9IaWdoX0F1dG9MZXZlbDsKICAgICBjYXNlIFByb2ZpbGU6Ok1haW46Ci0gICAgICAgIHJldHVy
biBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbDsKKyAgICAgICAgcmV0dXJuIFBB
TDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWw7CiAgICAgfQogfQogCiBib29s
IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24pCiB7Ci0gICAgQ01WaWRl
b0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVu
c2lvbnMoZm9ybWF0RGVzY3JpcHRpb24pOworICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lv
bnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0RGVz
Y3JpcHRpb24pOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJT
cGVjaWZpY2F0aW9ucyA9IG5pbDsKICNlbHNlCi0gICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVyU3Bl
Y2lmaWNhdGlvbnMgPSBAeyhfX2JyaWRnZSBOU1N0cmluZyAqKWtWVFZpZGVvRW5jb2RlclNwZWNp
ZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlcjpAWUVTfTsKKyAg
ICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9IEB7KF9fYnJpZGdlIE5TU3Ry
aW5nICopUEFMOjprVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNj
ZWxlcmF0ZWRWaWRlb0VuY29kZXI6QFlFU307CiAjZW5kaWYKIAogICAgIFZUQ29tcHJlc3Npb25T
ZXNzaW9uUmVmIHZ0U2Vzc2lvbjsKLSAgICBhdXRvIGVycm9yID0gVlRDb21wcmVzc2lvblNlc3Np
b25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9u
cy5oZWlnaHQsIG1fb3V0cHV0Q29kZWNUeXBlLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKWVu
Y29kZXJTcGVjaWZpY2F0aW9ucywgTlVMTCwgTlVMTCwgdmlkZW9Db21wcmVzc2lvbkNhbGxiYWNr
LCB0aGlzLCAmdnRTZXNzaW9uKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9u
U2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1l
bnNpb25zLmhlaWdodCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlS
ZWYpZW5jb2RlclNwZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2Fs
bGJhY2ssIHRoaXMsICZ2dFNlc3Npb24pOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBW
VENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgcmV0dXJuIE5POwogICAgIH0KICAgICBtX3Z0U2Vzc2lvbiA9IGFkb3B0Q0YodnRTZXNzaW9u
KTsKIAotICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCks
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJvb2xlYW5UcnVlKTsKKyAg
ICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJvb2xlYW5UcnVlKTsKICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9SZWFsVGltZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBlcnJvciA9IHNldENvbXBy
ZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblBy
b3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgbV9tYXhLZXlGcmFtZUludGVy
dmFsRHVyYXRpb24pOworICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHko
bV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlG
cmFtZUludGVydmFsRHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uKTsKICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
Ci0gICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5n
ZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSwgbV9leHBl
Y3RlZEZyYW1lUmF0ZSk7CisgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0
eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVj
dGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRT
ZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1l
UmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAotICAgIGVycm9yID0gVlRTZXNzaW9uU2V0
UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJv
ZmlsZUxldmVsLCB2dFByb2ZpbGVMZXZlbCgpKTsKKyAgICBlcnJvciA9IFZUU2Vzc2lvblNldFBy
b3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlf
UHJvZmlsZUxldmVsLCB2dFByb2ZpbGVMZXZlbCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9m
aWxlTGV2ZWwgZmFpbGVkIHdpdGggJWQgZm9yIHByb2ZpbGUgJWQiLCBlcnJvciwgbV9wcm9maWxl
KTsKICAgICAgICAgaWYgKG1fcHJvZmlsZSAhPSBQcm9maWxlOjpCYXNlbGluZSkgewotICAgICAg
ICAgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIGtWVFByb2ZpbGVMZXZlbF9IMjY0
X0Jhc2VsaW5lX0F1dG9MZXZlbCk7CisgICAgICAgICAgICBlcnJvciA9IFZUU2Vzc2lvblNldFBy
b3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlf
UHJvZmlsZUxldmVsLCBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZl
bCk7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0s
ICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZmFpbGVkIHdpdGggJWQgZm9yIGRlZmF1
bHQgcHJvZmlsZSIsIGVycm9yKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChtX291dHB1
dEJpdFJhdGUpIHsKLSAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0
eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0
UmF0ZSwgKm1fb3V0cHV0Qml0UmF0ZSk7CisgICAgICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25T
ZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgKm1fb3V0cHV0Qml0UmF0ZSk7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2
ZXJhZ2VCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgIH0KIAotICAgIGVycm9y
ID0gVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMobV92dFNlc3Npb24u
Z2V0KCkpOworICAgIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0Vu
Y29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYo
ZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJl
c3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OwogCiAgICAgcmV0dXJuIFlFUzsKQEAgLTE4NSwxNCArMTg0LDE0IEBAIGJvb2wgVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvCiB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBs
ZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgaWYgKCFtX3Z0U2Vzc2lv
bikgewotICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Npb24oQ01TYW1wbGVCdWZmZXJH
ZXRGb3JtYXREZXNjcmlwdGlvbihidWZmZXIpKSkKKyAgICAgICAgaWYgKCFpbml0Q29tcHJlc3Np
b25TZXNzaW9uKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihidWZmZXIp
KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0g
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihidWZmZXIpOwotICAgIGF1dG8gcHJlc2VudGF0
aW9uVGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVm
ZmVyKTsKLSAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZm
ZXIpOwotICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lKG1f
dnRTZXNzaW9uLmdldCgpLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJh
dGlvbiwgTlVMTCwgdGhpcywgTlVMTCk7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihidWZmZXIpOworICAgIGF1dG8gcHJlc2VudGF0aW9u
VGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChi
dWZmZXIpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRp
b24oYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkVu
Y29kZUZyYW1lKG1fdnRTZXNzaW9uLmdldCgpLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGlt
ZVN0YW1wLCBkdXJhdGlvbiwgTlVMTCwgdGhpcywgTlVMTCk7CiAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZU
Q29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiB9
CiAKQEAgLTIwOCwxMiArMjA3LDEyIEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogCiBDTVNhbXBsZUJ1
ZmZlclJlZiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZl
cigpCiB7Ci0gICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4o
Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICBy
ZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVy
UXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CiB9CiAKIFJldGFpblB0
cjxDTVNhbXBsZUJ1ZmZlclJlZj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp0YWtlT3V0
cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJS
ZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fb3V0
cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1
ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJl
dGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKIH0KIAogdW5zaWduZWQgVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpiaXRSYXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNw
cAppbmRleCBjM2ZlODIxYjljNTIwYzkyMjRlNWRlODg4ZTUxOGMzMTk2ZjMxY2I1Li5hMDI0MDg0
YzI0ZTZkMzYzOTYwOGE2NDY1MmVjYzVkNmQ5ZWZhYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3Bw
CkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIuaCIKICNlbmRpZgogCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+
CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTEyMyw5ICsxMjQsOSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0KCkKICAgICBpZiAoIW1fcmVtb3RlSU9Vbml0KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvT3V0cHV0VW5pdFN0
YXJ0KG1fcmVtb3RlSU9Vbml0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb091
dHB1dFVuaXRTdGFydChtX3JlbW90ZUlPVW5pdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0
YXJ0IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKLSAg
ICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOworICAg
ICAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsK
ICAgICAgICAgbV9yZW1vdGVJT1VuaXQgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMTM5LDExICsxNDAsMTEgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1f
aXNTdGFydGVkKSB7Ci0gICAgICAgIEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJT1VuaXQp
OworICAgICAgICBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJT1VuaXQpOwogICAg
ICAgICBtX2lzU3RhcnRlZCA9IGZhbHNlOwogICAgIH0KIAotICAgIEF1ZGlvQ29tcG9uZW50SW5z
dGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKKyAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5z
dGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKICAgICBtX3JlbW90ZUlPVW5pdCA9IG51bGxw
dHI7CiB9CiAKQEAgLTE2MywxNCArMTY0LDE0IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogICAg
IGlvVW5pdERlc2NyaXB0aW9uLmNvbXBvbmVudFN1YlR5cGUgPSBrQXVkaW9Vbml0U3ViVHlwZV9E
ZWZhdWx0T3V0cHV0OwogI2VuZGlmCiAKLSAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9
IEF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKKyAg
ICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4
dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChpb0NvbXBvbmVudCk7
CiAgICAgaWYgKCFpb0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJS
VEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0IHVuYWJsZSB0byBmaW5kIHJlbW90ZSBJTyB1bml0IGNvbXBvbmVudCIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBlcnJvciA9IEF1ZGlvQ29tcG9uZW50SW5zdGFu
Y2VOZXcoaW9Db21wb25lbnQsICZyZW1vdGVJT1VuaXQpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6
OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQsICZyZW1vdGVJT1VuaXQpOwog
ICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVu
YWJsZSB0byBvcGVuIHZwaW8gdW5pdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMTc4LDcgKzE3OSw3IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBVSW50MzIgcGFyYW0gPSAxOwotICAgIGVycm9yID0gQXVk
aW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlf
RW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICZwYXJhbSwgc2l6ZW9mKHBhcmFt
KSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwg
a0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0
LCAwLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklu
dGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IG91
dHB1dCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTg3LDcgKzE4
OCw3IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlm
IChtX2RldmljZUlEKSB7Ci0gICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVt
b3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlv
VW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7Cisg
ICAgICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtB
dWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xv
YmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKICAgICAgICAgaWYgKGVy
cm9yKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0
byBzZXQgdW5pdCBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIChpbnQpbV9kZXZpY2VJ
RCwgKGludCllcnJvciwgKGNoYXIqKSZlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
OTYsMTQgKzE5NywxNCBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKICNlbmRpZgogCiAgICAgQVVS
ZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6cmVuZGVyaW5nQ2FsbGJhY2ssIHRoaXMgfTsKLSAgICBl
cnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJh
Y2ssIHNpemVvZihjYWxsYmFjaykpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9w
ZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywg
a0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsK
ICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1
bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVycm9yID0gJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihvdXRw
dXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKTsKLSAgICBlcnJvciAgPSBBdWRpb1Vu
aXRHZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3Jt
YXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURl
c2NyaXB0aW9uKCksICZzaXplKTsKKyAgICBlcnJvciAgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3Bl
cnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlv
VW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24o
KSwgJnNpemUpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRl
QXVkaW9Vbml0IHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIs
IGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjExLDEzICsyMTIsMTMgQEAgdm9pZCBMb2Nh
bEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1Vu
aXRJZk5lZWRlZCgpCiAKICAgICBvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigp
Lm1TYW1wbGVSYXRlID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgp
OwogCi0gICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRp
b1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJm91
dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIHNpemVvZihvdXRwdXREZXNjcmlw
dGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNl
dFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3Jp
cHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkpKTsK
ICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1
bmFibGUgdG8gc2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBlcnJvciA9IEF1ZGlvVW5pdEluaXRpYWxpemUo
cmVtb3RlSU9Vbml0KTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1v
dGVJT1VuaXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRl
QXVkaW9Vbml0IEF1ZGlvVW5pdEluaXRpYWxpemUoKSBmYWlsZWQsIGVycm9yID0gJWQiLCBlcnJv
cik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCA0
Yjc4OGFlNWFhODdiNzI5ZTViZGNmOWNmNzEzODEyYzY3NzBhMzI1Li40ODVlNGNlNGM2ZDhjMzI0
NWI3NzlkNjFhNjc2Y2JiYjk3YmFkOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1t
CkBAIC01MSw3ICs1MSw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBAaW50
ZXJmYWNlIFdlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVyIDogTlNPYmplY3Q8QVZD
YXB0dXJlVmlkZW9EYXRhT3V0cHV0U2FtcGxlQnVmZmVyRGVsZWdhdGU+IHsKICAgICBBVlZpZGVv
Q2FwdHVyZVNvdXJjZSogbV9jYWxsYmFjazsKQEAgLTM1MSwxMCArMzUwLDEwIEBAIHZvaWQgQVZW
aWRlb0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKCkKICAgICAgICAg
ICAgIGlmIChmcmFtZVJhdGVSYW5nZSkgewogICAgICAgICAgICAgICAgIG1fY3VycmVudEZyYW1l
UmF0ZSA9IGNsYW1wVG8obV9jdXJyZW50RnJhbWVSYXRlLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFt
ZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lUmF0ZSk7CiAKLSAgICAgICAgICAgICAgICBh
dXRvIGZyYW1lRHVyYXRpb24gPSBDTVRpbWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7Ci0g
ICAgICAgICAgICAgICAgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRl
UmFuZ2UubWluRnJhbWVEdXJhdGlvbikgPCAwKQorICAgICAgICAgICAgICAgIGF1dG8gZnJhbWVE
dXJhdGlvbiA9IFBBTDo6Q01UaW1lTWFrZSgxLCBtX2N1cnJlbnRGcmFtZVJhdGUpOworICAgICAg
ICAgICAgICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRl
UmFuZ2UubWluRnJhbWVEdXJhdGlvbikgPCAwKQogICAgICAgICAgICAgICAgICAgICBmcmFtZUR1
cmF0aW9uID0gZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbjsKLSAgICAgICAgICAgICAg
ICBlbHNlIGlmIChDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1h
eEZyYW1lRHVyYXRpb24pID4gMCkKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChQQUw6OkNNVGlt
ZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlvbikg
PiAwKQogICAgICAgICAgICAgICAgICAgICBmcmFtZUR1cmF0aW9uID0gZnJhbWVSYXRlUmFuZ2Uu
bWF4RnJhbWVEdXJhdGlvbjsKIAogICAgICAgICAgICAgICAgIEFMV0FZU19MT0dfSUYobG9nZ2Vy
UHRyKCksIExPR0lERU5USUZJRVIsICJzZXR0aW5nIGZyYW1lIHJhdGUgdG8gIiwgbV9jdXJyZW50
RnJhbWVSYXRlLCAiLCBkdXJhdGlvbiAiLCBQQUw6OnRvTWVkaWFUaW1lKGZyYW1lRHVyYXRpb24p
KTsKQEAgLTQxOCw3ICs0MTcsNyBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cFNl
c3Npb24oKQogCiAgICAgbV9zZXNzaW9uID0gYWRvcHROUyhbUEFMOjphbGxvY0FWQ2FwdHVyZVNl
c3Npb25JbnN0YW5jZSgpIGluaXRdKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIEFW
Q2FwdHVyZVNlc3Npb25TZXRBdXRob3JpemVkVG9Vc2VDYW1lcmFJbk11bHRpcGxlRm9yZWdyb3Vu
ZEFwcExheW91dChtX3Nlc3Npb24uZ2V0KCkpOworICAgIFBBTDo6QVZDYXB0dXJlU2Vzc2lvblNl
dEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5kQXBwTGF5b3V0KG1fc2Vz
c2lvbi5nZXQoKSk7CiAjZW5kaWYKICAgICBbbV9zZXNzaW9uIGFkZE9ic2VydmVyOm1fb2JqY09i
c2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJydW5uaW5nIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNl
cnZpbmdPcHRpb25OZXcgY29udGV4dDoodm9pZCAqKW5pbF07CiAKQEAgLTQzNCw2ICs0MzMsOCBA
QCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24oKQogCiBBVkZyYW1lUmF0
ZVJhbmdlKiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkZvckZyYW1lUmF0ZShk
b3VibGUgcmF0ZSkKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1FX0NP
TVBBUkVfSU5MSU5FCisKICAgICBBVkZyYW1lUmF0ZVJhbmdlICpiZXN0RnJhbWVSYXRlUmFuZ2Ug
PSBuaWw7CiAgICAgZm9yIChBVkZyYW1lUmF0ZVJhbmdlICpmcmFtZVJhdGVSYW5nZSBpbiBbW2Rl
dmljZSgpIGFjdGl2ZUZvcm1hdF0gdmlkZW9TdXBwb3J0ZWRGcmFtZVJhdGVSYW5nZXNdKSB7CiAg
ICAgICAgIGlmIChmcmFtZVJhdGVSYW5nZUluY2x1ZGVzUmF0ZSh7IFtmcmFtZVJhdGVSYW5nZSBt
aW5GcmFtZVJhdGVdLCBbZnJhbWVSYXRlUmFuZ2UgbWF4RnJhbWVSYXRlXSB9LCByYXRlKSkgewpA
QCAtNTk4LDcgKzU5OSw3IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJl
c2V0cygpCiAgICAgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+IHByZXNldHM7CiAgICAgZm9yIChB
VkNhcHR1cmVEZXZpY2VGb3JtYXQqIGZvcm1hdCBpbiBbZGV2aWNlKCkgZm9ybWF0c10pIHsKIAot
ICAgICAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXQuZm9ybWF0RGVzY3JpcHRpb24pOworICAgICAgICBD
TVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CiAgICAgICAgIEludFNp
emUgc2l6ZSA9IHsgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQgfTsKICAgICAg
ICAgYXV0byBpbmRleCA9IHByZXNldHMuZmluZE1hdGNoaW5nKFsmc2l6ZV0oYXV0byYgcHJlc2V0
KSB7CiAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PSBwcmVzZXQtPnNpemU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKaW5kZXggNmUyNmM4ZmE0ZWNkMzBhYzFlNTJmZWMzOGFm
NTdkMGUzM2Q5YmMyNC4uZTE1NTQ2MmY1MTgxNTg4YmEzYmM5NDU2YzZiNmFlOWFmZTIxYjVjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcApAQCAtMTksNyArMTksNyBAQAog
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
KElOQ0xVRElORyBORUdMSUdFUEFMOjpOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIApAQCAtMzYsNyArMzYsNiBA
QAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29sIGdldERldmljZUluZm8o
dWludDMyX3QgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgU3RyaW5n
JiBwZXJzaXN0ZW50SUQsIFN0cmluZyYgbGFiZWwpCiB7CkBAIC0yMDUsNyArMjA0LDcgQEAgUmV0
YWluUHRyPENNQ2xvY2tSZWY+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmljZUNsb2NrKCkK
ICAgICAgICAgcmV0dXJuIG1fZGV2aWNlQ2xvY2s7CiAKICAgICBDTUNsb2NrUmVmIGNsb2NrOwot
ICAgIGF1dG8gZXJyID0gQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHBlcnNpc3RlbnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZjbG9jayk7CisgICAg
YXV0byBlcnIgPSBQQUw6OkNNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBwZXJzaXN0ZW50SWQoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAmY2xvY2spOwogICAg
IGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlv
Q2FwdHVyZURldmljZTo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKCVwKSBDTUF1ZGlvRGV2aWNl
Q2xvY2tDcmVhdGUgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIs
IChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMDNmM2U2MmEyNjM3YzNlOTAxYmFmNjk0ZDNjNTI2NWVm
YTc0YWViMi4uZjRiMzY1ODk0ZDM3Y2Q5NGZmMjFiN2ZiNTRmZGIyNjQxZjM2ZmU5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDgsNiArNDgsOCBAQAogI2luY2x1
ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xi
b3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTU3LDcgKzU5LDYgQEAKICNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgUExBVEZPUk0oTUFD
KQogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VG
YWN0b3J5OjpzaW5nbGV0b24oKQpAQCAtMjAzLDcgKzIwNCw3IEBAIE9TU3RhdHVzIENvcmVBdWRp
b1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICBtX0RUU0NvbnZlcnNpb25SYXRpbyA9
IDFlLTkgKiBzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5udW1lcikgLyBzdGF0aWNf
Y2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5kZW5vbSk7CiAKICAgICBBdWRpb0NvbXBvbmVudERl
c2NyaXB0aW9uIGlvVW5pdERlc2NyaXB0aW9uID0geyBrQXVkaW9Vbml0VHlwZV9PdXRwdXQsIGtB
dWRpb1VuaXRTdWJUeXBlX1ZvaWNlUHJvY2Vzc2luZ0lPLCBrQXVkaW9Vbml0TWFudWZhY3R1cmVy
X0FwcGxlLCAwLCAwIH07Ci0gICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25lbnQgPSBBdWRpb0Nv
bXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7CisgICAgQXVkaW9D
b21wb25lbnQgaW9Db21wb25lbnQgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0
ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKICAgICBBU1NFUlQoaW9Db21wb25lbnQpOwogICAgIGlm
ICghaW9Db21wb25lbnQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBmaW5kIHZwaW8g
dW5pdCBjb21wb25lbnQiLCB0aGlzKTsKQEAgLTIxMiw3ICsyMTMsNyBAQCBPU1N0YXR1cyBDb3Jl
QXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICNpZiAhTE9HX0RJU0FCTEVECiAg
ICAgQ0ZTdHJpbmdSZWYgbmFtZSA9IG51bGxwdHI7Ci0gICAgQXVkaW9Db21wb25lbnRDb3B5TmFt
ZShpb0NvbXBvbmVudCwgJm5hbWUpOworICAgIFBBTDo6QXVkaW9Db21wb25lbnRDb3B5TmFtZShp
b0NvbXBvbmVudCwgJm5hbWUpOwogICAgIGlmIChuYW1lKSB7CiAgICAgICAgIG1faW9Vbml0TmFt
ZSA9IG5hbWU7CiAgICAgICAgIENGUmVsZWFzZShuYW1lKTsKQEAgLTIyMCw3ICsyMjEsNyBAQCBP
U1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgfQogI2Vu
ZGlmCiAKLSAgICBhdXRvIGVyciA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25l
bnQsICZtX2lvVW5pdCk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFu
Y2VOZXcoaW9Db21wb25lbnQsICZtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlv
VW5pdCglcCkgdW5hYmxlIHRvIG9wZW4gdnBpbyB1bml0LCBlcnJvciAlZCAoJS40cykiLCB0aGlz
LCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjI4LDEz
ICsyMjksMTMgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQo
KQogCiAgICAgaWYgKCFlbmFibGVFY2hvQ2FuY2VsbGF0aW9uKCkpIHsKICAgICAgICAgdWludDMy
X3QgcGFyYW0gPSAwOwotICAgICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5p
dCwga0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJvY2Vzc2luZ0VuYWJsZUFHQywga0F1ZGlvVW5p
dFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgICAg
IGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9w
ZXJ0eV9Wb2ljZVByb2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlu
cHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIGF1dG9tYXRpYyBnYWluIGNvbnRy
b2wsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAg
ICAgICAgICByZXR1cm4gZXJyOwogICAgICAgICB9CiAgICAgICAgIHBhcmFtID0gMTsKLSAgICAg
ICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9wZXJ0
eV9CeXBhc3NWb2ljZVByb2Nlc3NpbmcsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVz
LCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfQnlwYXNzVm9pY2VQcm9jZXNz
aW5nLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFy
YW0pKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0
byBzZXQgdnBpbyB1bml0IGVjaG8gY2FuY2VsbGF0aW9uLCBlcnJvciAlZCAoJS40cykiLCB0aGlz
LCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTI0
Myw3ICsyNDQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVpbnQzMl90IHBhcmFtID0gMTsK
LSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5p
dFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlucHV0QnVzLCAmcGFy
YW0sIHNpemVvZihwYXJhbSkpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHko
bV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNj
b3BlX0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKICAgICBpZiAoZXJy
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVu
aXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gZW5hYmxlIHZwaW8gdW5pdCBpbnB1dCwg
ZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAg
cmV0dXJuIGVycjsKQEAgLTI1NSw3ICsyNTYsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRV
bml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAot
ICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0
UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMs
ICZtX2NhcHR1cmVEZXZpY2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmljZUlEKSk7CisgICAgZXJy
ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFBy
b3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAm
bV9jYXB0dXJlRGV2aWNlSUQsIHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCkpOwogICAgIGlmIChl
cnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IGNhcHR1cmUg
ZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KW1fY2FwdHVyZURldmlj
ZUlELCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjcw
LDcgKzI3MSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0
KCkKICAgICBpZiAoZXJyKQogICAgICAgICByZXR1cm4gZXJyOwogCi0gICAgZXJyID0gQXVkaW9V
bml0SW5pdGlhbGl6ZShtX2lvVW5pdCk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRJbml0aWFs
aXplKG1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSBBdWRpb1Vu
aXRJbml0aWFsaXplKCkgZmFpbGVkLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwg
KGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjkyLDcgKzI5Myw3IEBAIHZv
aWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6dW5kdWNrKCkKIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKIHsKICAgICBBVVJlbmRlckNhbGxiYWNr
U3RydWN0IGNhbGxiYWNrID0geyBtaWNyb3Bob25lQ2FsbGJhY2ssIHRoaXMgfTsKLSAgICBhdXRv
IGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJv
cGVydHlfU2V0SW5wdXRDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMs
ICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlv
VW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfU2V0SW5w
dXRDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZjYWxsYmFjaywg
c2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJv
YyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgbWljIHByb2MsIGVycm9yICVkICglLjRzKSIs
IHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0z
MDEsMTQgKzMwMiwxNCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVN
aWNyb3Bob25lUHJvYygpCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1pY3JvcGhv
bmVQcm9jRm9ybWF0ID0geyB9OwogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2YobWljcm9waG9u
ZVByb2NGb3JtYXQpOwotICAgIGVyciA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBr
QXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBp
bnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7CisgICAgZXJyID0gUEFMOjpB
dWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zv
cm1hdCwgJnNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXAp
IHVuYWJsZSB0byBnZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRo
aXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQog
CiAgICAgbWljcm9waG9uZVByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7Ci0g
ICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0
eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9w
aG9uZVByb2NGb3JtYXQsIHNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVy
dHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRT
Y29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsIHNpemUpOwogICAg
IGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlv
U2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXApIHVuYWJsZSB0byBzZXQgb3V0
cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hh
ciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0zMjMsNyArMzI0LDcgQEAgT1NTdGF0
dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQogT1NTdGF0
dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoKQogewogICAgIEFV
UmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IHNwZWFrZXJDYWxsYmFjaywgdGhpcyB9
OwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRw
dXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgYXV0byBlcnIgPSBQQUw6
OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVu
ZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmY2FsbGJhY2ss
IHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2Mo
JXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgJWQgKCUuNHMp
IiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAg
LTMzMiwxNCArMzMzLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3Vy
ZVNwZWFrZXJQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gc3BlYWtlclBy
b2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihzcGVha2VyUHJvY0Zv
cm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVz
LCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEdl
dFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9ybWF0LCAmc2l6ZSk7
CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3Jl
QXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRvIGdldCBp
bnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAogICAgIHNwZWFrZXJQcm9j
Rm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOwotICAgIGVyciA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9ybWF0LCBzaXplKTsK
KyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0
UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywg
JnNwZWFrZXJQcm9jRm9ybWF0LCBzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFr
ZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICgl
LjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7
CkBAIC00NTksNyArNDYwLDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0OjpjbGVhbnVwQXVk
aW9Vbml0KCkKICAgICB9CiAKICAgICBpZiAobV9pb1VuaXQpIHsKLSAgICAgICAgQXVkaW9Db21w
b25lbnRJbnN0YW5jZURpc3Bvc2UobV9pb1VuaXQpOworICAgICAgICBQQUw6OkF1ZGlvQ29tcG9u
ZW50SW5zdGFuY2VEaXNwb3NlKG1faW9Vbml0KTsKICAgICAgICAgbV9pb1VuaXQgPSBudWxscHRy
OwogICAgIH0KIApAQCAtNDc3LDcgKzQ3OCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAo
bV9pb1VuaXRTdGFydGVkKSB7Ci0gICAgICAgIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9p
b1VuaXQpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQp
OwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJS
VEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1ZGlvVW5pdCglcCkgQXVkaW9P
dXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVy
ciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTQ5MCw3ICs0OTEs
NyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1ZGlvVW5pdCgp
CiAgICAgICAgIHJldHVybiBlcnI7CiAKICAgICBpZiAobV9pb1VuaXRTdGFydGVkKSB7Ci0gICAg
ICAgIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKKyAgICAgICAgZXJyID0g
UEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAgICAgIGlmIChlcnIpIHsK
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVu
aXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1dFVuaXRTdGFydCBmYWlsZWQg
d2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAg
ICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTUxNCw3ICs1MTUsNyBAQCBPU1N0YXR1cyBDb3JlQXVk
aW9TaGFyZWRVbml0OjpzdGFydEludGVybmFsKCkKIAogICAgIHVuZHVjaygpOwogCi0gICAgZXJy
ID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOworICAgIGVyciA9IFBBTDo6QXVkaW9P
dXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnQoJXApIEF1ZGlv
T3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQp
ZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIGNsZWFudXBBdWRpb1VuaXQoKTsKQEAgLTU1MSw3
ICs1NTIsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0b3BJbnRlcm5hbCgpCiAgICAg
aWYgKCFtX2lvVW5pdCB8fCAhbV9pb1VuaXRTdGFydGVkKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBhdXRvIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOworICAgIGF1dG8gZXJy
ID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0
b3AoJXApIEF1ZGlvT3V0cHV0VW5pdFN0b3AgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwg
dGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTY1LDcg
KzU2Niw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmlj
ZSh1aW50MzJfdCogZGV2aWNlSUQpCiAgICAgQVNTRVJUKG1faW9Vbml0KTsKIAogICAgIFVJbnQz
MiBwcm9wZXJ0eVNpemUgPSBzaXplb2YoKmRldmljZUlEKTsKLSAgICBhdXRvIGVyciA9IEF1ZGlv
VW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVu
dERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsIGRldmljZUlELCAmcHJv
cGVydHlTaXplKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0
U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0eVNpemUpOwogICAgIGlm
IChlcnIpCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSglcCkgdW5hYmxlIHRvIGdldCBkZWZhdWx0IGlucHV0
IGRldmljZSBJRCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJy
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IDNmNGU0
ZGNmNDJjMGZhOTNlZjlhYjYyZGQyMmE5N2M1MTM4NzA2NjMuLjU4MmY0YjI2Y2YxMThjNDk3MWFj
ZDdkMTgzMDkyMTk3ZTFlNzY4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYS5jcHAKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBDYXB0dXJl
U291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
b2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5kZXggYWE3ZmYwODc1MDU0MjU4MmYxZWY5
MTY3YTgxZTZmYjVhNTQ4ZjE1Mi4uYjg2YjA1ZThjNjY1YmMyZTgwNWYyN2IzOGIxYTRmZDMzMTNm
OTJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAgLTQ0LDE0ICs0NCwxMCBAQAog
I2ltcG9ydCA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CiAjaW1wb3J0IDxDb3JlQXVk
aW8vQ29yZUF1ZGlvVHlwZXMuaD4KIAorI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRM
aW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotU09GVF9MSU5L
X0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi0KLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlv
Q29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5E
ZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVyKSwg
KGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRlcikp
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBp
bmxpbmUgc2l6ZV90IGFsaWduVG8xNkJ5dGVzKHNpemVfdCBzaXplKQogewpAQCAtMjIxLDcgKzIx
Nyw3IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUoKQogICAgIG1fYXVk
aW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KG1fc3RyZWFtRm9y
bWF0LCBtX21heGltaXVtRnJhbWVDb3VudCk7CiAKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uOwotICAgIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShO
VUxMLCAmbV9zdHJlYW1Gb3JtYXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXREZXNj
cmlwdGlvbik7CisgICAgUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoTlVMTCwg
Jm1fc3RyZWFtRm9ybWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0RGVzY3JpcHRp
b24pOwogICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0aW9u
KTsKIAogICAgIHNpemVfdCBzYW1wbGVDb3VudCA9IDIgKiByYXRlOwpAQCAtMjQzLDcgKzIzOSw3
IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnModWludDMyX3Qg
ZnJhbWVDb3VudCkKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9m
b3JtYXREZXNjcmlwdGlvbik7CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFrZSht
X3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOworICAgIENNVGltZSBzdGFydFRpbWUgPSBQ
QUw6OkNNVGltZU1ha2UobV9zYW1wbGVzRW1pdHRlZCwgc2FtcGxlUmF0ZSgpKTsKICAgICBtX3Nh
bXBsZXNFbWl0dGVkICs9IGZyYW1lQ291bnQ7CiAKICAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUo
UEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpLCAqbV9hdWRpb0J1ZmZlckxpc3QsIENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbihtX3N0cmVhbUZvcm1hdCksIGZyYW1lQ291bnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGIwNTlhMzI1MWQ4Yjk2NTdiYTkw
MTRjNDRmODA2M2FmODI3YjFkNDMuLmI2MGI4ODY2ZmJiODA0ODhjMjNmZTJiNTc2OTJiMzBmODdl
Mzg2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUx
LDcgKzUxLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBDYXB0dXJlU291cmNlT3JF
cnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZUNvY29hLmNwcAppbmRleCA1ODA5NGIzNDIwZjM5YzhmMjZjMTc3N2EyYWVkMDEyM2RiZWEy
NjI4Li5hYTY5NmFkZGY3Zjc3OTI1OTE1Mjk1ODNjMjE2MGMxMjQ5MTFkNTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTQwLDcg
KzQwLDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUmVmPFJlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjcmVhdGUocnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBhdWRpb1RyYWNrLCBT
dHJpbmcmJiBhdWRpb1RyYWNrSWQpCiB7CkBAIC0xMzEsNyArMTMwLDcgQEAgdm9pZCBSZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKGNvbnN0IHZvaWQqIGF1ZGlvRGF0YSwg
aW50IGJpdHNQZXIKICAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSAwOwogICAgIH0KIAot
ICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fbnVtYmVyT2ZGcmFtZXMsIHNhbXBs
ZVJhdGUpOworICAgIENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1iZXJP
ZkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFU
aW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyArPSBudW1iZXJPZkZyYW1lczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmlu
ZGV4IDhkZjhmNjhmNmY3MjQwNDc1ZGJkNDMyMzA2YWEzYTU2OWY2ZTQ4Y2YuLjBjNzFlMWRiMTBm
YTQzN2E3YzAwNDNkMzY0ZjQ0YmY3MjM3MTFjOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTQyLDcgKzQyLDYgQEAgQUxMT1dfVU5V
U0VEX1BBUkFNRVRFUlNfRU5ECiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUmVmPFJlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjcmVh
dGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJiB2aWRl
b1RyYWNrLCBTdHJpbmcmJiB0cmFja0lkKQogewpAQCAtMTczLDE5ICsxNzIsMTkgQEAgdm9pZCBS
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZShjb25zdCB3ZWJydGM6OlZp
ZGVvRnJhbWUmIGZyYW1lKQogICAgIH0KIAogICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJ
bmZvOwotICAgIHRpbWluZ0luZm8ucHJlc2VudGF0aW9uVGltZVN0YW1wID0gQ01UaW1lTWFrZShm
cmFtZS50aW1lc3RhbXBfdXMoKSwgMTAwMDAwMCk7Ci0gICAgdGltaW5nSW5mby5kZWNvZGVUaW1l
U3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKLSAgICB0aW1pbmdJbmZvLmR1cmF0aW9uID0ga0NNVGlt
ZUludmFsaWQ7CisgICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBQQUw6OkNN
VGltZU1ha2UoZnJhbWUudGltZXN0YW1wX3VzKCksIDEwMDAwMDApOworICAgIHRpbWluZ0luZm8u
ZGVjb2RlVGltZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKKyAgICB0aW1pbmdJbmZvLmR1
cmF0aW9uID0gUEFMOjprQ01UaW1lSW52YWxpZDsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbjsKLSAgICBPU1N0YXR1cyBvc3RhdHVzID0gQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7Cisg
ICAgT1NTdGF0dXMgb3N0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4
ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9zdGF0dXMgIT0gbm9FcnIp
IHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSLCAiRmFp
bGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3IgIiwg
c3RhdGljX2Nhc3Q8aW50Pihvc3RhdHVzKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgb3N0YXR1cyA9IENNU2FtcGxl
QnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENW
SW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5m
bywgJnNhbXBsZUJ1ZmZlcik7CisgICAgb3N0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZl
clJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxl
QnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChvc3Rh
dHVzICE9IG5vRXJyKSB7CiAgICAgICAgIEVSUk9SX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURF
TlRJRklFUiwgIkZhaWxlZCB0byBjcmVhdGUgdGhlIHNhbXBsZSBidWZmZXIgd2l0aCBlcnJvciAi
LCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IDZiZjBjYTQ4N2RkNjRkYmVmNTM5ZDk0
ODgwZjYyOGM3ZmExNjFiZjEuLmUzM2JiNmRhOWRkZGQwMWEwMGQ5OTZmZDllZjAyYWM5ODE0YTFl
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29h
LmNwcApAQCAtNDUsNyArNDUsNiBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKICNpbmNs
dWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBu
YW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlPiBSZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+
JiYgdmlkZW9Tb3VyY2UpCiB7CkBAIC04NSw3ICs4NCw3IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlQ29jb2E6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1w
bGUpCiAgICAgfQogCiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0g
UGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7Ci0gICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VC
dWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7Cisg
ICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpKTsKICAgICBhdXRvIHBpeGVsRm9ybWF0VHlwZSA9IENWUGl4ZWxC
dWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwogCiAgICAgUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IGNvbnZlcnRlZEJ1ZmZlciA9IHBpeGVsQnVmZmVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlD
YXB0dXJlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
aW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KaW5kZXggNzhiYmNhZDEzOTk4NjJmNTViOTcwYmU0
NzdmMjUxNGM0ZjM0ODQ1NC4uMTI5M2RhNTU5ZjkyOWE3YWVlYzU0ZDA3YWE5YWU0Zjk5NGY5NWI0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dp
bmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCkBAIC00Niw3ICs0Niw2
IEBACiBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENHSW1hZ2UpOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgYm9vbCBhbnlPZkNHV2luZG93
KGNvbnN0IEZ1bmN0aW9uPGJvb2woQ0ZEaWN0aW9uYXJ5UmVmIGluZm8sIHVuc2lnbmVkIGlkLCBj
b25zdCBTdHJpbmcmIHRpdGxlKT4mIHByZWRpY2F0ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2lvcy9XZWJJY29uVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0KaW5kZXggNGVhM2RlODZjYmI0NDQxOWRhNmUxZjQ5
M2JlYTgzOTA1NWRkMTg1ZS4uZjZiM2NlOTFkNTI1NjIyZDFkYjFmMjAxN2U4MTExMTU1NTk2ZTNm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0KQEAg
LTEyNCw3ICsxMjQsNyBAQCBSZXRhaW5QdHI8VUlJbWFnZT4gaWNvbkZvclZpZGVvRmlsZShOU1VS
TCAqZmlsZSkKICAgICBbZ2VuZXJhdG9yIHNldEFwcGxpZXNQcmVmZXJyZWRUcmFja1RyYW5zZm9y
bTpZRVNdOwogCiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7Ci0gICAgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IGltYWdlUmVmID0gYWRvcHRDRihbZ2VuZXJhdG9yIGNvcHlDR0ltYWdlQXRUaW1lOmtD
TVRpbWVaZXJvIGFjdHVhbFRpbWU6bmlsIGVycm9yOiZlcnJvcl0pOworICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiBpbWFnZVJlZiA9IGFkb3B0Q0YoW2dlbmVyYXRvciBjb3B5Q0dJbWFnZUF0VGlt
ZTpQQUw6OmtDTVRpbWVaZXJvIGFjdHVhbFRpbWU6bmlsIGVycm9yOiZlcnJvcl0pOwogICAgIGlm
ICghaW1hZ2VSZWYpIHsKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvciBjcmVhdGluZyBpbWFnZSBm
b3IgdmlkZW8gJyVAJzogJUAiLCBmaWxlLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxsYmFj
a0ljb25Gb3JGaWxlKGZpbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCmluZGV4IGEx
NmQyNDI1NjQxZjM3YTE5ZDBjMDllNTRiYzNlZWY0YWEyODE4ZWEuLjBiYWMxZTI4OWU3NzcyZWFl
N2U2YjM2OTgxMDg1OTRiN2E2ODY4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAK
QEAgLTM0LDE3ICszNCwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBjcmVhdGVXcmFw
cGVyKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01CYXNlVlRhYmxlKiBiYXNlVlRh
YmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiogd3JhcHBlcikKIHsK
LSAgICByZXR1cm4gQ01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZUYWJsZSwg
Y2xhc3NJRCwgd3JhcHBlcikgPT0gbm9FcnI7CisgICAgcmV0dXJuIFBBTDo6Q01EZXJpdmVkT2Jq
ZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZUYWJsZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0gbm9F
cnI7CiB9CiAKIHZvaWQqIHdyYXBwZXJTdG9yYWdlKENNQmFzZU9iamVjdFJlZiB3cmFwcGVyKQog
ewotICAgIHJldHVybiBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSh3cmFwcGVyKTsKKyAg
ICByZXR1cm4gUEFMOjpDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSh3cmFwcGVyKTsKIH0K
IAogY29uc3QgQ01CYXNlVlRhYmxlKiB3cmFwcGVyVlRhYmxlKENNQmFzZU9iamVjdFJlZiB3cmFw
cGVyKQogewotICAgIHJldHVybiBDTUJhc2VPYmplY3RHZXRWVGFibGUod3JhcHBlcik7CisgICAg
cmV0dXJuIFBBTDo6Q01CYXNlT2JqZWN0R2V0VlRhYmxlKHdyYXBwZXIpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCmluZGV4IGMxODRl
NDQ3YjJjZDQ0MmE4NDdlYzMxNjIzMzZiNmZhZjc4NzNjN2MuLjVlNzc4Y2MwYjdiZGE3NGUzZjc1
Yzk5YjU4YmE4YmZhMjUxNzI5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcApA
QCAtNDcsNyArNDcsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKE1UUGx1Z2luRm9ybWF0
UmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGNvbnN0IHZvaWQqIG5leHRMb2dJZGVu
dGlmaWVyKCkKQEAgLTI0NSw3ICsyNDQsNyBAQCBPU1N0YXR1cyBNZWRpYUZvcm1hdFJlYWRlcjo6
Y29weVByb3BlcnR5KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdAogICAg
IGlmIChtX2R1cmF0aW9uLmlzSW5kZWZpbml0ZSgpKQogICAgICAgICByZXR1cm4ga0NNQmFzZU9i
amVjdEVycm9yX1ZhbHVlTm90QXZhaWxhYmxlOwogCi0gICAgaWYgKGF1dG8gbGVha2VkRHVyYXRp
b24gPSBhZG9wdENGKENNVGltZUNvcHlBc0RpY3Rpb25hcnkoUEFMOjp0b0NNVGltZShtX2R1cmF0
aW9uKSwgYWxsb2NhdG9yKSkubGVha1JlZigpKSB7CisgICAgaWYgKGF1dG8gbGVha2VkRHVyYXRp
b24gPSBhZG9wdENGKFBBTDo6Q01UaW1lQ29weUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1lKG1f
ZHVyYXRpb24pLCBhbGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKICAgICAgICAgKnJlaW50ZXJwcmV0
X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmKj4odmFsdWVDb3B5KSA9IGxlYWtlZER1cmF0aW9uOwogICAg
ICAgICByZXR1cm4gbm9FcnI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5n
ZS5jcHAKaW5kZXggZDgzZWZjZjQ3NzVjZTk2YjEyYTg3NjBmOGQxNzIzNGFiMGYxZWU3ZC4uNGRl
MWQwZWQyYTdiZTQ5ZTNjYmJiOTVlMzc3ZjU0NTA5ZmFjMDdhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVk
aWFTYW1wbGVCeXRlUmFuZ2UuY3BwCkBAIC0yNSwxMiArMjUsMTIgQEAKIAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQnl0ZVJhbmdlLmgiCisjaW5jbHVkZSA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNpZiBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVS
KQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBNZWRpYVNhbXBsZUJ5dGVSYW5nZTo6TWVkaWFTYW1wbGVCeXRl
UmFuZ2UoTWVkaWFTYW1wbGUmIHNhbXBsZSwgTVRQbHVnaW5CeXRlU291cmNlUmVmIGJ5dGVTb3Vy
Y2UsIHVpbnQ2NF90IHRyYWNrSUQpCkBAIC01MCw3ICs1MCw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJh
bmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5
dGVTb3VyCiAgICAgYXV0byBwbGF0Zm9ybVNhbXBsZSA9IHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgp
OwogICAgIHN3aXRjaCAocGxhdGZvcm1TYW1wbGUudHlwZSkgewogICAgIGNhc2UgUGxhdGZvcm1T
YW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZToKLSAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9
IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxl
LmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsYXRmb3JtU2FtcGxlOjpC
eXRlUmFuZ2VTYW1wbGVUeXBlOgogICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gcGxhdGZv
cm1TYW1wbGUuc2FtcGxlLmJ5dGVSYW5nZVNhbXBsZS5zZWNvbmQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3Iu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2Ft
cGxlQ3Vyc29yLmNwcAppbmRleCBjZTI5MDZkYzQ0MjliODc1MTRhN2IwMGMzMjE3MzkyZDUwN2Iz
Zjk1Li5mYmU0MjI3MzA2ZjgwZjYxYzEyN2MzMzhjNzFlZmE1NGEyZDIwYzg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVD
dXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRl
ci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKQEAgLTQzLDcgKzQzLDYgQEAgV1RGX0RFQ0xBUkVfQ0Zf
VFlQRV9UUkFJVChNVFBsdWdpblNhbXBsZUN1cnNvcik7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRp
YyBNZWRpYVRpbWUgYXNzdW1lZERlY29kZVRpbWUoY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50YXRp
b25UaW1lLCBEZWNvZGVPcmRlclNhbXBsZU1hcCYgbWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFk
ZXIuY3BwCmluZGV4IDkwODYxYzg0ZGRlNmM2NmRkYjg3NzkzYWIyMzA2YTY2ZTRkZWI3MzEuLjFk
YzFjYWUwMzAwOGUwYTIwYTQ0YWM3M2QxYWEzNzI1MzU3ZjIwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFU
cmFja1JlYWRlci5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJ
VChNVFBsdWdpblRyYWNrUmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5h
bWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQ01CYXNlQ2xhc3NJRCBN
ZWRpYVRyYWNrUmVhZGVyOjp3cmFwcGVyQ2xhc3NJRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRp
bmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMv
R3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0KaW5kZXggMTdkNzlmMTYxMDU2YTAxMGE0ZWFj
NTgyZmQyNzg2OGYzODhhNjIxMS4uMWUzOGRlNWRiZGE5ZTE1NzEyOGYxZjQwZGFhZDFjNDkxOTBl
MzAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rp
dml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRv
ci5tbQpAQCAtMTAyLDggKzEwMiw2IEBAIEBlbmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7Ci0KIFJlZjxHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcj4gR3Jv
dXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6OmNyZWF0ZShHcm91cEFjdGl2aXRpZXNTZXNzaW9uJiBz
ZXNzaW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdyb3VwQWN0aXZpdGllc0Nvb3Jk
aW5hdG9yKHNlc3Npb24pKTsKQEAgLTE1NCw3ICsxNTIsNyBAQCB2b2lkIEdyb3VwQWN0aXZpdGll
c0Nvb3JkaW5hdG9yOjpsZWF2ZSgpCiAKIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6
OnNlZWtUbyhkb3VibGUgdGltZSwgQ29vcmRpbmF0b3JDb21wbGV0aW9uSGFuZGxlciYmIGNhbGxi
YWNrKQogewotICAgIFttX3BsYXliYWNrQ29vcmRpbmF0b3IgY29vcmRpbmF0ZVNlZWtUb1RpbWU6
Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDEwMDApIG9wdGlvbnM6MF07CisgICAgW21fcGxh
eWJhY2tDb29yZGluYXRvciBjb29yZGluYXRlU2Vla1RvVGltZTpQQUw6OkNNVGltZU1ha2VXaXRo
U2Vjb25kcyh0aW1lLCAxMDAwKSBvcHRpb25zOjBdOwogICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9w
dCk7CiB9CiAKQEAgLTIxMSwxMCArMjA5LDEwIEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRp
bmF0b3I6Omlzc3VlUGxheUNvbW1hbmQoQVZEZWxlZ2F0aW5nUGxheWJhY2tDb29yZGluYXRvCiAK
ICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gaXRlbVRpbWU7CiAgICAgaWYgKENNVElNRV9JU19O
VU1FUklDKHBsYXlDb21tYW5kLml0ZW1UaW1lKSkKLSAgICAgICAgaXRlbVRpbWUgPSBDTVRpbWVH
ZXRTZWNvbmRzKHBsYXlDb21tYW5kLml0ZW1UaW1lKTsKKyAgICAgICAgaXRlbVRpbWUgPSBQQUw6
OkNNVGltZUdldFNlY29uZHMocGxheUNvbW1hbmQuaXRlbVRpbWUpOwogICAgIHN0ZDo6b3B0aW9u
YWw8TW9ub3RvbmljVGltZT4gaG9zdFRpbWU7CiAgICAgaWYgKENNVElNRV9JU19OVU1FUklDKHBs
YXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKQotICAgICAgICBob3N0VGltZSA9IE1vbm90b25pY1Rp
bWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVu
aXRzKHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKTsKKyAgICAgICAgaG9zdFRpbWUgPSBNb25v
dG9uaWNUaW1lOjpmcm9tTWFjaEFic29sdXRlVGltZShQQUw6OkNNQ2xvY2tDb252ZXJ0SG9zdFRp
bWVUb1N5c3RlbVVuaXRzKHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKTsKIAogICAgIGNsaWVu
dCgpLT5wbGF5U2Vzc2lvbihpdGVtVGltZSwgaG9zdFRpbWUsIFtjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSAoYm9vbCkgewogICAgICAgICBjYWxsYmFjaygpOwpAQCAtMjQ2LDcgKzI0NCw3
IEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6Omlzc3VlU2Vla0NvbW1hbmQoQVZE
ZWxlZ2F0aW5nUGxheWJhY2tDb29yZGluYXRvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBjbGllbnQoKS0+c2Vla1Nlc3Npb25Ub1RpbWUoQ01UaW1lR2V0U2Vjb25kcyhzZWVrQ29tbWFu
ZC5pdGVtVGltZSksIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgbXV0YWJs
ZSB7CisgICAgY2xpZW50KCktPnNlZWtTZXNzaW9uVG9UaW1lKFBBTDo6Q01UaW1lR2V0U2Vjb25k
cyhzZWVrQ29tbWFuZC5pdGVtVGltZSksIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAo
Ym9vbCkgbXV0YWJsZSB7CiAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
CmluZGV4IDQyNzk2OWMyODIxMThhYzNjM2Q3NzA4M2VhYjgyZDk1ZmQwYWJlZmYuLjE3MWQ5Y2E0
ODQ5MTVkN2FmNGVlYWQ2OTcwOTk5MWU1MDRkNDI3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNjksNyAr
MjY5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lzdHJh
dGlvbnMoKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKLSAgICBpZiAoIWlzQXVkaW9U
b29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFjYW5Mb2FkX0F1ZGlvVG9vbGJveENv
cmVfQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMoKSkKKyAgICBpZiAoIVBB
TDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Y2FuTG9h
ZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25z
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9n
bG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29j
b2EubW0KaW5kZXggZjM3ODRmYzI3MTJiMGRmNjM4NzEyMDQ3Y2Q3MmY4NTMwYzc3NzIzNC4uMmE4
M2Q5NzEwYmY3MjU1ZTU5Mzg1YzFiMWY2NTkzNGMyNjMwNTU1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdl
ckNvY29hLm1tCkBAIC00Miw3ICs0Miw2IEBAIEBlbmQKIE5TX0FTU1VNRV9OT05OVUxMX0VORAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogc3RhdGljIGJvb2wgdXNhZ2VUcmFja2luZ0F2YWlsYWJsZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggYzMyM2E2YTc4YjQ1MDA1YjY3NzQwODYyYjYyOWIxNmZi
YjgwZjQwYi4uZjg5MWE1MzMxNDUwYmYxN2VhZjk1YjAwZTMxOGRhZTNjNzM4NzU0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
V2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdl
ciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5LmNwcAppbmRleCA5NWJiZDU0ODNjZmVhMTdjOTEyZWQ1YjVmMTNmNDMxZmFlMzcxMjY3
Li44YTU5YWUxYTI4ZmE0M2E5YjJmMjE1NzYyMTE4OWFlOTc2ZDEwMmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlUHJveHk6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXgg
NjZhMTllNzNhOWViNTY0ZGNjZTA3NzdkYzMyMDBlNGMwYmM5M2M2MC4uOGFjYzNkMGE4YWIxY2Nk
NGIzZmVjYWQ2MGIzYTZiYzNhZTY0MzAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMzkyLDcgKzEzOTIsNyBAQCB2b2lk
IFdlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMoY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBkYQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKLSAgICBp
ZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFjYW5Mb2FkX0F1
ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMoKSkK
KyAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwg
IVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJS
ZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gcmVnaXN0cmF0aW9u
cyA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRhdGEuZGF0YSgp
LCBkYXRhLnNpemUoKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432363</attachid>
            <date>2021-06-27 19:17:54 -0700</date>
            <delta_ts>2021-06-27 22:29:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210628121752.patch</filename>
            <type>text/plain</type>
            <size>335155</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc2MGFmZjhiNzMzNTgy
NDE3ZjA3N2M5MDRjOTQ4ZmYyMzgxZWU5Yy4uZGZiN2RkYjllMTQ1ZWFjZjUzOTZhNmI0ZGE3ZDcx
YmQ5Yjc2NTAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlcyBv
ZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFVuaWZ5IEF1ZGlvVG9vbGJveCwgQ29yZU1lZGlhLCBWaWRlb1Rvb2xib3ggYW5k
IE1lZGlhVG9vbGJveCdzIG1ldGhvZAorICAgICAgICBkZWZpbml0aW9ucyBhbmQgdGhlaXIgdXNl
LCBlbnN1cmluZyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzb2Z0LWxpbmtlZC4KKyAgICAgICAgVW5p
ZmllZCBidWlsZHMgYW5kIHRoZSBpbmNvbnNpc3RlbnQgdXNlIG9mIGV4cGxpY2l0bHkgdXNpbmcg
dGhlIFBBTCBuYW1lc3BhY2UKKyAgICAgICAgY2F1c2VkIHNvbWUgY2FsbHMgdG8gYmUgYW1iaWd1
b3VzIGxlYWRpbmcgdG8gY29tcGlsYXRpb24gZXJyb3JzOyBzb21lCisgICAgICAgIGNvZGUgd291
bGQgYWxzbyB1c2UgdGhlIHNvZnRsaW5rZWQgbWV0aG9kcyB3aGlsZSBvdGhlcnMgY2FsbGVkIGlu
dG8gdGhlIGZyYW1ld29ya3MKKyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIFRvIGdldCBhcm91
bmQgdGhvc2Ugd2UgZW5zdXJlIHRoYXQgYW55IGNhbGxzIHRvIEF1ZGlvVG9vbGJveCBvciBDb3Jl
TWVkaWEgaXMgYWx3YXlzIHVzaW5nCisgICAgICAgIHRoZSBmdWxseSByZXNvbHZlZCBQQUwgbmFt
ZS4KKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGB1c2luZyBuYW1lc3BhY2UgUEFMO2Agc3Rh
dGVtZW50cyB3aGVyZXZlciBhcHBsaWNhYmxlLgorICAgICAgICBObyBjaGFuZ2UgaW4gb2JzZXJ2
YWJsZSBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5w
cmVwYXJlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUltYWdlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50
TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlk
Q2hhbmdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpk
ZXN0cm95TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjp2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJS
ZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGVJbWFnZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnBy
ZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkZWNvZGVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6ZHVyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpzaXplSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFW
Rk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZG9l
c0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1ZmZl
ckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1wbGVC
dWZmZXJOb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6cHJlc2VudGF0aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1w
bGVBVkZPYmpDOjppc0RpdmlzYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OmRpdmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZm
ZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3Vt
ZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpB
dWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0NNQ29sb3JQcmltYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01U
cmFuc2ZlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0NNWUNiQ1JNYXRy
aXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJh
aXQ8Q01TYW1wbGVCdWZmZXJSZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmRlY29kZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjph
dXRvbWF0aWNEZXF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5I
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRh
dGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVr
YWJsZVJhbmdlc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93
V2F0ZXJUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0Nv
bXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFz
c2V0V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVk
aW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmlj
ZUNsb2NrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpj
b25maWd1cmVNaWNyb3Bob25lUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVk
aW9TaGFyZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2E6Ok9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW06CisKIDIwMjEtMDYtMjEgIEplYW4t
WXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1l
dGhvZCBpbiBBdWRpb0ZpbGVSZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGI2MjY3YzdmNmU5
Y2YwNmRlZDAwMDMzZTFlMmEwZGE5MjY1MTU3ZDcuLjk1OTEyMWY2NzgxNzJiNGVlODA2Njc2ZjBk
YTcxNzg5ZDdjY2Q2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIx
LTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgTm90
IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgor
ICAgICAgICAqIHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWV0aG9kcyB3aG9z
ZSBkZWZpbml0aW9ucyB3ZXJlIHNjYXR0ZXJlZCBhY3Jvc3MKKyAgICAgICAgdGhlIGNvZGUuCisg
ICAgICAgICogcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBw
YWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaDogU2FtZSBhcyBhYm92ZS4KKyAgICAgICAg
KiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9BdWRp
b1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisgICAgICAgICogcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kczsgUmVzaHVmZmxlZCBkZWZpbml0aW9ucyBhcyBtYW55
IGRpZG4ndAorICAgICAgICBleGlzdCBvbiBXaW5kb3dzLCB5ZXQgY291bGQgcG90ZW50aWFsbHkg
YmUgbG9hZGVkIGFuZCBlcnJvci4KKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29mdExp
bmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlz
c2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAgICAg
ICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9j
b2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIwMjEt
MDYtMjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01v
ZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIG1vZGVsIHJlc291cmNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA3ODQ3OWUyYTFiMjIwM2YwOTVmZWQzNTg1OTQ5MGFmZGU3YTA4M2NjLi4zYmYyMThm
ZDZlYTAxMTU5MGExMjFjZTM2OTA0YmM3OTE0OTliZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDIxLTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAg
ICAgICAgTm90IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlu
a2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
MjUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1
ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVB
dWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0
ZVdyYXBwZXIpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyU3RvcmFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OndyYXBwZXJWVGFibGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1h
dFJlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFT
YW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVn
aXN0cmF0aW9ucyk6CisKIDIwMjEtMDYtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBpT1MgYnVpbGQgYWZ0ZXIg
cmRhcjovLzc2NzgxODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggNmE4MjNkNjFhZDEw
MTAzMmJiZTE5NGE2MmI1YjYxNTZkMjNjYWIxMi4uMDljMmVhMzI5YzJjMGNhNmVlNmY3YmEzYTJj
NDRhZGY4MzQ4ZTVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtNTMsOCArNTMsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KICNpZiAh
VVNFKExJQldFQlJUQykKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGVlckNvbm5lY3Rpb25CYWNr
ZW5kPiBjcmVhdGVOb1BlZXJDb25uZWN0aW9uQmFja2VuZChSVENQZWVyQ29ubmVjdGlvbiYpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KaW5kZXggNDAwZjliOGQxNmI1OTNiNDg1ZTAwYzdmNzhm
NTlkZTk4ZGMzN2Q5Zi4uNzQ5OTRlMmM1MTAwZWNhYmE2MTU5MGZiMTE4MGFhMGJjMzdiMGRiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpAQCAtNTgsNyArNTgsNiBAQAogI2ltcG9ydCA8cGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogc3RhdGljIEpT
VmFsdWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCA1YjEzNWIzOWE1YTBhMWQ4MDFiZTY4NzhmYmRm
ZjY3NjZjMmU4YWNlLi5mMWMyYWYzM2M1ZmEyYWI2ZmM1MTY2OTk4M2ZhNzBlNzY5NjQwMjgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExp
bmsuaCIKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgaW5saW5lIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBzdHJlYW1EZXNjcmlwdGlvbihz
aXplX3Qgc2FtcGxlUmF0ZSwgc2l6ZV90IGNoYW5uZWxDb3VudCkKQEAgLTcxLDcgKzY5LDcgQEAg
dm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjb25zdW1lQXVkaW8oQXVkaW9CdXMmIGJ1cywg
c2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ01U
aW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9jdXJyZW50U2V0
dGluZ3Muc2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVN
YWtlKG1fbnVtYmVyT2ZGcmFtZXMsIG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSk7CiAg
ICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9u
dW1iZXJPZkZyYW1lcyArPSBudW1iZXJPZkZyYW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCA2N2I3OGY0NmE3ODEx
Nzg4OGYwMGQwODk3ZGJhNTdlN2FjNTM4NTAyLi4zMzNhYTIyNGM3MWE3NTBjZDlhMGY2OWY3ODNk
ZDAxNTk3NTEwYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMjYsMjAgKzI2LDQ2IEBACiAKICNpZiBVU0UoQVZGT1VO
REFUSU9OKQogCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29tcG9uZW50Lmg+CiAjaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CisjaW5jbHVkZSA8QXVkaW9Ub29s
Ym94L0F1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1hdC5oPgot
CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvVW5pdC5oPgorI2luY2x1ZGUgPEF1ZGlvVG9v
bGJveC9FeHRlbmRlZEF1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgog
CiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZU
X0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlv
VG9vbGJveENvcmUsIFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbywgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIG91dFNpemUsIEJvb2xlYW4qIG91dFdyaXRh
YmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgb3V0U2l6ZSwgb3V0V3JpdGFi
bGUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvRm9ybWF0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEIGlu
UHJvcGVydHlJRCwgVUludDMyIGluU3BlY2lmaWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVjaWZp
ZXIsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAo
aW5Qcm9wZXJ0eUlELCBpblNwZWNpZmllclNpemUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5RGF0
YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJl
Ziogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3Jt
YXQsIG91dEF1ZGlvQ29udmVydGVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9D
b252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlvQ29udmVydGVyKSkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRl
clNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0
ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3Bl
cnR5RGF0YVNpemUsIGNvbnN0IHZvaWQqIGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlv
UHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYg
aW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1
ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAo
aW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRw
dXREYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVy
dGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVBy
b2MgaW5JbnB1dERhdGFQcm9jLCB2b2lkKiBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgVUludDMy
KiBpb091dHB1dERhdGFQYWNrZXRTaXplLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEs
IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIG91dFBhY2tldERlc2NyaXB0aW9uKSwgKGlu
QXVkaW9Db252ZXJ0ZXIsIGluSW5wdXREYXRhUHJvYywgaW5JbnB1dERhdGFQcm9jVXNlckRhdGEs
IGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIG91dE91dHB1dERhdGEsIG91dFBhY2tldERlc2NyaXB0
aW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0
VW5pdFN0b3AsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNl
RGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAo
aW5JbnN0YW5jZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Db21wb25lbnRDb3B5TmFtZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBp
bkNvbXBvbmVudCwgQ0ZTdHJpbmdSZWYqIG91dE5hbWUpLCAoaW5Db21wb25lbnQsIG91dE5hbWUp
KQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRp
b25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIChvdXRC
dW5kbGVSZWdpc3RyYXRpb25zKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9D
b21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGlu
QnVuZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQT1JU
KQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVk
aW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRp
b0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZvaWQgKmluQ2xpZW50RGF0
YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2MgaW5X
cml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0ZpbGVf
U2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVIaW50
LCBBdWRpb0ZpbGVJRCAqb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVuYywg
aW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVIaW50
LCBvdXRBdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRp
b1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVm
IGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3Bl
cnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCAqb3V0
UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlE
YXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlv
RmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyICppb051bWJlckZyYW1lcywgQXVkaW9CdWZm
ZXJMaXN0ICppb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlv
RmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3Bl
cnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxl
LCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmls
ZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVh
biBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmls
ZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0
dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxlUmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAo
aW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVu
dCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2Ny
aXB0aW9uKiBpbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJ
bnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlE
IGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50
LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNj
b3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3Rh
dHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0
U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGlu
RGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1l
bnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCiAKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGlu
ay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCmlu
ZGV4IDQ5ZTMyZTE3OTQwMzYzYjg0OTc3NDQzNWJkMjA5NWU2NGFiNDg4MWIuLmRkZjEzYTAyN2E0
NWEyMmI4Mzk4ZDEzNWU4ZTBiM2RmYzY4NTUyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTI2LDI3ICsyNiwxMTQgQEAKIAog
I2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlw
ZXMuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogdHlwZWRlZiBVSW50MzIgQXVk
aW9Db252ZXJ0ZXJQcm9wZXJ0eUlEOwogdHlwZWRlZiBVSW50MzIgQXVkaW9Gb3JtYXRQcm9wZXJ0
eUlEOwogdHlwZWRlZiBzdHJ1Y3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29udmVydGVy
KiBBdWRpb0NvbnZlcnRlclJlZjsKK3R5cGVkZWYgc3RydWN0IEF1ZGlvQnVmZmVyTGlzdCBBdWRp
b0J1ZmZlckxpc3Q7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5w
dXREYXRhUHJvYykoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwKKyAgICBVSW50
MzIqIGlvTnVtYmVyRGF0YVBhY2tldHMsCisgICAgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEsCisg
ICAgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbioqIG91dERhdGFQYWNrZXREZXNjcmlwdGlv
biwKKyAgICB2b2lkKiBpblVzZXJEYXRhKTsKKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlRXh0QXVk
aW9GaWxlKiBFeHRBdWRpb0ZpbGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0ZpbGVJ
RCogQXVkaW9GaWxlSUQ7Cit0eXBlZGVmIFVJbnQzMiBBdWRpb0ZpbGVUeXBlSUQ7Cit0eXBlZGVm
IFVJbnQzMiBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlv
RmlsZV9SZWFkUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBpblBv
c2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQsCisgICAgdm9pZCogYnVmZmVyLAorICAg
IFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9Xcml0
ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBTSW50NjQgaW5Qb3NpdGlvbiwK
KyAgICBVSW50MzIgcmVxdWVzdENvdW50LAorICAgIGNvbnN0IHZvaWQqIGJ1ZmZlciwKKyAgICBV
SW50MzIqIGFjdHVhbENvdW50KTsKK3R5cGVkZWYgU0ludDY0ICgqQXVkaW9GaWxlX0dldFNpemVQ
cm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEpOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlv
RmlsZV9TZXRTaXplUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBp
blNpemUpOwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db21wb25lbnQqIEF1ZGlvQ29tcG9u
ZW50OworCisjaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoZGVmaW5lZChBVURJT0NPTVBPTkVOVF9O
T0NBUkJPTklOU1RBTkNFUykgJiYgQVVESU9DT01QT05FTlRfTk9DQVJCT05JTlNUQU5DRVMpCit0
eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlOworI2Vsc2UKK3R5cGVkZWYgc3RydWN0IENvbXBvbmVudEluc3RhbmNlUmVjb3Jk
KiBBdWRpb0NvbXBvbmVudEluc3RhbmNlOworI2VuZGlmCit0eXBlZGVmIEF1ZGlvQ29tcG9uZW50
SW5zdGFuY2UgQXVkaW9Vbml0OworCit0eXBlZGVmIHN0cnVjdCBBdWRpb0NvbXBvbmVudERlc2Ny
aXB0aW9uIEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb247Cit0eXBlZGVmIFVJbnQzMiBBdWRpb1Vu
aXRQcm9wZXJ0eUlEOwordHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0U2NvcGU7Cit0eXBlZGVmIFVJ
bnQzMiBBdWRpb1VuaXRFbGVtZW50OwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIo
UEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3hDb3JlKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVk
aW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyKiBvdXRTaXplLCBCb29sZWFuKiBvdXRXcml0YWJsZSksIChp
bkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIG91dFNpemUsIG91dFdyaXRhYmxlKSkKKyNk
ZWZpbmUgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8gc29mdExpbmtfQXVkaW9Ub29sYm94
X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCog
b3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9w
ZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9D
b252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
KiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRl
c3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAo
aW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkK
ICNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29u
dmVydGVyTmV3CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGlu
QXVkaW9Db252ZXJ0ZXIpLCAoaW5BdWRpb0NvbnZlcnRlcikpCisjZGVmaW5lIEF1ZGlvQ29udmVy
dGVyRGlzcG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJEaXNwb3NlCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Q
cm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29u
dmVydGVyLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEp
KQogI2RlZmluZSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbnZlcnRlclNldFByb3BlcnR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChB
dWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXpl
LCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZv
aWQqIG91dFByb3BlcnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5T
cGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUg
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Gb3JtYXRH
ZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9D
b252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBj
b25zdCBBdWRpb0J1ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91
dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXRE
YXRhLCBvdXRPdXRwdXREYXRhKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxl
eEJ1ZmZlciBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxl
eEJ1ZmZlcgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0
ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJv
YyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIq
IGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwg
QXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQcm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwg
aW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRp
b24pKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1
ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQs
IE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKKyNkZWZpbmUgQXVkaW9PdXRwdXRVbml0
U3RhcnQgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvT3V0cHV0VW5pdFN0YXJ0CitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0
U3RvcCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorI2RlZmluZSBBdWRpb091dHB1
dFVuaXRTdG9wIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb091dHB1dFVuaXRTdG9wCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25l
bnRJbnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbklu
c3RhbmNlKSwgKGluSW5zdGFuY2UpKQorI2RlZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlz
cG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudENvcHlOYW1lLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBD
RlN0cmluZ1JlZiogb3V0TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisjZGVmaW5lIEF1
ZGlvQ29tcG9uZW50Q29weU5hbWUgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50
Q29weU5hbWUKKwogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucywg
T1NTdGF0dXMsIChDRkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAob3V0QnVuZGxl
UmVnaXN0cmF0aW9ucykpCiAjZGVmaW5lIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3Ry
YXRpb25zIHNvZnRMaW5rQXVkaW9Ub29sYm94Q29yZUF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJS
ZWdpc3RyYXRpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25z
LCBPU1N0YXR1cywgKENGRGF0YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVS
ZWdpc3RyYXRpb25zKSkKICNkZWZpbmUgQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJh
dGlvbnMgc29mdExpbmtBdWRpb1Rvb2xib3hDb3JlQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJl
Z2lzdHJhdGlvbnMKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxl
KSwgKGluQXVkaW9GaWxlKSkKKyNkZWZpbmUgQXVkaW9GaWxlQ2xvc2Ugc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvRmlsZUNsb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9p
ZCogaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxl
X1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1
bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQg
aW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEKiBvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRh
LCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywg
aW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEF1ZGlvRmlsZU9wZW5XaXRo
Q2FsbGJhY2tzIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNr
cworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxl
KSwgKGluRXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlRGlzcG9zZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0
YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQ
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURh
dGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0
eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFk
LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyKiBpb051
bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlv
TnVtYmVyRnJhbWVzLCBpb0RhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVSZWFkIHNvZnRMaW5r
X0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVSZWFkCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVz
LCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Q
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURh
dGFTaXplLCBpblByb3BlcnR5RGF0YSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5
IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZv
cldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBp
bkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmls
ZUlECitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0
QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxl
UmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5l
IEV4dEF1ZGlvRmlsZU9wZW5VUkwgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZU9w
ZW5VUkwKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvQ29tcG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQg
aW5Db21wb25lbnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChp
bkNvbXBvbmVudCwgaW5EZXNjKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRGaW5kTmV4dCBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRGaW5kTmV4dAorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VO
ZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50
SW5zdGFuY2UqIG91dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCisjZGVm
aW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQg
aW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUs
IEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0
YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0
YVNpemUpKQorI2RlZmluZSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9Vbml0R2V0UHJvcGVydHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQpLCAoaW5Vbml0KSkKKyNkZWZpbmUgQXVkaW9Vbml0SW5pdGlhbGl6ZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0SW5pdGlhbGl6ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0
U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGlu
RGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1l
bnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5pdFNldFByb3BlcnR5IHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRTZXRQcm9wZXJ0eQorCiAjZW5kaWYgLy8gVVNF
KEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5jcHAKaW5kZXggYzE0MzkyYmEyYzkxNDJkNTFiNDc0ZTdkMjQ0ODBiOTcxOWY4YTRj
Ni4uZTJjNTEzNjY0MGYzNWE1Zjk3YWFjMDVmMWFiZTE0NWMzMGI5MTY5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgPENvcmVNZWRpYS9DTUJ1ZmZlclF1ZXVlLmg+CiAjaW5jbHVkZSA8Q29yZVZp
ZGVvL0NvcmVWaWRlby5oPgogI2VuZGlmCiAKQEAgLTQ0LDE3ICs0NSw5IEBACiAKIFNPRlRfTElO
S19GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgUEFMX0VY
UE9SVCkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzLCBPU1N0YXR1cywgKENNQmxvY2tC
dWZmZXJSZWYgdGhlU291cmNlQnVmZmVyLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0
YUxlbmd0aCwgdm9pZCogZGVzdGluYXRpb24pLCAodGhlU291cmNlQnVmZmVyLCBvZmZzZXRUb0Rh
dGEsIGRhdGFMZW5ndGgsIGRlc3RpbmF0aW9uKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVy
R2V0RGF0YUxlbmd0aCwgc2l6ZV90LCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhl
QnVmZmVyKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcywgT1NT
dGF0dXMsIChjb25zdCB2b2lkKiBzb3VyY2VCeXRlcywgQ01CbG9ja0J1ZmZlclJlZiBkZXN0aW5h
dGlvbkJ1ZmZlciwgc2l6ZV90IG9mZnNldEludG9EZXN0aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5n
dGgpLCAoc291cmNlQnl0ZXMsIGRlc3RpbmF0aW9uQnVmZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRp
b24sIGRhdGFMZW5ndGgpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRl
bnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAo
ZGVzYyksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENGVHlwZUlELCAo
dm9pZCksICgpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciwgQ01C
bG9ja0J1ZmZlclJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBP
UlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLCBPU1N0YXR1cywgKENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBsZUluZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8q
IHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxlSW5kZXgsIHRpbWluZ0luZm9PdXQpLCBQQUxf
RVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHksIEJvb2xlYW4sIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGludDMy
X3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAo
dGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb21wYXJlLCBpbnQzMl90LCAoQ01U
aW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGltZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVz
Y2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwg
bWV0aG9kKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1l
IHRpbWUpLCAodGltZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRf
dCB2YWx1ZSwgaW50MzJfdCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzLCBDTVRpbWUsIChGbG9hdDY0IHNlY29uZHMsIGlu
dDMyX3QgcHJlZmVycmVkVGltZVNjYWxlKSwgKHNlY29uZHMsIHByZWZlcnJlZFRpbWVTY2FsZSks
IFBBTF9FWFBPUlQpCkBAIC02Miw2ICs1NSwyMSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNVGltZVJhbmdlR2V0RW5kLCBDTVRpbWUsIChDTVRpbWVSYW5nZSByYW5nZSksIChyYW5nZSks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VNYWtlLCBDTVRpbWVSYW5nZSwgKENNVGltZSBzdGFy
dCwgQ01UaW1lIGR1cmF0aW9uKSwgKHN0YXJ0LCBkdXJhdGlvbiksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01U
aW1lUmFuZ2VFcXVhbCwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlMSwgQ01UaW1lUmFuZ2Ug
cmFuZ2UyKSwgKHJhbmdlMSwgcmFuZ2UyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBD
TVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRp
bWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250YWluc1Rp
bWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFuZ2UsIHRp
bWUpLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENNVGltZSwgUEFMX0VYUE9SVCkK
K1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBrQ01UaW1lWmVybywgQ01UaW1lLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmlu
aXR5LCBDTVRpbWUsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52YWxpZCwgQ01UaW1lUmFu
Z2UsIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUsIFBBTF9FWFBPUlQp
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNp
b25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YyksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhU3ViVHlwZSwgRm91
ckNoYXJDb2RlLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQ
T1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUsIENNTWVkaWFUeXBlLCAoQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcywg
Q0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1h
cmllc19EQ0lfUDMsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQpAQCAtNzQsNiArODIsMTAgQEAg
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IGtDTUZvcm1hdERlc2NyaXB0aW9uVHIKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fU01QVEVfU1RfMjA4NF9QUSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xLCBDRlN0cmluZ1Jl
ZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIw
MjAsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0LCBDRlN0cmluZ1Jl
ZiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fc1JHQiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCisKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxp
Z25tZW50VHlwZV9FbmQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBB
bGlnbm1lbnRUeXBlX01pZGRsZSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1h
cmt1cEFsaWdubWVudFR5cGVfU3RhcnQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQpAQCAtOTMs
MjAgKzEwNSwyNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEF0dHJpYnV0ZQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBdHRy
aWJ1dGVfV3JpdGluZ0RpcmVjdGlvblNpemVQZXJjZW50YWdlLCBDRlN0cmluZ1JlZiwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBrQ01UZXh0VmVydGljYWxMYXlvdXRfTGVmdFRvUmlnaHQsIENGU3RyaW5nUmVmLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIGtDTVRleHRWZXJ0aWNhbExheW91dF9SaWdodFRvTGVmdCwgQ0ZTdHJpbmdS
ZWYsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENNVGltZSwgUEFMX0VYUE9SVCkKLVNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBr
Q01UaW1lWmVybywgQ01UaW1lLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5
LCBDTVRpbWUsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUws
IENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52YWxpZCwgQ01UaW1lUmFuZ2UpOwogCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhU3ViVHlwZSwgRm91ckNo
YXJDb2RlLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JU
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUsIENNTWVkaWFUeXBlLCAoQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJDb3B5RGF0YUJ5dGVzLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlU291cmNlQnVm
ZmVyLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgdm9pZCogZGVzdGlu
YXRpb24pLCAodGhlU291cmNlQnVmZmVyLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGRlc3Rp
bmF0aW9uKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aCwgc2l6ZV90
LCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSwgUEFMX0VYUE9SVCkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcywgT1NTdGF0dXMsIChjb25zdCB2b2lkKiBz
b3VyY2VCeXRlcywgQ01CbG9ja0J1ZmZlclJlZiBkZXN0aW5hdGlvbkJ1ZmZlciwgc2l6ZV90IG9m
ZnNldEludG9EZXN0aW5hdGlvbiwgc2l6ZV90IGRhdGFMZW5ndGgpLCAoc291cmNlQnl0ZXMsIGRl
c3RpbmF0aW9uQnVmZmVyLCBvZmZzZXRJbnRvRGVzdGluYXRpb24sIGRhdGFMZW5ndGgpLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSwgT1NTdGF0dXMsIChDTUJs
b2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxv
Y2tCdWZmZXJHZXREYXRhUG9pbnRlciwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1
ZmZlciwgc2l6ZV90IG9mZnNldCwgc2l6ZV90KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0
b3RhbExlbmd0aE91dCwgY2hhcioqIGRhdGFQb2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0
LCBsZW5ndGhBdE9mZnNldE91dCwgdG90YWxMZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSwgUEFM
X0VYUE9SVCkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyLCBD
TU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlm
aWNhdGlvbkNlbnRlckFkZExpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVy
UmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sg
Y2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0LCBV
SW50MzIgZmxhZ3MpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwg
b2JqZWN0LCBmbGFncyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVM
aXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0
IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0cmlu
Z1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIsIGxpc3RlbmVy
LCBjYWxsYmFjaywgbm90aWZpY2F0aW9uLCBvYmplY3QpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9j
a0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJN
YWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkICptYWtlRGF0
YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBD
TUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVz
LCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90ICpzYW1wbGVTaXplQXJyYXksIENN
U2FtcGxlQnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJl
YWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERl
c2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1p
bmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCks
IFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZm
ZXJSZWYgKnNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpLCBQQUxf
RVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNC
dWYsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGlt
aW5nSW5mbyAqc2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmQ29weU91
dCksIChhbGxvY2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2Ft
cGxlVGltaW5nQXJyYXksIHNCdWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldERhdGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVz
Y3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
KSwgKHNidWYpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
bywgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1JbmRleCBzYW1wbGVJ
bmRleCwgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdJbmZvT3V0KSwgKHNidWYsIHNhbXBsZUlu
ZGV4LCB0aW1pbmdJbmZvT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckRhdGFJc1Jl
YWR5LCBCb29sZWFuLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNh
bXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qg
c2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJP
dXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxl
cywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNp
emVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQp
CisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENN
U2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywg
dm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXRE
ZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJh
eSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCogc2FtcGxl
U2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFC
dWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVm
Y29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmll
cywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJy
YXksIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IENNU2FtcGxlQnVmZmVyUmVmKiBzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZD
b3B5T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGlt
aW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJS
ZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25z
dCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJl
Ziogc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWlu
Z0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVU
aW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFs
bG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNC
dWZPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGlt
YWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5
Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29u
LCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENN
U2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxl
QnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgc2Ft
cGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0RGVjb2RlVGltZVN0YW1wLCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNi
dWYpLCBQQUxfRVhQT1JUKQpAQCAtMTE2LDE0ICsxMzUsMTUgQEAgU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0
UHJlc2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uLCBDTVRpbWUsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0
T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4g
Y3JlYXRlSWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZOZWNlc3NhcnkpLCBQQUxfRVhQT1JU
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01T
YW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQgKnRpbWluZ0FycmF5
RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5
T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNv
bnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMyX3QgbmV3VGltZXNjYWxlLCBD
TVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3VGltZXNjYWxlLCBtZXRob2Qp
LCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5
RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQq
IHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMs
IHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplLCBzaXplX3QsIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0
YUJ1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUJsb2NrQnVmZmVy
UmVmIGJ1ZmZlciksIChzYnVmLCBidWZmZXIpLCBQQUxfRVhQT1JUKQorCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01HZXRBdHRhY2ht
ZW50LCBDRlR5cGVSZWYsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1Jl
ZiBrZXksIENNQXR0YWNobWVudE1vZGUqIGF0dGFjaG1lbnRNb2RlT3V0KSwgKHRhcmdldCwga2V5
LCBhdHRhY2htZW50TW9kZU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TZXRBdHRhY2htZW50LCB2b2lk
LCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5cGVS
ZWYgdmFsdWUsIENNQXR0YWNobWVudE1vZGUgYXR0YWNobWVudE1vZGUpLCAodGFyZ2V0LCBrZXks
IHZhbHVlLCBhdHRhY2htZW50TW9kZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01SZW1vdmVBdHRhY2htZW50
LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5KSwg
KHRhcmdldCwga2V5KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNs
b2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0
ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJD
bG9jaywgdGltZWJhc2VPdXQpLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhN
YXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tS
ZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwg
bWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGlt
ZSwgQ01UaW1lLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01UaW1lYmFzZUdldFJhdGUsIEZsb2F0NjQsIChDTVRpbWViYXNlUmVmIHRpbWViYXNl
KSwgKHRpbWViYXNlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0UmF0ZSwgT1NTdGF0dXMs
IChDTVRpbWViYXNlUmVmIHRpbWViYXNlLCBGbG9hdDY0IHJhdGUpLCAodGltZWJhc2UsIHJhdGUp
LCBQQUxfRVhQT1JUKQpAQCAtMTQ0LDExICsxNjQsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVEZXF1ZXVl
QW4KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1
ZXVlLCBDTUJ1ZmZlclJlZiBidWZmZXIpLCAocXVldWUsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUlzRW1wdHksIEJvb2xlYW4sIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwg
KHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRl
bUNvdW50LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3Qg
Q01CdWZmZXJDYWxsYmFja3MgKiwgKCksICgpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVH
ZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJh
Y2tzKiwgKCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRh
dGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwg
Q01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYg
cXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNv
biwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwg
Q01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxs
YmFjaywgcmVmY29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9T
U3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxs
YmFjayB0cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVU
cmlnZ2VyQ29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJl
c2hvbGQsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1
ZSwgdHJpZ2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmln
Z2VyVGhyZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVl
dWVNYXJrRW5kT2ZEYXRhLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVl
dWUpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01C
dWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVB
dHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NN
U2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAg
LTE2OCw0MCArMTkwLDM3IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsCiAKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFz
ZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYsIFBB
TF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91dFNp
emUsIGNvbnN0IEF1ZGlvQ2hhbm5lbExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29raWVT
aXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMs
IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFzYmQs
IGxheW91dFNpemUsIGxheW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5z
aW9ucywgb3V0RGVzYyksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0
TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRl
c2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRl
c2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0Umlj
aGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0SXRlbSosIChDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkKKwogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxv
Y2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
c3RydWN0dXJlQWxsb2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2NrTGVuZ3Ro
LCBDRkFsbG9jYXRvclJlZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZlckN1c3Rv
bUJsb2NrU291cmNlKiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6
ZV90IGRhdGFMZW5ndGgsIENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1ZmZlclJl
ZiogYmxvY2tCdWZmZXJPdXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9jaywgYmxv
Y2tMZW5ndGgsIGJsb2NrQWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0VG9EYXRh
LCBkYXRhTGVuZ3RoLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5lZWRl
ZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNp
emUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJi
dWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpibG9j
a0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91
dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0
b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJH
ZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QqIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRp
b0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxv
Y2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0
KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJM
aXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3Ms
IGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBs
ZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGUmFu
Z2Ugc2FtcGxlUmFuZ2UsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwg
c2J1Ziwgc2FtcGxlUmFuZ2UsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENN
SXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVfdCogc2l6ZUFycmF5T3V0LCBDTUl0ZW1D
b3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCBzaXplQXJyYXlFbnRyaWVz
LCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNOZWVkZWRPdXQpLCBQQUxfRVhQT1JUKQog
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZm
ZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFj
ayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBs
ZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uICpw
YWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRv
ciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRh
UmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNr
ZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0
RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJS
ZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVy
TGlzdCAqYnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5
QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBs
ZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0
YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5
Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVm
UFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlv
bnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwg
ZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZv
cm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMs
IHNCdWZPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdp
dGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9y
LCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9y
bWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBwcmVzZW50YXRp
b25UaW1lU3RhbXAsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERl
c2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0
b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBwcmVzZW50YXRp
b25UaW1lU3RhbXAsIHBhY2tldERlc2NyaXB0aW9ucywgc2FtcGxlQnVmZmVyT3V0KSwgUEFMX0VY
UE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0LCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90
IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3QpLCAoc2J1ZiwgYmJ1ZlN0
cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJ1ZmZlckxpc3QpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwg
Y29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUs
IGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5
b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25z
LCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdp
Y0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywg
c2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9y
bWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2Mp
LCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0
YW1wLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRwdXRQcmVz
ZW50YXRpb25UaW1lU3RhbXApLCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwg
UEFMX0VYUE9SVCkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrLCBDTUNsb2NrUmVmLCAodm9p
ZCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRUaW1lLCBDTVRpbWUsIChDTUNsb2NrUmVm
IGNsb2NrKSwgKGNsb2NrKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9T
eXN0ZW1Vbml0cywgdWludDY0X3QsIChDTVRpbWUgaG9zdFRpbWUpLCAoaG9zdFRpbWUpLCBQQUxf
RVhQT1JUKQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKiBDTVNBTVBMRUJVRkZFUkNBTExfTk9F
U0NBUEUgY2FsbGJhY2spKCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNv
dW50IGluZGV4LCB2b2lkICpyZWZjb24pLCB2b2lkICpyZWZjb24pLCAoc2J1ZiwgY2FsbGJhY2ss
IHJlZmNvbiksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2Ft
cGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICheIENNU0FN
UExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVt
Q291bnQpKSwgKHNidWYsIGhhbmRsZXIpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZT
dHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFu
c2ZlckZ1bmN0aW9uX3NSR0IsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQotI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVz
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNBTExf
Tk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVt
Q291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxsYmFj
aywgcmVmY29uKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hT
YW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF5DTVNB
TVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRl
bUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSwgUEFMX0VYUE9SVCkKIAotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCks
IFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRp
bWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNaW5pbXVtLCBD
TVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxf
RVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFpbnNUaW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2Ug
cmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdlLCB0aW1lKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
Q2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2Nr
UmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKIAotU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtD
TVRpbWVJbmRlZmluaXRlLCBDTVRpbWUsIFBBTF9FWFBPUlQpCi0jZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKE1B
QykKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwg
KGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Rl
dmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZT
dHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRl
dmljZVVJRCwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmFzZU9iamVjdEdldERlcml2ZWRT
dG9yYWdlLCB2b2lkKiwgKENNQmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3Qp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQmFzZU9iamVjdEdldFZUYWJsZSwgY29uc3QgQ01CYXNlVlRhYmxl
KiwgKENNQmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNRGVyaXZlZE9iamVjdENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogdlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQs
IENNQmFzZU9iamVjdFJlZiogYmFzZU9iamVjdCksIChhbGxvY2F0b3IsIHZUYWJsZSwgY2xhc3NJ
RCwgYmFzZU9iamVjdCksIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmgKaW5kZXggNzUyNWI5MTljNjk1ZDM2MDk3YjExMTAzMmI5NGY3
NDdmMTUxZjFmMC4uMGM1MDE0NmMxMzc0MWE5NmQ4OWU2NWE4MTJiMDY1MDFlMDU2ZjNlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaApAQCAtNDUs
MzAgKzQ1LDEyIEBACiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
QmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhl
U291cmNlQnVmZmVyLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgdm9p
ZCogZGVzdGluYXRpb24pLCAodGhlU291cmNlQnVmZmVyLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5n
dGgsIGRlc3RpbmF0aW9uKSkKLSNkZWZpbmUgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgc29m
dExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5n
dGgsIHNpemVfdCwgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlcikpCi0j
ZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJs
b2NrQnVmZmVyR2V0RGF0YUxlbmd0aAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNv
bnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBDTUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVy
LCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3RpbmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChzb3Vy
Y2VCeXRlcywgZGVzdGluYXRpb25CdWZmZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0YUxl
bmd0aCkpCi0jZGVmaW5lIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcwotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNp
b25zLCBDRkRpY3Rpb25hcnlSZWYsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YykpCi0jZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucwotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlELCBD
RlR5cGVJRCwgKHZvaWQpLCAoKSkKLSNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQgc29m
dExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0VHlwZUlECi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVy
LCBDTUJsb2NrQnVmZmVyUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKLSNk
ZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlckdldERhdGFCdWZmZXIKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uLCBDTUZvcm1h
dERlc2NyaXB0aW9uUmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKLSNkZWZp
bmUgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFf
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbgotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
bywgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1JbmRleCBzYW1wbGVJ
bmRleCwgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdJbmZvT3V0KSwgKHNidWYsIHNhbXBsZUlu
ZGV4LCB0aW1pbmdJbmZvT3V0KSkKLSNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm8KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckRhdGFJc1JlYWR5LCBCb29sZWFuLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChz
YnVmKSkKLSNkZWZpbmUgQ01TYW1wbGVCdWZmZXJEYXRhSXNSZWFkeSBzb2Z0TGlua19Db3JlTWVk
aWFfQ01TYW1wbGVCdWZmZXJEYXRhSXNSZWFkeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRp
bWUsIGludDMyX3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAo
dGltZSwgbmV3VGltZXNjYWxlLCBtZXRob2QpKQotI2RlZmluZSBDTVRpbWVDb252ZXJ0U2NhbGUg
c29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUNvbnZlcnRTY2FsZQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRp
bWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUgQ01UaW1lQWRkIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVBZGQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb21wYXJlLCBpbnQzMl90LCAoQ01UaW1lIHRpbWUxLCBD
TVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUgQ01UaW1lQ29tcGFyZSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01UaW1lQ29tcGFyZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRp
bWUsIGludDMyX3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAo
dGltZSwgbmV3VGltZXNjYWxlLCBtZXRob2QpKQorI2RlZmluZSBDTVRpbWVDb252ZXJ0U2NhbGUg
c29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUNvbnZlcnRTY2FsZQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChD
TVRpbWUgdGltZSksICh0aW1lKSkKICNkZWZpbmUgQ01UaW1lR2V0U2Vjb25kcyBzb2Z0TGlua19D
b3JlTWVkaWFfQ01UaW1lR2V0U2Vjb25kcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFsdWUsIGludDMy
X3QgdGltZXNjYWxlKSwgKHZhbHVlLCB0aW1lc2NhbGUpKQpAQCAtODMsMzMgKzY1LDYxIEBAIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZU1h
a2UsIENNVGltZVJhbmdlLCAoQ01UCiAjZGVmaW5lIENNVGltZVJhbmdlTWFrZSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01UaW1lUmFuZ2VNYWtlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VFcXVhbCwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJh
bmdlMSwgQ01UaW1lUmFuZ2UgcmFuZ2UyKSwgKHJhbmdlMSwgcmFuZ2UyKSkKICNkZWZpbmUgQ01U
aW1lUmFuZ2VFcXVhbCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lUmFuZ2VFcXVhbAorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENN
VGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCisjZGVm
aW5lIENNVGltZU1heGltdW0gc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1heGltdW0KK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNaW5pbXVtLCBD
TVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorI2Rl
ZmluZSBDTVRpbWVNaW5pbXVtIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNaW5pbXVtCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250
YWluc1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFu
Z2UsIHRpbWUpKQorI2RlZmluZSBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01UaW1lUmFuZ2VDb250YWluc1RpbWUKKworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbnZhbGlkLCBDTVRpbWUpCisjZGVmaW5lIGtD
TVRpbWVJbnZhbGlkIGdldF9Db3JlTWVkaWFfa0NNVGltZUludmFsaWQoKQorU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCisj
ZGVmaW5lIGtDTVRpbWVaZXJvIGdldF9Db3JlTWVkaWFfa0NNVGltZVplcm8oKQorU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmlu
aXR5LCBDTVRpbWUpCisjZGVmaW5lIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5IGdldF9Db3JlTWVk
aWFfa0NNVGltZVBvc2l0aXZlSW5maW5pdHkoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGltZVJhbmdlKTsKKyNk
ZWZpbmUga0NNVGltZVJhbmdlSW52YWxpZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWVSYW5nZUludmFs
aWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRp
bWVJbmRlZmluaXRlLCBDTVRpbWUpCisjZGVmaW5lIGtDTVRpbWVJbmRlZmluaXRlIGdldF9Db3Jl
TWVkaWFfa0NNVGltZUluZGVmaW5pdGUoKQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0
aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBkZXNjKSwgKGRlc2MpKQorI2RlZmluZSBDTUZvcm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9u
cyBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNjcmlwdGlvbkdldEV4dGVuc2lvbnMKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2Ny
aXB0aW9uR2V0TWVkaWFTdWJUeXBlLCBGb3VyQ2hhckNvZGUsIChDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGRlc2MpLCAoZGVzYykpCisjZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1
YlR5cGUgc29mdExpbmtfQ29yZU1lZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1YlR5
cGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1h
dERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlLCBDTU1lZGlhVHlwZSwgKENNRm9ybWF0RGVzY3JpcHRp
b25SZWYgZGVzYyksIChkZXNjKSkKKyNkZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlh
VHlwZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZQog
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcywgQ0ZT
dHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURl
c2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zKCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1Az
IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVz
Y3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0
aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9S
XzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lv
bl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNv
bG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNf
RDY1LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9r
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJp
bWFyaWVzX1AzX0Q2NSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJp
ZXNfUDNfRDY1IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmll
c19QM19ENjUoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VW
aWRlbygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZp
ZGVvIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdl
VmlkZW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
SVRVX1JfMjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAw
X0hMRywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9u
X2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRf
Q29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCisjZGVmaW5lIGtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9r
Q01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKKyNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1Rf
MjA4NF9QUSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9T
TVBURV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2Zl
ckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9T
TVBURV9TVF80MjhfMSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9u
RXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80
MjhfMSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgpCisjZGVmaW5lIGtD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80Mjhf
MSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9y
bWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JD
ck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKKyNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVk
aWFfa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwKCkKKwogU09GVF9M
SU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1h
dERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZT
dHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3Rl
ZENvbnRlbnRPcmlnaW5hbEZvcm1hdCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
RXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCgpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3Jt
YXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fc1JHQiBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkKKyNkZWZpbmUga0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpCisKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQs
IENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQgZ2V0
X0NvcmVNZWRpYV9rQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRU
eXBlX01pZGRsZSwgQ0ZTdHJpbmdSZWYpCkBAIC0xNDgsMzQgKzE1OCw0NSBAQCBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0
X0xlZnRUb1JpZ2h0LAogI2RlZmluZSBrQ01UZXh0VmVydGljYWxMYXlvdXRfTGVmdFRvUmlnaHQg
Z2V0X0NvcmVNZWRpYV9rQ01UZXh0VmVydGljYWxMYXlvdXRfTGVmdFRvUmlnaHQoKQogU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRWZXJ0aWNhbExh
eW91dF9SaWdodFRvTGVmdCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTVRleHRWZXJ0aWNhbExh
eW91dF9SaWdodFRvTGVmdCBnZXRfQ29yZU1lZGlhX2tDTVRleHRWZXJ0aWNhbExheW91dF9SaWdo
dFRvTGVmdCgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
a0NNVGltZUludmFsaWQsIENNVGltZSkKLSNkZWZpbmUga0NNVGltZUludmFsaWQgZ2V0X0NvcmVN
ZWRpYV9rQ01UaW1lSW52YWxpZCgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwga0NNVGltZVplcm8sIENNVGltZSkKLSNkZWZpbmUga0NNVGltZVplcm8gUEFM
OjpnZXRfQ29yZU1lZGlhX2tDTVRpbWVaZXJvKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSwgQ01UaW1lKQotI2Rl
ZmluZSBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVQb3NpdGl2
ZUluZmluaXR5KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01UaW1lUmFuZ2VJbnZhbGlkLCBDTVRpbWVSYW5nZSk7Ci0jZGVmaW5lIGtDTVRpbWVSYW5n
ZUludmFsaWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lUmFuZ2VJbnZhbGlkKCkKIAotI2lmIFBMQVRG
T1JNKENPQ09BKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYg
dGhlU291cmNlQnVmZmVyLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwg
dm9pZCogZGVzdGluYXRpb24pLCAodGhlU291cmNlQnVmZmVyLCBvZmZzZXRUb0RhdGEsIGRhdGFM
ZW5ndGgsIGRlc3RpbmF0aW9uKSkKKyNkZWZpbmUgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMg
c29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFM
ZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlcikp
CisjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywg
KGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBDTUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVm
ZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3RpbmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChz
b3VyY2VCeXRlcywgZGVzdGluYXRpb25CdWZmZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0
YUxlbmd0aCkpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcworU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01l
bW9yeSwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIp
KQorI2RlZmluZSBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciwgT1NT
dGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciwgc2l6ZV90IG9mZnNldCwgc2l6ZV90
KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0b3RhbExlbmd0aE91dCwgY2hhcioqIGRhdGFQ
b2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGhBdE9mZnNldE91dCwgdG90YWxM
ZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSkKKyNkZWZpbmUgQ01CbG9ja0J1ZmZlckdldERhdGFQ
b2ludGVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIKIAot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVz
Y3JpcHRpb25HZXRNZWRpYVN1YlR5cGUsIEZvdXJDaGFyQ29kZSwgKENNRm9ybWF0RGVzY3JpcHRp
b25SZWYgZGVzYyksIChkZXNjKSkKLSNkZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlh
U3ViVHlwZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhU3Vi
VHlwZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNRm9y
bWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUsIENNTWVkaWFUeXBlLCAoQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBkZXNjKSwgKGRlc2MpKQotI2RlZmluZSBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVk
aWFUeXBlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBl
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmlj
YXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVm
LCAodm9pZCksICgpKQogI2RlZmluZSBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2Nh
bENlbnRlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0
TG9jYWxDZW50ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0
aW9uQ2VudGVyUmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9u
Q2FsbGJhY2sgY2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCog
b2JqZWN0LCBVSW50MzIgZmxhZ3MpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlm
aWNhdGlvbiwgb2JqZWN0LCBmbGFncykpCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyQWRk
TGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVu
ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlm
aWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2Vu
dGVyUmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJh
Y2sgY2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0
KSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCkpCiAj
ZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIgc29mdExpbmtfQ29yZU1l
ZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZl
ciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNr
IG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxl
cywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1p
bmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJp
ZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1
Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNh
bGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxl
cywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNp
emVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQorCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQsIENG
VHlwZUlELCAodm9pZCksICgpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCBzb2Z0
TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIs
IENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQorI2Rl
ZmluZSBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2Ft
cGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0
RGVzY3JpcHRpb25SZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQorI2RlZmlu
ZSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBsZUlu
ZGV4LCBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxlSW5k
ZXgsIHRpbWluZ0luZm9PdXQpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm8gc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
bworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyRGF0YUlzUmVhZHksIEJvb2xlYW4sIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNi
dWYpKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckRhdGFJc1JlYWR5IHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVNhbXBsZUJ1ZmZlckRhdGFJc1JlYWR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2Ft
cGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVU
aW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVu
dHJpZXMsIGNvbnN0IHNpemVfdCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiog
c2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRp
b24sIG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5
LCBudW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzYW1wbGVCdWZmZXJPdXQp
KQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9D
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5CisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBk
YXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVh
ZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVtQ291
bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1w
bGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0IHNp
emVfdCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxv
Y2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtl
RGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxl
VGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBz
YW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGUKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9T
U3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc2J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVm
Q29weU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYqIHNidWZDb3B5
T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZUNvcHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlQ29w
eQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRlbUNvdW50IG51
bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2FtcGxlVGlt
aW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmQ29weU91dCksIChhbGxvY2F0b3IsIG9y
aWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIHNC
dWZDb3B5T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0
ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8q
IHNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1ZkNvcHlPdXQpLCAoYWxs
b2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWlu
Z0FycmF5LCBzQnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdp
dGhOZXdUaW1pbmcgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdp
dGhOZXdUaW1pbmcKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAo
YWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywg
c0J1Zk91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVU
aW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFs
bG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNC
dWZPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVy
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVm
ZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5
LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJh
Y2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1p
bmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBpbWFn
ZUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlS
ZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNhbXBsZUJ1ZmZlck91dCkp
CiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIgc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKQEAgLTE5MywxOSArMjE0
LDIxIEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0
T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVu
dHNBcnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3Jl
YXRlSWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZOZWNlc3NhcnkpKQogI2RlZmluZSBDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50
IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwg
Q01JdGVtQ291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdB
cnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJ
bmZvKiB0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRl
ZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdB
cnJheUVudHJpZXNOZWVkZWRPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSwgc2l6ZV90LCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNh
bXBsZVNpemUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVT
aXplCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJTZXREYXRhQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyKSwgKHNidWYsIGJ1ZmZlcikpCiAjZGVmaW5lIENNU2Ft
cGxlQnVmZmVyU2V0RGF0YUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJT
ZXREYXRhQnVmZmVyCisKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUdldEF0dGFjaG1lbnQsIENGVHlwZVJlZiwgKENNQXR0YWNobWVudEJlYXJlclJlZiB0
YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ01BdHRhY2htZW50TW9kZSogYXR0YWNobWVudE1vZGVP
dXQpLCAodGFyZ2V0LCBrZXksIGF0dGFjaG1lbnRNb2RlT3V0KSkKICNkZWZpbmUgQ01HZXRBdHRh
Y2htZW50IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUdldEF0dGFjaG1lbnQKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChD
TUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENGVHlwZVJlZiB2
YWx1ZSwgQ01BdHRhY2htZW50TW9kZSBhdHRhY2htZW50TW9kZSksICh0YXJnZXQsIGtleSwgdmFs
dWUsIGF0dGFjaG1lbnRNb2RlKSkKICNkZWZpbmUgQ01TZXRBdHRhY2htZW50IHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVNldEF0dGFjaG1lbnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFy
ZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFyZ2V0LCBrZXkpKQogI2RlZmluZSBD
TVJlbW92ZUF0dGFjaG1lbnQgc29mdExpbmtfQ29yZU1lZGlhX0NNUmVtb3ZlQXR0YWNobWVudAot
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VD
cmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9y
LCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWViYXNlUmVmICp0aW1lYmFzZU91dCksIChh
bGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91dCkpCisKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNs
b2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0
ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiogdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJD
bG9jaywgdGltZWJhc2VPdXQpKQogI2RlZmluZSBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNs
b2NrIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdl
dFRpbWUsIENNVGltZSwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpKQogI2Rl
ZmluZSBDTVRpbWViYXNlR2V0VGltZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUdldFRp
bWUKQEAgLTIyNyw3ICsyNTAsNyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUbwogI2RlZmluZSBD
TVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5IHNvZnRMaW5r
X0NvcmVNZWRpYV9DTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0
ZWx5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1l
Q29weUFzRGljdGlvbmFyeSwgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01UaW1lIHRpbWUsIENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciksICh0aW1lLCBhbGxvY2F0b3IpKQogI2RlZmluZSBDTVRpbWVDb3B5
QXNEaWN0aW9uYXJ5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb3B5QXNEaWN0aW9uYXJ5Ci1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYgKm91dERlc2MpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgb3V0RGVz
YykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwg
b3V0RGVzYykpCiAjZGVmaW5lIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdl
QnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVG
b3JJbWFnZUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMsIENNVmlkZW9EaW1lbnNp
b25zLCAoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRGVzYyksICh2aWRlb0Rlc2Mp
KQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zCkBAIC0yNDks
MjMgKzI3MiwyMyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50LCBDTUl0ZQogI2RlZmluZSBDTUJ1ZmZlclF1
ZXVlR2V0QnVmZmVyQ291bnQgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRCdWZm
ZXJDb3VudAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
QnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZm
ZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5lIENNQnVmZmVyUXVldWVHZXRGaXJz
dFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdl
dEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2Ft
cGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3MgKiwgKCksICgpKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxs
YmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiwg
KCksICgpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1w
bGVCdWZmZXJzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9y
VW5zb3J0ZWRTYW1wbGVCdWZmZXJzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01U
aW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5lIENNQnVmZmVy
UXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVm
ZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIsIE9T
U3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxs
YmFjayBjYWxsYmFjaywgdm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNvbmRpdGlv
biBjb25kaXRpb24sIENNVGltZSB0aW1lLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmln
Z2VyVG9rZW5PdXQpLCAocXVldWUsIGNhbGxiYWNrLCByZWZjb24sIGNvbmRpdGlvbiwgdGltZSwg
dHJpZ2dlclRva2VuT3V0KSkKKyNkZWZpbmUgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRy
aWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1
ZXVlLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFjaywgdm9pZCog
dHJpZ2dlclJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJpZ2dlckNvbmRp
dGlvbiwgQ01JdGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJU
b2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ssIHRyaWdnZXJS
ZWZjb24sIHRyaWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdnZXJUb2tlbk91
dCkpCiAjZGVmaW5lIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNo
b2xkIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXJXaXRoSW50
ZWdlclRocmVzaG9sZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVS
ZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0RHVyYXRp
b24sIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQorI2RlZmluZSBD
TUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVH
ZXREdXJhdGlvbgogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIENGU3RyaW5nUmVmKQogI2Rl
ZmluZSBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSBnZXRfQ29yZU1lZGlhX2tD
TVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KCkKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMs
IENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMgZ2V0
X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMoKQotU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlf
RGlzcGxheUltbWVkaWF0ZWx5LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNU2FtcGxlQXR0YWNo
bWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2ht
ZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90
aGVycywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBl
bmRlZE9uQnlPdGhlcnMgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVw
ZW5kZWRPbkJ5T3RoZXJzKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0Rpc3BsYXlFbXB0eU1lZGlhSW1t
ZWRpYXRlbHksIENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50
S2V5X0Rpc3BsYXlFbXB0eU1lZGlhSW1tZWRpYXRlbHkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVC
dWZmZXJBdHRhY2htZW50S2V5X0Rpc3BsYXlFbXB0eU1lZGlhSW1tZWRpYXRlbHkoKQogU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0
dGFjaG1lbnRLZXlfRHJhaW5BZnRlckRlY29kaW5nLCBDRlN0cmluZ1JlZikKQEAgLTI4MCwxMCAr
MzAzLDEwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBr
Q01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1NhbXBsCiAjZGVmaW5lIGtDTVNhbXBsZUJ1ZmZl
ckF0dGFjaG1lbnRLZXlfU2FtcGxlUmVmZXJlbmNlQnl0ZU9mZnNldCBnZXRfQ29yZU1lZGlhX2tD
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfU2FtcGxlUmVmZXJlbmNlQnl0ZU9mZnNldCgpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVm
ZmVyQXR0YWNobWVudEtleV9TYW1wbGVSZWZlcmVuY2VVUkwsIENGU3RyaW5nUmVmKQogI2RlZmlu
ZSBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJlZmVyZW5jZVVSTCBnZXRfQ29y
ZU1lZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfU2FtcGxlUmVmZXJlbmNlVVJMKCkK
LVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFz
ZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5l
IGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkIGdldF9Db3JlTWVk
aWFfa0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQoKQotU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNlTm90aWZp
Y2F0aW9uX1RpbWVKdW1wZWQsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01UaW1lYmFzZU5vdGlm
aWNhdGlvbl9UaW1lSnVtcGVkIGdldF9Db3JlTWVkaWFfa0NNVGltZWJhc2VOb3RpZmljYXRpb25f
VGltZUp1bXBlZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIENGU3RyaW5nUmVm
KQorI2RlZmluZSBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSBnZXRf
Q29yZU1lZGlhX2tDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5KCkKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRh
Y2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NN
U2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycyBnZXRfQ29yZU1lZGlhX2tD
TVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVy
Tm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2Ft
cGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQgZ2V0X0NvcmVNZWRp
YV9rQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCgpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVm
ZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbiwgQ0ZTdHJpbmdSZWYp
CkBAIC0yOTMsNzEgKzMxNiw2OSBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9HcmFkdQogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGdldF9Db3JlTWVkaWFfa0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0YXJ0LCBDRlN0cmluZ1JlZikK
ICNkZWZpbmUgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1RyaW1E
dXJhdGlvbkF0U3RhcnQgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5
X1RyaW1EdXJhdGlvbkF0U3RhcnQoKQogCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5n
ZWQsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3Rp
dmVSYXRlQ2hhbmdlZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVj
dGl2ZVJhdGVDaGFuZ2VkKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkLCBDRlN0cmluZ1JlZikK
KyNkZWZpbmUga0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCBnZXRfQ29yZU1lZGlh
X2tDTVRpbWViYXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQoKQorCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9D
aGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQq
IG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5
b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNjKSkK
KyNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nv
b2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6
ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpKQogI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRNYWdpY0Nvb2tpZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0TWFnaWNDb29raWUKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJh
c2ljRGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiosIChDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzb2Z0TGlua19Db3JlTWVk
aWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbgorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlz
dEl0ZW0qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCisjZGVm
aW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQgc29m
dExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFi
bGVGb3JtYXQKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgc3RydWN0dXJlQWxsb2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2Nr
TGVuZ3RoLCBDRkFsbG9jYXRvclJlZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZl
ckN1c3RvbUJsb2NrU291cmNlKiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0
YSwgc2l6ZV90IGRhdGFMZW5ndGgsIENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1
ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9j
aywgYmxvY2tMZW5ndGgsIGJsb2NrQWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0
VG9EYXRhLCBkYXRhTGVuZ3RoLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQogI2RlZmluZSBDTUJs
b2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2Nr
QnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0
YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXpl
X3QgKmJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RP
dXQsIHNpemVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9j
YXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3Ms
IENNQmxvY2tCdWZmZXJSZWYgKmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXpl
TmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9j
YXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdl
dEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlv
QnVmZmVyTGlzdCogYnVmZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9j
YXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxs
b2NhdG9yLCB1aW50MzJfdCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQp
LCAoc2J1ZiwgYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxp
c3RTaXplLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywg
YmxvY2tCdWZmZXJPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlz
dFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
ckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1w
bGVzLCBDTUl0ZW1Db3VudCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVm
aW5lIENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1w
bGVCdWZmZXJHZXROdW1TYW1wbGVzCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZv
cm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0SXRlbSAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIGRlc2MpLCAoZGVzYykpCi0jZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdl
dFJpY2hlc3REZWNvZGFibGVGb3JtYXQgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJG
b3JSYW5nZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYsIENGUmFuZ2Ugc2FtcGxlUmFuZ2UsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVm
T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2FtcGxlUmFuZ2UsIHNCdWZPdXQpKQogI2RlZmluZSBD
TVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVB
cnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCBzaXpl
QXJyYXlFbnRyaWVzLCBzaXplX3QqIHNpemVBcnJheU91dCwgQ01JdGVtQ291bnQqIHNpemVBcnJh
eUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1Ziwgc2l6ZUFycmF5RW50cmllcywgc2l6ZUFycmF5T3V0
LCBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVTaXplQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
U2l6ZUFycmF5CiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZl
ciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNr
IG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxl
cywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24gKnBh
Y2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9y
LCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFS
ZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tl
dERlc2NyaXB0aW9ucywgc0J1Zk91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlw
dGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVy
UmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRh
UmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlS
ZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNv
dW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERl
c2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0
KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJh
Y2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBz
YnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpKQogI2RlZmluZSBDTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyBzb2Z0TGlua19Db3JlTWVkaWFf
Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERh
dGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVm
IGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxp
c3QgKmJ1ZmZlckxpc3QpLCAoc2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgZmxhZ3MsIGJ1ZmZlckxpc3QpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJs
b2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBwcmVzZW50YXRpb25UaW1l
U3RhbXAsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2NyaXB0
aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRh
dGFCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBwcmVzZW50YXRpb25UaW1l
U3RhbXAsIHBhY2tldERlc2NyaXB0aW9ucywgc2FtcGxlQnVmZmVyT3V0KSkKKyNkZWZpbmUgQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2Ny
aXB0aW9ucworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRv
ciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNv
bnN0IEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2Nh
dG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCkpCiAjZGVmaW5lIENN
U2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3Qgc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
clNldERhdGFSZWFkeSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYp
KQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFSZWFkeSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRpb0NoYW5uZWxMYXlvdXQq
IGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9pZCogbWFnaWNDb29raWUs
IENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYq
IG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBsYXlvdXQsIG1hZ2ljQ29v
a2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2MpKQotI2RlZmluZSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNVGltZSBvdXRwdXRQcmVzZW50YXRp
b25UaW1lU3RhbXApLCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSkKKyNkZWZp
bmUgQ01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtf
Q29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wCisK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrR2V0
SG9zdFRpbWVDbG9jaywgQ01DbG9ja1JlZiwgKHZvaWQpLCAoKSkKLSNkZWZpbmUgQ01DbG9ja0dl
dEhvc3RUaW1lQ2xvY2sgIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9j
aworI2RlZmluZSBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01D
bG9ja0dldEhvc3RUaW1lQ2xvY2sKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTUNsb2NrR2V0VGltZSwgQ01UaW1lLCAoQ01DbG9ja1JlZiBjbG9jayksIChj
bG9jaykpCi0jZGVmaW5lIENNQ2xvY2tHZXRUaW1lICBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9j
a0dldFRpbWUKKyNkZWZpbmUgQ01DbG9ja0dldFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xv
Y2tHZXRUaW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMsIHVpbnQ2NF90LCAoQ01UaW1lIGhv
c3RUaW1lKSwgKGhvc3RUaW1lKSkKICNkZWZpbmUgQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lz
dGVtVW5pdHMgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3Rl
bVVuaXRzCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYsIE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFj
aykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9p
ZCAqcmVmY29uKSwgdm9pZCAqcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NT
dGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiksIHZv
aWQqIHJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSkKICNkZWZpbmUgQ01TYW1wbGVC
dWZmZXJDYWxsRm9yRWFjaFNhbXBsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJD
YWxsRm9yRWFjaFNhbXBsZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXiBDTVNBTVBMRUJVRkZFUkNBTExfTk9F
U0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBo
YW5kbGVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFu
ZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUKIAotI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLQotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0
KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tP
dXQpKQogI2RlZmluZSBDTUF1ZGlvQ2xvY2tDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVk
aW9DbG9ja0NyZWF0ZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNVGltZU1heGltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwg
KHRpbWUxLCB0aW1lMikpCi0jZGVmaW5lIENNVGltZU1heGltdW0gc29mdExpbmtfQ29yZU1lZGlh
X0NNVGltZU1heGltdW0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVRpbWVNaW5pbXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiks
ICh0aW1lMSwgdGltZTIpKQotI2RlZmluZSBDTVRpbWVNaW5pbXVtIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVRpbWVNaW5pbXVtCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5n
ZSwgQ01UaW1lIHRpbWUpLCAocmFuZ2UsIHRpbWUpKQotI2RlZmluZSBDTVRpbWVSYW5nZUNvbnRh
aW5zVGltZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lUmFuZ2VDb250YWluc1RpbWUKIAotU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmlu
aXRlLCBDTVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVJbmRlZmluaXRlIGdldF9Db3JlTWVkaWFfa0NN
VGltZUluZGVmaW5pdGUoKQotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmlj
ZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2Nr
T3V0KSkKLSNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlICBzb2Z0TGlua19Db3JlTWVk
aWFfQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZTdHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVm
KiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRldmljZVVJRCwgY2xvY2tPdXQpKQorI2RlZmluZSBD
TUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VD
bG9ja0NyZWF0ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlLCB2b2lkKiwgKENNQmFzZU9iamVjdFJlZiBi
YXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpKQotI2RlZmluZSBDTUJhc2VPYmplY3RHZXREZXJpdmVk
U3RvcmFnZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXREZXJpdmVkU3Rv
cmFnZQorI2RlZmluZSBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXRWVGFibGUsIGNvbnN0IENN
QmFzZVZUYWJsZSosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkK
LSNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0VlRhYmxlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlhX0NN
QmFzZU9iamVjdEdldFZUYWJsZQorI2RlZmluZSBDTUJhc2VPYmplY3RHZXRWVGFibGUgc29mdExp
bmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldFZUYWJsZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNRGVyaXZlZE9iamVjdENyZWF0ZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogdlRhYmxlLCBD
TUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiogYmFzZU9iamVjdCksIChhbGxv
Y2F0b3IsIHZUYWJsZSwgY2xhc3NJRCwgYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNRGVyaXZlZE9i
amVjdENyZWF0ZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTURlcml2ZWRPYmplY3RDcmVhdGUK
KyNkZWZpbmUgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTURlcml2
ZWRPYmplY3RDcmVhdGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCBmNTFj
YmJiMTY2NjNiODFlY2UyMDFlOGFkNTcyNWMyNTEyMWY1NmZiLi43MmY0MTE0ZWVhYWRmNjIwY2Uz
NzAyMzA5OTQ3NjZiNDhjNzk1YjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMzQsMTMgKzM0LDE5IEBAIFNPRlRfTElO
S19GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJveCwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94
LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBDRlN0cmluZ1Jl
ZikKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgQ0ZTdHJp
bmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwg
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9Qcm9maWxlTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLCBDRlN0cmluZ1JlZikKK1NPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxf
SDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hf
QXV0b0xldmVsLCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwgQ0ZT
dHJpbmdSZWYpCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29s
Ym94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNU
eXBlIGNvZGVjVHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRp
Y3Rpb25hcnlSZWYgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBj
b21wcmVzc2VkRGF0YUFsbG9jYXRvciwgVlRDb21wcmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1
dENhbGxiYWNrLCB2b2lkKiBvdXRwdXRDYWxsYmFja1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Np
b25SZWYqIGNvbXByZXNzaW9uU2Vzc2lvbk91dCksIChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQs
IGNvZGVjVHlwZSwgZW5jb2RlclNwZWNpZmljYXRpb24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmli
dXRlcywgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxs
YmFja1JlZkNvbiwgY29tcHJlc3Npb25TZXNzaW9uT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRl
RnJhbWVzLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENNVGlt
ZSBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNlc3Npb24sIGNvbXBsZXRl
VW50aWxQcmVzZW50YXRpb25UaW1lU3RhbXApKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUsIE9T
U3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZJbWFnZUJ1ZmZlclJl
ZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIGR1cmF0
aW9uLCBDRkRpY3Rpb25hcnlSZWYgZnJhbWVQcm9wZXJ0aWVzLCB2b2lkKiBzb3VyY2VGcmFtZVJl
ZmNvbiwgVlRFbmNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9uLCBpbWFnZUJ1
ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwgZnJhbWVQcm9wZXJ0aWVzLCBz
b3VyY2VGcmFtZVJlZmNvbiwgaW5mb0ZsYWdzT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0Vu
Y29kZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwg
KHNlc3Npb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xi
b3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSwgdm9pZCwgKFZUQ29tcHJlc3Npb25T
ZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCiAKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVmlkZW9Ub29sYm94LCBWVFJlc3RyaWN0
VmlkZW9EZWNvZGVycywgT1NTdGF0dXMsIChWVFZpZGVvRGVjb2RlclJlc3RyaWN0aW9ucyByZXN0
cmljdGlvbkZsYWdzLCBjb25zdCBDTVZpZGVvQ29kZWNUeXBlKiBhbGxvd2VkQ29kZWNUeXBlTGlz
dCwgQ01JdGVtQ291bnQgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgKHJlc3RyaWN0aW9uRmxhZ3Ms
IGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCBQQUxfRVhQT1JU
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNv
ZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5r
LmgKaW5kZXggZWMwZmYwMWNjMWZlMWEyMTA2Y2M3YTdmMDJlOGM4NGI3ZGQwZGE4NC4uNjBhOGZm
Mzc0MmQ0OTYxMDdiMTRmYWM3YzQxMzczYWJjNmQ2OTRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaApAQCAtMzcsOSArMzcsMjAgQEAg
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfTWF4S2UKICNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24gZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbigpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfUmVhbFRpbWUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X1JlYWxUaW1lKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBDRlN0cmlu
Z1JlZikKKyNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSBn
ZXRfVmlkZW9Ub29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUo
KQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUg
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9r
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCgpCiAKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0VuY29kZXJTcGVjaWZp
Y2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIsIENGU3RyaW5nUmVm
KQogI2RlZmluZSBrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNj
ZWxlcmF0ZWRWaWRlb0VuY29kZXIgZ2V0X1ZpZGVvVG9vbGJveF9rVlRWaWRlb0VuY29kZXJTcGVj
aWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIoKQorU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZl
bF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVFByb2Zp
bGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2Zp
bGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRv
TGV2ZWwsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1
dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xl
dmVsKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5l
IGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZU
UHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwoKQorCiAKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGludDMyX3Qgd2lkdGgsIGlu
dDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNUeXBlIGNvZGVjVHlwZSwgQ0ZEaWN0aW9uYXJ5UmVm
IGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRpY3Rpb25hcnlSZWYgc291cmNlSW1hZ2VCdWZmZXJB
dHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBjb21wcmVzc2VkRGF0YUFsbG9jYXRvciwgVlRDb21w
cmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1dENhbGxiYWNrLCB2b2lkKiBvdXRwdXRDYWxsYmFj
a1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Npb25SZWYqIGNvbXByZXNzaW9uU2Vzc2lvbk91dCks
IChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQsIGNvZGVjVHlwZSwgZW5jb2RlclNwZWNpZmljYXRp
b24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgY29tcHJlc3NlZERhdGFBbGxvY2F0b3Is
IG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxsYmFja1JlZkNvbiwgY29tcHJlc3Npb25TZXNzaW9u
T3V0KSkKICNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUgc29mdExpbmtfVmlkZW9U
b29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlCkBAIC00OSw2ICs2MCw4IEBAIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9u
U2Vzc2lvbkVuY29kZUZyYW1lCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJh
bWUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXBy
ZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNz
aW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogI2RlZmluZSBWVENvbXByZXNzaW9u
U2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21w
cmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRh
dGUsIHZvaWQsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQor
I2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUgc29mdExpbmtfVmlkZW9Ub29s
Ym94X1ZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZQogCiBTT0ZUX0xJTktfRlVOQ1RJT05f
TUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRSZXN0cmljdFZpZGVvRGVj
b2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25G
bGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dlZENvZGVjVHlwZUxpc3QsIENNSXRl
bUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0cmljdGlvbkZsYWdzLCBhbGxvd2Vk
Q29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50KSkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCA2
NzRlNjQ5NGEwYThiNTk2OTAzZTNjYTVjZmI2YTIzZGRhYzM2MzhjLi5kNDQ0OTMxZWZkOGFlNTU2
MGI4YzFiMjdmMjJhZDkyZTc5MzQ4NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtNDEsNiArNDEsMTAgQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBN
ZWRpYVRvb2xib3gsIE1UX0dldFNob3UKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnROb3RpZmlj
YXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQp
CiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1
ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBS
ZWYgdGFwKSwgKHRhcCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1lZGlh
VG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChN
VEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3Mg
KmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVy
RnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0
LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBj
b25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyogY2FsbGJhY2tzLCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmKiB0
YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpLCBQQUxfRVhQT1JU
KQorCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFBsdWdpbkZv
cm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsu
aAppbmRleCBjN2RlMDJjZTYzYzJjMzAwZDk2NTRmNjY3MGJmYzEyNTAyMjkzNDRlLi4yNTVhNzY3
YjU1ZWVmNGU4ZWVkMTlkZWYyOTcxNzg0OTBiZTkzZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCkBAIC00MSw2ICs0MSwx
MyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9v
bGJveCwgTVRfR2V0U2hvdWxkUGxheUhEUlZpZAogCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UU3VwcG9ydE5vdGlmaWNhdGlvbl9T
aG91bGRQbGF5SERSVmlkZW9DaGFuZ2VkLCBDRlN0cmluZ1JlZikKIAorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0
U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKKyNk
ZWZpbmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlIHNvZnRMaW5rX01lZGlhVG9vbGJv
eF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1
ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQg
bnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENN
SXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxp
c3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKKyNkZWZp
bmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyBzb2Z0TGlua19NZWRpYVRvb2xi
b3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbworU09GVF9MSU5LX0ZVTkNUSU9O
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwg
KGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNkZWZpbmUgTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUgc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5n
VGFwQ3JlYXRlCisKICNpZiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQogCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UUGx1Z2luRm9ybWF0
UmVhZGVyUHJvcGVydHlfRHVyYXRpb24sIENGU3RyaW5nUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggNTUyNGVlYzU1ODdkMWU5MTcwZWY5ZjE0OTJjYzA3ZGUyNWM4MGVjNy4uYzU2MmJl
NzYzNWVhNmExNTg0MDgzM2FiYzJlMTkxMDEwY2MzMTc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0zNTAsNyArMzUwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKERvY3VtZW50KTsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwogCiBz
dGF0aWMgY29uc3QgdW5zaWduZWQgY01heFdyaXRlUmVjdXJzaW9uRGVwdGggPSAyMTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggOWY1NTYwODAyYmFjMzJi
YjQ5OWVjOTdjOWIwYWUzMmUxMWM2MjFjNy4uODUwY2RlNzI3MGYwZDYxZGMyNTQ0OWMxZGE4OWE0
OWExYWY0MzY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAK
QEAgLTEwOSw3ICsxMDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChIVE1MQ2FudmFzRWxlbWVudCk7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBUaGVzZSB2YWx1ZXMgY29tZSBmcm9t
IHRoZSBXaGF0V0cvVzNDIEhUTUwgc3BlYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCmluZGV4IDAwMzUyNmZjMzE5YTlkMWI2YjA3ZDY4YjJiNDYyYWNhODU0N2ZjZmQu
LjdkM2IxMzIxZThhNzBkMGQxZThkYzMxMzVhODFhZGNiZTU4MDI2ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTkwLDggKzE5MCw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxNZWRpYUVsZW1l
bnQpOwogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBTZWVr
UmVwZWF0RGVsYXkgeyAxMDBfbXMgfTsKIHN0YXRpYyBjb25zdCBkb3VibGUgU2Vla1RpbWUgPSAw
LjI7CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBTY2FuUmVwZWF0RGVsYXkgeyAxLjVfcyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVh
ZGVyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9G
aWxlUmVhZGVyQ29jb2EuY3BwCmluZGV4IGZkM2QzZTAzYTAzZjA4MTA1MjEyODZiZDAyNmE5MTAx
MTFkM2NjODQuLjVkNTZiOWVlMWEwZDNkNjdhNzljMzA3NjFkMTM4MTVkN2MwNjQ0Y2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRl
ckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0ZpbGVSZWFkZXJDb2NvYS5jcHAKQEAgLTM2LDI1ICszNiwxMyBAQAogI2luY2x1ZGUgIkF1ZGlv
RmlsZVJlYWRlci5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KICNp
bmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPHBhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRp
Yy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtp
bmcuaD4KLQotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVk
aW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkF1ZGlv
RmlsZSksIChpbkF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVP
cGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkICppbkNsaWVudERhdGEsIEF1ZGlvRmls
ZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBB
dWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9j
IGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxl
SUQgKm91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5j
LCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9G
aWxlKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3Rh
dHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkK
LVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0YXR1
cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJ
RCBpblByb3BlcnR5SUQsIFVJbnQzMiAqaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQcm9w
ZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFT
aXplLCBvdXRQcm9wZXJ0eURhdGEpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9G
aWxlUmVhZCwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQz
MiAqaW9OdW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVkaW9G
aWxlLCBpb051bWJlckZyYW1lcywgaW9EYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4
dEF1ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1
ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblBy
b3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9G
aWxlLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBPU1N0
YXR1cywgKEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0QXVk
aW9GaWxlUmVmICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywgb3V0
RXh0QXVkaW9GaWxlKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5V
UkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVk
aW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBBdWRpb0J1ZmZlckxpc3QqIHRy
eUNyZWF0ZUF1ZGlvQnVmZmVyTGlzdChzaXplX3QgbnVtYmVyT2ZCdWZmZXJzKQpAQCAtMTAzLDIy
ICs5MSwyMiBAQCBBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcihjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QgZGF0YVNpemUpCiAgICAgOiBtX2RhdGEoZGF0YSkKICAgICAsIG1fZGF0YVNp
emUoZGF0YVNpemUpCiB7Ci0gICAgaWYgKEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMs
IHJlYWRQcm9jLCAwLCBnZXRTaXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJy
KQorICAgIGlmIChQQUw6OkF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMsIHJlYWRQcm9j
LCAwLCBnZXRTaXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEKG1fYXVkaW9G
aWxlSUQsIGZhbHNlLCAmbV9leHRBdWRpb0ZpbGVSZWYpICE9IG5vRXJyKQorICAgIGlmIChQQUw6
OkV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0
QXVkaW9GaWxlUmVmKSAhPSBub0VycikKICAgICAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAwOwog
fQogCiBBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIoKQogewogICAgIGlmIChtX2V4
dEF1ZGlvRmlsZVJlZikKLSAgICAgICAgRXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmls
ZVJlZik7CisgICAgICAgIFBBTDo6RXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmlsZVJl
Zik7CiAKICAgICBtX2V4dEF1ZGlvRmlsZVJlZiA9IDA7CiAKICAgICBpZiAobV9hdWRpb0ZpbGVJ
RCkKLSAgICAgICAgQXVkaW9GaWxlQ2xvc2UobV9hdWRpb0ZpbGVJRCk7CisgICAgICAgIFBBTDo6
QXVkaW9GaWxlQ2xvc2UobV9hdWRpb0ZpbGVJRCk7CiAKICAgICBtX2F1ZGlvRmlsZUlEID0gMDsK
IH0KQEAgLTE1NSw3ICsxNDMsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6
Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogCiAgICAgLy8gR2V0
IGZpbGUncyBkYXRhIGZvcm1hdAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZmlsZURhdGFG
b3JtYXQpOwotICAgIGlmIChFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJl
Ziwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURh
dGFGb3JtYXQpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFByb3BlcnR5
KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3JtYXQs
ICZzaXplLCAmbV9maWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMgPSBtX2ZpbGVEYXRhRm9ybWF0Lm1D
aGFubmVsc1BlckZyYW1lOwpAQCAtMTYzLDcgKzE1MSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVk
aW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8p
CiAgICAgLy8gTnVtYmVyIG9mIGZyYW1lcwogICAgIFNJbnQ2NCBudW1iZXJPZkZyYW1lczY0ID0g
MDsKICAgICBzaXplID0gc2l6ZW9mKG51bWJlck9mRnJhbWVzNjQpOwotICAgIGlmIChFeHRBdWRp
b0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5
X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIgfHwg
bnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFByb3Bl
cnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZUxlbmd0aEZy
YW1lcywgJnNpemUsICZudW1iZXJPZkZyYW1lczY0KSAhPSBub0VyciB8fCBudW1iZXJPZkZyYW1l
czY0IDw9IDApCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgZG91YmxlIGZpbGVTYW1w
bGVSYXRlID0gbV9maWxlRGF0YUZvcm1hdC5tU2FtcGxlUmF0ZTsKQEAgLTE4NSw3ICsxNzMsNyBA
QCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBs
ZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAgIGlmIChzYW1wbGVSYXRlKQogICAgICAgICBtX2Ns
aWVudERhdGFGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOwogCi0gICAgaWYgKEV4dEF1
ZGlvRmlsZVNldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVy
dHlfQ2xpZW50RGF0YUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiks
ICZtX2NsaWVudERhdGFGb3JtYXQpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmls
ZVNldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfQ2xp
ZW50RGF0YUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZtX2Ns
aWVudERhdGFGb3JtYXQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IC8vIENoYW5nZSBudW1iZXJPZkZyYW1lczY0IHRvIGRlc3RpbmF0aW9uIHNhbXBsZS1yYXRlCkBA
IC0yNDMsNyArMjMxLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0
ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKIAogICAgIC8vIFJlYWQgZnJv
bSB0aGUgZmlsZSAob3IgaW4tbWVtb3J5IHZlcnNpb24pCiAgICAgVUludDMyIGZyYW1lc1RvUmVh
ZCA9IG51bWJlck9mRnJhbWVzOwotICAgIGlmIChFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9G
aWxlUmVmLCAmZnJhbWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgeworICAgIGlmIChQ
QUw6OkV4dEF1ZGlvRmlsZVJlYWQobV9leHRBdWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1
ZmZlckxpc3QpICE9IG5vRXJyKSB7CiAgICAgICAgIGRlc3Ryb3lBdWRpb0J1ZmZlckxpc3QoYnVm
ZmVyTGlzdCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2Nv
YS5oCmluZGV4IGI3YjkxNjNiNTZlMjZjMjljYWI4NGVlMjQ3NjllMjk3MTQxN2FmZmMuLjBiYmJi
YTI3ODU3ZDk3OWVjYzY4OGY4N2YwMzM5ZjY2NWVmNDI1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
aApAQCAtMzEsMTAgKzMxLDEyIEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCi0jaW5jbHVk
ZSA8QXVkaW9Ub29sYm94L0F1ZGlvRmlsZS5oPgotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9FeHRl
bmRlZEF1ZGlvRmlsZS5oPgorI2luY2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAordXNpbmcgRXh0QXVkaW9GaWxlUmVmID0gc3RydWN0
IE9wYXF1ZUV4dEF1ZGlvRmlsZSo7Cit1c2luZyBBdWRpb0ZpbGVJRCA9IHN0cnVjdCBPcGFxdWVB
dWRpb0ZpbGVJRCo7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9CdXM7CkBA
IC01OCw3ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qgdm9pZCogbV9kYXRhID0geyBudWxs
cHRyIH07CiAgICAgc2l6ZV90IG1fZGF0YVNpemUgPSB7IDAgfTsKIAotICAgIEF1ZGlvRmlsZUlE
IG1fYXVkaW9GaWxlSUQgPSB7IDAgfTsKKyAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0g
eyBudWxscHRyIH07CiAgICAgRXh0QXVkaW9GaWxlUmVmIG1fZXh0QXVkaW9GaWxlUmVmID0geyBu
dWxscHRyIH07CiAKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbV9maWxlRGF0YUZv
cm1hdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKaW5kZXggNDc4NzUwNzJhNzg2ZWQ2ODZj
MWQ0MDFlODJlNjI1OWNhMjNjNTRiNi4uMTQ4YjA1NWRiZWM4OTQzZWE1YWFjNjhlNjg1OGRlN2Qw
YjgyMzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKQEAgLTI4LDYgKzI4LDggQEAK
IAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb091dHB1dFVuaXRBZGFw
dG9yOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yKEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJlcikK
QEAgLTM5LDEyICs0MSwxMiBAQCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpBdWRpb091dHB1dFVu
aXRBZGFwdG9yKEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJlcikKIEF1ZGlvT3V0cHV0VW5pdEFk
YXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKCkKIHsKICAgICBpZiAobV9vdXRwdXRVbml0
KQotICAgICAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX291dHB1dFVuaXQpOwor
ICAgICAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fb3V0cHV0VW5pdCk7
CiB9CiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIHsKLSAgICBh
dXRvIHJlc3VsdCA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CisgICAgYXV0
byByZXN1bHQgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAgICAg
aWYgKHJlc3VsdCAhPSBub0VycikKICAgICAgICAgV1RGTG9nQWx3YXlzKCJFUlJPUjogQXVkaW9P
dXRwdXRVbml0U3RhcnQoKSBjYWxsIGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVsZCIsIHN0YXRp
Y19jYXN0PGxvbmc+KHJlc3VsdCkpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC01Miw3ICs1NCw3
IEBAIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIAogT1NTdGF0dXMg
QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6c3RvcCgpCiB7Ci0gICAgcmV0dXJuIEF1ZGlvT3V0cHV0
VW5pdFN0b3AobV9vdXRwdXRVbml0KTsKKyAgICByZXR1cm4gUEFMOjpBdWRpb091dHB1dFVuaXRT
dG9wKG1fb3V0cHV0VW5pdCk7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0IGNhbGxiYWNrCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJMaXN0LmNwcAppbmRleCBmZGY2Nzc1N2QxYjQ3NzYwODA4YjEzZmI0MzRl
NDBiM2RmZDMwZTA0Li40ZTkwNjRkMGM2ZTkzMDg5YWUwZWFhNmY5OThlY2Q2NTM3MzVkMWU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJW
ZWN0b3JNYXRoLmgiCiAjaW5jbHVkZSA8QWNjZWxlcmF0ZS9BY2NlbGVyYXRlLmg+CiAjaW5jbHVk
ZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTI3Miw3ICsyNzMsNyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3Qg
ZgogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGlucHV0Rm9ybWF0OwogICAgIFVJ
bnQzMiBwcm9wZXJ0eURhdGFTaXplID0gc2l6ZW9mKGlucHV0Rm9ybWF0KTsKLSAgICBBdWRpb0Nv
bnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0
U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0eURhdGFTaXplLCAmaW5wdXRGb3JtYXQpOworICAg
IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlucHV0
Rm9ybWF0KTsKICAgICBBU1NFUlQoZnJhbWVDb3VudCA8PSBzb3VyY2UubUJ1ZmZlcnNbMF0ubURh
dGFCeXRlU2l6ZSAvIGlucHV0Rm9ybWF0Lm1CeXRlc1BlclBhY2tldCk7CiAKICAgICBBdWRpb0Nv
bnZlcnRlckZyb21BQkxDb250ZXh0IGNvbnRleHQgeyBzb3VyY2UsIGZyYW1lQ291bnQsIGlucHV0
Rm9ybWF0Lm1CeXRlc1BlclBhY2tldCB9OwpAQCAtMjgwLDcgKzI4MSw3IEBAIE9TU3RhdHVzIEF1
ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBzb3Vy
Y2UsIHNpemVfdCBmCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiBvdXRwdXRGb3JtYXQ7CiAgICAgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihvdXRw
dXRGb3JtYXQpOwotICAgIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVk
aW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0eURhdGFT
aXplLCAmb3V0cHV0Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
Y29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24s
ICZwcm9wZXJ0eURhdGFTaXplLCAmb3V0cHV0Rm9ybWF0KTsKIAogICAgIEFTU0VSVChDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24ob3V0cHV0Rm9ybWF0KS5udW1iZXJPZkNoYW5uZWxTdHJlYW1zKCkg
PT0gbV9idWZmZXJMaXN0LT5idWZmZXJDb3VudCgpKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAw
OyBpIDwgbV9idWZmZXJMaXN0LT5idWZmZXJDb3VudCgpOyArK2kpIHsKQEAgLTI5MCw3ICsyOTEs
NyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlv
QnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2VuZGlmCiAKICAgICBVSW50MzIgc2FtcGxl
c0NvbnZlcnRlZCA9IG1fc2FtcGxlQ2FwYWNpdHk7Ci0gICAgT1NTdGF0dXMgZXJyID0gQXVkaW9D
b252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcihjb252ZXJ0ZXIsIGF1ZGlvQ29udmVydGVyRnJvbUFC
TENhbGxiYWNrLCAmY29udGV4dCwgJnNhbXBsZXNDb252ZXJ0ZWQsIG1fYnVmZmVyTGlzdC0+bGlz
dCgpLCBudWxscHRyKTsKKyAgICBPU1N0YXR1cyBlcnIgPSBQQUw6OkF1ZGlvQ29udmVydGVyRmls
bENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRpb0NvbnZlcnRlckZyb21BQkxDYWxsYmFjaywg
JmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBtX2J1ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0
cik7CiAgICAgaWYgKCFlcnIgfHwgZXJyID09IGtSYW5PdXRPZklucHV0RGF0YVN0YXR1cykgewog
ICAgICAgICBtX3NhbXBsZUNvdW50ID0gc2FtcGxlc0NvbnZlcnRlZDsKICAgICAgICAgcmV0dXJu
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b1NhbXBsZURhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KaW5kZXggZTVlYzQ3Nzc4NTgxYTdhY2YwZTcyNTUz
MzNmOWUyNjk0MWM0NzJkMS4uZDJiNWFjNDVmMzBmZDRhM2FmNTFiNDIwZGUzNzY0OWIxMTUxYzIy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9T
YW1wbGVEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBSZWY8QXVkaW9TYW1wbGVE
YXRhU291cmNlPiBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShzaXplX3QgbWF4aW11bVNh
bXBsZUNvdW50LCBMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlciwgc2l6ZV90IHdhaXRUb1N0YXJ0
Rm9yUHVzaENvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKaW5kZXggODllY2VlZDYxY2IxOWJmZDdk
NDIwYzc3OGFhYTEyMGFjMzU2ZGJmZC4uMzBkZWIyZTRjNzQxZGY1NDg4YjM4ZjVlZDU5ZWViZTVh
MDI4OWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
V2ViQXVkaW9CdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJM
aXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQogICAgIDogbV9ieXRl
c1BlckZyYW1lKGZvcm1hdC5ieXRlc1BlckZyYW1lKCkpCkBAIC0xMTYsNyArMTE1LDcgQEAgV2Vi
QXVkaW9CdWZmZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBmb3JtYXQsIEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ01CbG9ja0J1ZmZl
clJlZiBidWZmZXIgPSBudWxscHRyOwotICAgIGlmIChub0VyciA9PSBDTVNhbXBsZUJ1ZmZlckdl
dEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwgbnVs
bHB0ciwgbV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0
b3JTeXN0ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZm
ZXJGbGFnX0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpKQor
ICAgIGlmIChub0VyciA9PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0
aFJldGFpbmVkQmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVyLCBudWxscHRyLCBtX2Nhbm9uaWNhbExp
c3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtD
RkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9CdWZmZXJM
aXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZlcikpCiAgICAgICAgIG1fYmxvY2tCdWZm
ZXIgPSBhZG9wdENGKGJ1ZmZlcik7CiAKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0
b3JJT1MuY3BwCmluZGV4IDJlOTYzMGZiNjBmMjJiM2VlNTZkMjQyZDczMDQzNDg2Yjg3YjU2MmYu
LmY4OTEwN2ZmYjFjM2Y1M2JlMzE5YWEzODY4MTQ3NzRiYjRkMjdhNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9T
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRwdXRV
bml0QWRhcHRvcklPUy5jcHAKQEAgLTMzLDE1ICszMyw3IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJ
TykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgot
I2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlv
VG9vbGJveCkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50RmluZE5leHQs
IEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIGNvbnN0IEF1ZGlv
Q29tcG9uZW50RGVzY3JpcHRpb24gKmluRGVzYyksIChpbkNvbXBvbmVudCwgaW5EZXNjKSkKLVNP
RlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVz
LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgKm91
dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCi1TT0ZUX0xJTksoQXVkaW9U
b29sYm94LCBBdWRpb1VuaXRBZGRQcm9wZXJ0eUxpc3RlbmVyLCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0UHJvcGVydHlMaXN0
ZW5lclByb2MgaW5Qcm9jLCB2b2lkICppblByb2NVc2VyRGF0YSksIChpblVuaXQsIGluSUQsIGlu
UHJvYywgaW5Qcm9jVXNlckRhdGEpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0
R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVy
dHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxl
bWVudCwgdm9pZCAqb3V0RGF0YSwgVUludDMyICppb0RhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwg
aW5TY29wZSwgaW5FbGVtZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKLVNPRlRfTElOSyhBdWRp
b1Rvb2xib3gsIEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5p
dCksIChpblVuaXQpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0U2V0UHJvcGVy
dHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklE
LCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgY29u
c3Qgdm9pZCAqaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2Nv
cGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKKyNpbmNsdWRlIDxwYWwvY2YvQXVk
aW9Ub29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OCwxNSAr
NTAsMTUgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFy
ZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1hbnVm
YWN0dXJlciA9IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21wb25l
bnRGbGFncyA9IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNvbXAg
PSBBdWRpb0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKKyAgICBjb21wID0gUEFMOjpBdWRp
b0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAotICAg
IE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0
cHV0VW5pdCk7CisgICAgT1NTdGF0dXMgcmVzdWx0ID0gUEFMOjpBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAg
IFVJbnQzMiBmbGFnID0gMTsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291
dHB1dFVuaXQsCisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1
dFVuaXQsCiAgICAgICAgIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywKICAgICAg
ICAga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwKICAgICAgICAgMCwKQEAgLTc0LDIwICs2NiwyMCBA
QCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNh
bXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgICAgICBzaXplb2YoZmxhZykpOwogICAgIEFT
U0VSVCghcmVzdWx0KTsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRw
dXRVbml0KTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRV
bml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFjawog
ICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0g
aW5wdXRQcm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVzdWx0
ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlf
U2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJmlucHV0LCBzaXpl
b2YoaW5wdXQpKTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0
cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0
U2NvcGVfSW5wdXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CiAgICAgQVNTRVJUKCFyZXN1
bHQpOwogCiAgICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24gc3RyZWFtRm9ybWF0OwogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2YoQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKTsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0
eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1Vu
aXRTY29wZV9PdXRwdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCAmc2l6ZSk7CisgICAgcmVz
dWx0ID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQ
cm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICh2b2lkKikm
c3RyZWFtRm9ybWF0LCAmc2l6ZSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgY29uc3Rl
eHByIGludCBieXRlc1BlckZsb2F0ID0gc2l6ZW9mKEZsb2F0MzIpOwpAQCAtMTAxLDcgKzkzLDcg
QEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVT
YW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBzdHJlYW1Gb3JtYXQubUNoYW5uZWxzUGVy
RnJhbWUgPSBudW1iZXJPZk91dHB1dENoYW5uZWxzOwogICAgIHN0cmVhbUZvcm1hdC5tQml0c1Bl
ckNoYW5uZWwgPSBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQ7CiAKLSAgICByZXN1bHQgPSBB
dWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJl
YW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQs
IHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKKyAgICByZXN1bHQgPSBQQUw6
OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0
cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1h
dCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwogICAgIEFTU0VSVCghcmVz
dWx0KTsKIAogICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1
ZmZlclNpemUoa1ByZWZlcnJlZEJ1ZmZlclNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMu
Y3BwCmluZGV4IGM4ZWQzZWY3OGM4YzZhM2IxZTA3MGNiNDQwNTk2OWFkYTRhYzNkYTIuLjcxNGNj
ZTg4NjI1NzUxODYxZDVlMmI4NTEzMTNhODlkMDQxMmVhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRh
cHRvck1hYy5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAj
aW5jbHVkZSA8Q29yZUF1ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxwYWwvY2YvQXVk
aW9Ub29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCwyMSAr
NDksMjEgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFy
ZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1hbnVm
YWN0dXJlciA9IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21wb25l
bnRGbGFncyA9IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNvbXAg
PSBBdWRpb0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKKyAgICBjb21wID0gUEFMOjpBdWRp
b0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAotICAg
IE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0
cHV0VW5pdCk7CisgICAgT1NTdGF0dXMgcmVzdWx0ID0gUEFMOjpBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAotICAg
IHJlc3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKKyAgICByZXN1bHQg
PSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQoIXJl
c3VsdCk7CiAKICAgICAvLyBTZXQgcmVuZGVyIGNhbGxiYWNrCiAgICAgQVVSZW5kZXJDYWxsYmFj
a1N0cnVjdCBpbnB1dDsKICAgICBpbnB1dC5pbnB1dFByb2MgPSBpbnB1dFByb2M7CiAgICAgaW5w
dXQuaW5wdXRQcm9jUmVmQ29uID0gdGhpczsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9w
ZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywg
a0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKKyAgICBy
ZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAm
aW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNl
dCBzdHJlYW0gZm9ybWF0CkBAIC03OSw3ICs4MCw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRh
cHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVy
CiAgICAgc3RyZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFu
bmVsczsKICAgICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBi
eXRlc1BlckZsb2F0OwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRw
dXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVf
SW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uKSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291
dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29w
ZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAppbmRleCBhNTMzMzJjZjdk
YmQ2NDY2ZjQ0ZjU3NmQxY2Q3YWRlNzYxNTBhYTRmLi43ODQ3NGQ4ZTVhNWFjMDcwMzUzMzU5OTBj
ZGRmOGFmY2Q4MDU2MTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZWRpYVV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TWVkaWFVdGlsaXRpZXMuY3BwCkBAIC0zMywxMyArMzMsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlw
dGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9p
ZCogbWFnaWNDb29raWUpCiB7CiAgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZv
cm1hdCA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxscHRy
LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBudWxscHRyLCAmZm9ybWF0KTsKKyAgICBh
dXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXpl
LCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwgJmZvcm1hdCk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAg
ICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01NSwxNCArNTMsMTQgQEAg
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGEKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3Ig
PSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0Lmdl
dCgpLCBzYW1wbGVDb3VudCwgdGltZSwgbnVsbHB0ciwgJnNhbXBsZUJ1ZmZlcik7CisgICAgYXV0
byBlcnJvciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlw
dGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxw
dHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZm
ZXIpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2Ft
cGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9yKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRD
RihzYW1wbGVCdWZmZXIpOwogCi0gICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZm
ZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwg
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRh
KS5saXN0KCkpOworICAgIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJG
cm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NG
QWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5s
aXN0KCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCmluZGV4IDU3Y2YyOWQwZDc3ZTY3
ODg5YmRjZWZkNDA1ODUxMjllZDEyYTQ1NTUuLjY0ZTMwYmMyOTNjYThmOTM4ODQ4OGYxNDg4NTA2
YzU3YmUwYTUxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlICJD
b3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3Bh
Y2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHRyYW5z
ZmVyQkdSQVBpeGVsQnVmZmVyVG9JT1N1cmZhY2UoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
cikKIHsKQEAgLTkwLDcgKzg5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxl
PiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUKIHsKICAgICBB
U1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01T
YW1wbGVCdWZmZXJUeXBlKTsKIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNhbXBsZUJ1ZmZl
ckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1
ZmZlcik7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwog
ICAgIGlmICghaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEs
ICJSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlOiBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
IHJldHVybmVkIG51bGxwdHIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggOTgzOWIzNzBh
NzEzYjdjMWQyM2Q4NDdmYTg2NTA1ZDVhZTk3OWFiMi4uZGZmNGZhNGVkZjI2NGI0NTJiZjhkYTdh
ZmFlZjRjYmQ3YTAyN2IwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbQpAQCAtNDYsMjIgKzQ2LDEzIEBACiAjaW1wb3J0IDx3dGYvU3RyaW5n
UHJpbnRTdHJlYW0uaD4KICNlbmRpZgogCisjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29m
dExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0KLVNPRlRfTElOS19GUkFNRVdPUkso
TWVkaWFUb29sYm94KQotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi0KLVNPRlRf
TElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9T
U3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVt
YmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1
ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01G
cmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRwdXREYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xi
b3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29u
dmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0Nv
bnZlcnRlcikpCi0KLVNPRlRfTElOSyhNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFw
R2V0U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkK
LVNPRlRfTElOSyhNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVk
aW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBu
dW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01J
dGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZyYW1lcywgYnVmZmVyTGlz
dEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQpKQotU09GVF9M
SU5LX01BWV9GQUlMKE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUsIE9T
U3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcENhbGxiYWNrcyAqY2FsbGJhY2tzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0aW9uRmxh
Z3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmICp0YXBPdXQpLCAoYWxsb2NhdG9yLCBj
YWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpKQorI2ltcG9ydCA8cGFsL2NvY29hL01lZGlhVG9vbGJv
eFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIHN0YXRpYyBjb25zdCBkb3VibGUga1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7CiAKIGNsYXNz
IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlPiB7CkBA
IC03Myw3ICs2NCw3IEBAIHB1YmxpYzoKIAogUmVmUHRyPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDPiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKEFWUGxheWVySXRlbSAqaXRl
bSkKIHsKLSAgICBpZiAoIWNhbkxvYWRNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSgpKQorICAg
IGlmICghUEFMOjpjYW5Mb2FkX01lZGlhVG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0
ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhpdGVtKSk7CiB9CkBAIC0xNTIsNyArMTQzLDcgQEAg
dm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBi
dXMsIHNpemVfdCBmcmFtZXNUb1Byb2MKICAgICBtX3JlYWRDb3VudCArPSBmcmFtZXNUb1Byb2Nl
c3M7CiAKICAgICBpZiAobV9jb252ZXJ0ZXIpCi0gICAgICAgIEF1ZGlvQ29udmVydGVyQ29udmVy
dENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0
LmdldCgpLCBtX2xpc3QuZ2V0KCkpOworICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyQ29udmVy
dENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0
LmdldCgpLCBtX2xpc3QuZ2V0KCkpOwogfQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQpAQCAtMjI1
LDcgKzIxNiw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZU1peElm
TmVlZGVkKCkKICAgICB9OwogCiAgICAgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwID0gbnVs
bHB0cjsKLSAgICBPU1N0YXR1cyBzdGF0dXMgPSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKKyAgICBPU1N0YXR1cyBz
dGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsICZjYWxsYmFja3MsIDEsICZ0YXApOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAg
ICAgICAgaWYgKHRhcCkKICAgICAgICAgICAgIENGUmVsZWFzZSh0YXApOwpAQCAtMjU4LDE0ICsy
NDksMTQgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6aW5pdENhbGxiYWNrKE1U
QXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgdm9pZCoKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQog
ewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNf
Y2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwor
ICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFM
OjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAgICAgdGFwU3RvcmFnZS0+
ZGVyZWYoKTsKIH0KIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNh
bGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbWF4RnJhbWVz
LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKnByb2Nlc3NpbmdGb3JtYXQpCiB7
CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19j
YXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7Cisg
ICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihQQUw6
Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExvY2tlciBsb2Nr
ZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTI3Niw3ICsyNjcsNyBAQCB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYgdGFwLCBDTQogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJl
Q2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogewogICAgIEFTU0VSVCh0YXAp
OwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4o
TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRh
cFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+
bG9jayB9OwogCkBAIC0yODcsNyArMjc4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6dW5wcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogdm9p
ZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzc0NhbGxiYWNrKE1UQXVkaW9Qcm9j
ZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcEZsYWdzIGZsYWdzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgQ01J
dGVtQ291bnQgKm51bWJlckZyYW1lc091dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxh
Z3NPdXQpCiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9
IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2Uo
dGFwKSk7CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3Jh
Z2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExv
Y2tlciBsb2NrZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTMxNyw3ICszMDgsNyBAQCB2
b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKENNSXRlbUNvdW50IG1heEZy
YW1lcywgY29uc3QgQXVkaW9TdHJlYQogCiAgICAgaWYgKCptX3RhcERlc2NyaXB0aW9uICE9ICpt
X291dHB1dERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEF1ZGlvQ29udmVydGVyUmVmIG91dENvbnZl
cnRlciA9IG51bGxwdHI7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyTmV3KG1fdGFwRGVzY3JpcHRp
b24uZ2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOworICAg
ICAgICBQQUw6OkF1ZGlvQ29udmVydGVyTmV3KG1fdGFwRGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0
cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRl
ciA9IG91dENvbnZlcnRlcjsKICAgICB9CiAKQEAgLTM1Nyw3ICszNDgsNyBAQCB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRh
cCwgQ01JdGVtQ291bgogICAgIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7CiAgICAg
Q01UaW1lUmFuZ2UgcmFuZ2VPdXQ7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRBdWRpb1Byb2Nl
c3NpbmdUYXBHZXRTb3VyY2VBdWRpbyh0YXAsIG51bWJlck9mRnJhbWVzLCBidWZmZXJMaXN0SW5P
dXQsIGZsYWdzT3V0LCAmcmFuZ2VPdXQsICZpdGVtQ291bnQpOworICAgIE9TU3RhdHVzIHN0YXR1
cyA9IFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyh0YXAsIG51bWJlck9m
RnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCAmcmFuZ2VPdXQsICZpdGVtQ291bnQp
OwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgIWl0ZW1Db3VudCkKICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAzMDViM2QyN2UzNDJmOTg3MjExMmYxMTc0
YzE0ZmY0ZjNjNjA4NTVkLi41MzI5ZjFkOWQzYWVhN2M1NGQzMzY2YzMyYWQxYTYwMzhhNzllYjJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTIzMiw3ICsyMzIsNiBAQCBzdHJ1Y3QgTG9n
QXJndW1lbnQ8QVZQbGF5ZXJUaW1lQ29udHJvbFN0YXR1cz4gewogfTsgLy8gbmFtZXNwYWNlIFdU
RgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMg
TlNBcnJheSAqYXNzZXRNZXRhZGF0YUtleU5hbWVzKCk7CiBzdGF0aWMgTlNBcnJheSAqaXRlbUtW
T1Byb3BlcnRpZXMoKTsKQEAgLTU3Miw3ICs1NzEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRvcigp
CiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVS
KTsKIAogICAgIGlmICghbV9hdkFzc2V0IHx8IG1faW1hZ2VHZW5lcmF0b3IpCkBAIC01ODIsOCAr
NTgwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJ
bWFnZUdlbmVyYXRvcigpCiAKICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVydHVy
ZU1vZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07CiAg
ICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNm
b3JtOllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGltZVRv
bGVyYW5jZUJlZm9yZTprQ01UaW1lWmVyb107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkg
c2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUFmdGVyOmtDTVRpbWVaZXJvXTsKKyAgICBbbV9pbWFn
ZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOlBBTDo6a0NN
VGltZVplcm9dOworICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVU
b2xlcmFuY2VBZnRlcjpQQUw6OmtDTVRpbWVaZXJvXTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKQpAQCAt
NjcxLDcgKzY2OSw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpnZXRTdGFydERhdGUoKSBjb25zdAogICAgIGlmICghZGF0ZSkKICAgICAgICAgcmV0dXJu
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKIAotICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IENN
VGltZUdldFNlY29uZHMoW21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAwOworICAg
IGRvdWJsZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0
ZW0gY3VycmVudFRpbWVdKSAqIDEwMDA7CiAKICAgICAvLyBSb3VuZGluZyBkdWUgdG8gc2Vjb25k
IG9mZnNldCBlcnJvciB3aGVuIHN1YnRyYWN0aW5nLgogICAgIHJldHVybiBNZWRpYVRpbWU6OmNy
ZWF0ZVdpdGhEb3VibGUocm91bmQoZGF0ZSAtIGN1cnJlbnRUaW1lKSk7CkBAIC0xMDg5LDcgKzEw
ODcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFW
UGxheWVyKCkKIAogICAgIEFTU0VSVCghbV9jdXJyZW50VGltZU9ic2VydmVyKTsKICAgICBhdXRv
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwotICAgIG1fY3VycmVudFRpbWVPYnNlcnZl
ciA9IFttX2F2UGxheWVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6Q01UaW1l
TWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOlt3
ZWFrVGhpc10gKENNVGltZSB0aW1lKSB7CisgICAgbV9jdXJyZW50VGltZU9ic2VydmVyID0gW21f
YXZQbGF5ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1h
a2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vh
a1RoaXNdIChDTVRpbWUgdGltZSkgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAg
ICB3ZWFrVGhpcy0+Y3VycmVudE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKHRp
bWUpKTsKICAgICB9XTsKQEAgLTE0MjMsNyArMTQyMSw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIAogICAgIGlmICghbV93YWxsQ2xvY2tB
dENhY2hlZEN1cnJlbnRUaW1lKQotICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKHRv
TWVkaWFUaW1lKFttX2F2UGxheWVySXRlbS5nZXQoKSBjdXJyZW50VGltZV0pKTsKKyAgICAgICAg
Y3VycmVudE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKFttX2F2UGxheWVySXRl
bS5nZXQoKSBjdXJyZW50VGltZV0pKTsKICAgICBBU1NFUlQobV93YWxsQ2xvY2tBdENhY2hlZEN1
cnJlbnRUaW1lKTsKIAogICAgIGF1dG8gaXRlbVRpbWUgPSBtX2NhY2hlZEN1cnJlbnRNZWRpYVRp
bWU7CkBAIC0xNDY4LDggKzE0NjYsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAgIENN
VGltZSBjbUFmdGVyID0gUEFMOjp0b0NNVGltZShwb3NpdGl2ZVRvbGVyYW5jZSk7CiAKICAgICAv
LyBbQVZQbGF5ZXJJdGVtIHNlZWtUb1RpbWVdIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRv
bGVyYW5jZUJlZm9yZSBpcyBuZWdhdGl2ZS4KLSAgICBpZiAoQ01UaW1lQ29tcGFyZShjbUJlZm9y
ZSwga0NNVGltZVplcm8pIDwgMCkKLSAgICAgICAgY21CZWZvcmUgPSBrQ01UaW1lWmVybzsKKyAg
ICBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKGNtQmVmb3JlLCBQQUw6OmtDTVRpbWVaZXJvKSA8IDAp
CisgICAgICAgIGNtQmVmb3JlID0gUEFMOjprQ01UaW1lWmVybzsKICAgICAKICAgICBhdXRvIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogCkBAIC0xNTg2LDYgKzE1ODQsOCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFBpdGNoQ29ycmVjdGlvbkFs
Z29yaXRobShNZWRpYVBsYXllcgogCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2Vz
PiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVkVGlt
ZVJhbmdlcygpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElN
RVJBTkdFX0lTX0VNUFRZLgorCiAgICAgYXV0byB0aW1lUmFuZ2VzID0gbWFrZVVuaXF1ZTxQbGF0
Zm9ybVRpbWVSYW5nZXM+KCk7CiAKICAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtKQpAQCAtMTU5NCwx
MyArMTU5NCwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybQogICAgIGZvciAoTlNWYWx1ZSAq
dGhpc1JhbmdlVmFsdWUgaW4gbV9jYWNoZWRMb2FkZWRSYW5nZXMuZ2V0KCkpIHsKICAgICAgICAg
Q01UaW1lUmFuZ2UgdGltZVJhbmdlID0gW3RoaXNSYW5nZVZhbHVlIENNVGltZVJhbmdlVmFsdWVd
OwogICAgICAgICBpZiAoQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSAmJiAhQ01USU1F
UkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkKLSAgICAgICAgICAgIHRpbWVSYW5nZXMtPmFkZChQ
QUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1l
UmFuZ2VHZXRFbmQodGltZVJhbmdlKSkpOworICAgICAgICAgICAgdGltZVJhbmdlcy0+YWRkKFBB
TDo6dG9NZWRpYVRpbWUodGltZVJhbmdlLnN0YXJ0KSwgUEFMOjp0b01lZGlhVGltZShQQUw6OkNN
VGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKICAgICB9CiAgICAgcmV0dXJuIHRpbWVSYW5n
ZXM7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpw
bGF0Zm9ybU1pblRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBB
TDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VNUFRZLgorCiAgICAgaWYgKCFtX2NhY2hlZFNlZWth
YmxlUmFuZ2VzIHx8ICFbbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyBjb3VudF0pCiAgICAgICAgIHJl
dHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKQEAgLTE2MjEsNiArMTYyMyw4IEBAIE1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1pblRpbWVT
ZWVrYWJsZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFt
ZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VNUFRZLgorCiAgICAgaWYgKCFtX2Nh
Y2hlZFNlZWthYmxlUmFuZ2VzKQogICAgICAgICBtX2NhY2hlZFNlZWthYmxlUmFuZ2VzID0gW21f
YXZQbGF5ZXJJdGVtIHNlZWthYmxlVGltZVJhbmdlc107CiAKQEAgLTE2MzMsNyArMTYzNyw3IEBA
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1h
eFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFMSUQo
dGltZVJhbmdlKSB8fCBDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBB
TDo6dG9NZWRpYVRpbWUoQ01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CisgICAgICAgIE1l
ZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZVJhbmdlR2V0
RW5kKHRpbWVSYW5nZSkpOwogICAgICAgICBpZiAobWF4VGltZVNlZWthYmxlIDwgZW5kT2ZSYW5n
ZSkKICAgICAgICAgICAgIG1heFRpbWVTZWVrYWJsZSA9IGVuZE9mUmFuZ2U7CiAgICAgfQpAQCAt
MTY0Miw2ICsxNjQ2LDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgpIGNv
bnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VN
UFRZLgorCiAgICAgaWYgKCFtX2NhY2hlZExvYWRlZFJhbmdlcykKICAgICAgICAgcmV0dXJuIE1l
ZGlhVGltZTo6emVyb1RpbWUoKTsKIApAQCAtMTY1MSw3ICsxNjU3LDcgQEAgTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgp
IGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSB8fCBD
TVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUo
Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CisgICAgICAgIE1lZGlhVGltZSBlbmRPZlJh
bmdlID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkp
OwogICAgICAgICBpZiAobWF4VGltZUxvYWRlZCA8IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBt
YXhUaW1lTG9hZGVkID0gZW5kT2ZSYW5nZTsKICAgICB9CkBAIC0xODAzLDcgKzE4MDksNyBAQCBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZQogICAgIE1vbm90b25pY1RpbWUgc3RhcnQgPSBNb25vdG9u
aWNUaW1lOjpub3coKTsKIAogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldE1heGltdW1T
aXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiByYXdJ
bWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRpbWU6
Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJyb3I6bmls
XSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9pbWFn
ZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFnZUF0VGltZTpQQUw6OkNNVGltZU1ha2VXaXRoU2Vj
b25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOwogICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JT
cGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSkpOwogCiAgICAgSU5GT19M
T0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGltYWdlIHRvb2sgIiwgKE1vbm90b25pY1RpbWU6
Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7CkBAIC0xOTg5LDcgKzE5OTUsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFN0b3BMb2FkaW5nUmVxdWVzdChB
VkFzc2V0UmVzb3VyY2VMbwogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1l
d29ya0F2YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7CisgICAg
cmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBQQUw6Omlz
Q29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoY29uc3QgTWVk
aWFUaW1lJiB0aW1lVmFsdWUpIGNvbnN0CkBAIC0yOTAxLDcgKzI5MDcsNyBAQCBzdGF0aWMgTlNT
dHJpbmcgKmV4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcihBVlBsYXllciAqcGxheWVy
KQogICAgIGlmICghUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgaWYgKGF1dG8gY29udGV4dCA9IE91dHB1dENvbnRleHQ6
OnNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dCgpKQorICAgIGlmIChhdXRvIGNv
bnRleHQgPSBQQUw6Ok91dHB1dENvbnRleHQ6OnNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0
Q29udGV4dCgpKQogICAgICAgICByZXR1cm4gY29udGV4dC0+ZGV2aWNlTmFtZSgpOwogCiAgICAg
aWYgKHBsYXllci5leHRlcm5hbFBsYXliYWNrVHlwZSAhPSBBVlBsYXllckV4dGVybmFsUGxheWJh
Y2tUeXBlQWlyUGxheSkKQEAgLTMyMzUsOSArMzI0MSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFHcm91cERpZEFycml2ZShjb25zdCBSZXRhaW5Q
dHI8CiAgICAgICAgIGZvciAoQVZNZXRhZGF0YUl0ZW0gKml0ZW0gaW4gZ3JvdXAuaXRlbXMpIHsK
ICAgICAgICAgICAgIFJldGFpblB0cjxBVk11dGFibGVNZXRhZGF0YUl0ZW0+IGl0ZW1Db3B5ID0g
YWRvcHROUyhbaXRlbSBtdXRhYmxlQ29weV0pOwogICAgICAgICAgICAgaWYgKCFDTVRJTUVfSVNf
VkFMSUQoaXRlbUNvcHkuZ2V0KCkudGltZSkpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0
KCkudGltZSA9IENNVGltZU1ha2VXaXRoU2Vjb25kcyhncm91cFN0YXJ0VGltZSwgTWVkaWFUaW1l
OjpEZWZhdWx0VGltZVNjYWxlKTsKKyAgICAgICAgICAgICAgICBpdGVtQ29weS5nZXQoKS50aW1l
ID0gUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUsIE1lZGlhVGltZTo6
RGVmYXVsdFRpbWVTY2FsZSk7CiAgICAgICAgICAgICBpZiAoIUNNVElNRV9JU19WQUxJRChpdGVt
Q29weS5nZXQoKS5kdXJhdGlvbikpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVy
YXRpb24gPSB0b0NNVGltZShncm91cER1cmF0aW9uKTsKKyAgICAgICAgICAgICAgICBpdGVtQ29w
eS5nZXQoKS5kdXJhdGlvbiA9IFBBTDo6dG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7CiAgICAgICAg
ICAgICBbZ3JvdXBDb3B5IGFkZE9iamVjdDppdGVtQ29weS5nZXQoKV07CiAgICAgICAgIH0KIApA
QCAtMzI3OSw3ICszMjg1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjptZXRhZGF0YURpZEFycml2ZShjb25zdCBSZXRhaW5QdHI8TlNBcnIKIAogICAgICAgICBN
ZWRpYVRpbWUgZW5kID0gTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpOwogICAgICAg
ICBhdXRvIGR1cmF0aW9uID0gaXRlbS5kdXJhdGlvbjsKLSAgICAgICAgaWYgKENNVElNRV9JU19W
QUxJRChkdXJhdGlvbikgJiYgQ01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkKKyAg
ICAgICAgaWYgKENNVElNRV9JU19WQUxJRChkdXJhdGlvbikgJiYgUEFMOjpDTVRpbWVHZXRTZWNv
bmRzKGR1cmF0aW9uKSA+IDAuMDAxKQogICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBQQUw6OnRv
TWVkaWFUaW1lKGR1cmF0aW9uKTsKIAogICAgICAgICBBdG9tU3RyaW5nIHR5cGUgPSBudWxsQXRv
bSgpOwpAQCAtMzQ1OCw3ICszNDY0LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm8KICAgICBp
ZiAobV90aW1lT2JzZXJ2ZXIpCiAgICAgICAgIFttX2F2UGxheWVyIHJlbW92ZVRpbWVPYnNlcnZl
cjptX3RpbWVPYnNlcnZlci5nZXQoKV07CiAKLSAgICBtX3RpbWVPYnNlcnZlciA9IFttX2F2UGxh
eWVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhD
TVRpbWU6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVz
aW5nQmxvY2s6XnsKKyAgICBtX3RpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZEJvdW5kYXJ5
VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6UEFMOjp0b0NN
VGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpe
ewogICAgICAgICB0YXNrSW4oKTsKICAgICB9XTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQppbmRleCA1YTY5YWE2Nzk1MTg5Y2I0ZTA3NmQzMTk0NjlmOTk2NTA0
ZmY5NDZjLi43M2FkZWI5YmI3M2E3ODI4ZGY1YTNmNDg0YzVmOTBlMzMzZDI0MWIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC02Niw3ICs2Niw2IEBAIC0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDooTlNVUkwgKilzdG9yYWdlRGlyZWN0b3J5Owog
QGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBTdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpTZWVrU3RhdGUgZW51bWVyYXRpb25WYWx1ZSkKIHsKQEAgLTExNiwxNSArMTE1
LDE1IEBAIHN0YXRpYyB2b2lkIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNr
KENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCBjb25zCiAKIHZvaWQgRWZmZWN0aXZlUmF0ZUNoYW5n
ZWRMaXN0ZW5lcjo6c3RvcChDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogewotICAgIENNTm90aWZp
Y2F0aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxD
ZW50ZXIoKTsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlz
LCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGltZWJhc2VOb3Rp
ZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlKTsKKyAgICBDTU5vdGlmaWNh
dGlvbkNlbnRlclJlZiBuYyA9IFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9j
YWxDZW50ZXIoKTsKKyAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIo
bmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBQQUw6OmtD
TVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSk7CiB9
CiAKIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlz
dGVuZXIoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDJiBjbGllbnQsIENNVGlt
ZWJhc2VSZWYgdGltZWJhc2UpCiAgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQog
ewotICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJH
ZXREZWZhdWx0TG9jYWxDZW50ZXIoKTsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3Rl
bmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NN
VGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAwKTsK
KyAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IFBBTDo6Q01Ob3RpZmljYXRpb25DZW50
ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKTsKKyAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVy
QWRkTGlzdGVuZXIobmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxi
YWNrLCBQQUw6OmtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0
aW1lYmFzZSwgMCk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIp
CkBAIC0xNTcsNyArMTU2LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWEKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBERUJVR19MT0cobG9n
U2l0ZUlkZW50aWZpZXIsICJzeW5jaHJvbml6ZXIgZmlyZWQgZm9yICIsIHRvTWVkaWFUaW1lKHRp
bWUpLCAiLCBzZWVraW5nID0gIiwgbV9zZWVraW5nLCAiLCBwZW5kaW5nID0gIiwgISFtX3BlbmRp
bmdTZWVrKTsKKyAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hyb25p
emVyIGZpcmVkIGZvciAiLCBQQUw6OnRvTWVkaWFUaW1lKHRpbWUpLCAiLCBzZWVraW5nID0gIiwg
bV9zZWVraW5nLCAiLCBwZW5kaW5nID0gIiwgISFtX3BlbmRpbmdTZWVrKTsKIAogICAgICAgICBp
ZiAobV9zZWVraW5nICYmICFtX3BlbmRpbmdTZWVrKSB7CiAgICAgICAgICAgICBtX3NlZWtpbmcg
PSBmYWxzZTsKQEAgLTIzOCwxMSArMjM3LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0CiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUoKQog
ewogICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkKLSAg
ICAgICAgJiYgaXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQotICAgICAgICAmJiBnZXRB
VlN0cmVhbURhdGFQYXJzZXJDbGFzcygpCi0gICAgICAgICYmIGdldEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlckNsYXNzKCkKLSAgICAgICAgJiYgZ2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5j
aHJvbml6ZXJDbGFzcygpCi0gICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKGdldEFW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3RvcihzZXRNdXRlZDopKTsK
KyAgICAgICAgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpCisgICAgICAg
ICYmIFBBTDo6Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKQorICAgICAgICAmJiBQQUw6Omdl
dEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCkKKyAgICAgICAgJiYgUEFMOjpnZXRB
VlNhbXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplckNsYXNzKCkKKyAgICAgICAgJiYgY2xhc3Nf
Z2V0SW5zdGFuY2VNZXRob2QoUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFz
cygpLCBAc2VsZWN0b3Ioc2V0TXV0ZWQ6KSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpCkBAIC00MTcsNyArNDE2LDcgQEAgTWVkaWFU
aW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRp
bWUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKIHsKLSAgICBNZWRpYVRpbWUgc3luY2hyb25p
emVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25p
emVyIHRpbWViYXNlXSkpOworICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0
b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFz
ZV0pKTsKICAgICBpZiAoc3luY2hyb25pemVyVGltZSA8IE1lZGlhVGltZTo6emVyb1RpbWUoKSkK
ICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKICAgICBpZiAoc3luY2hyb25p
emVyVGltZSA8IG1fbGFzdFNlZWtUaW1lKQpAQCAtNDMwLDcgKzQyOSw3IEBAIGJvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRDdXJyZW50VGltZURpZENoYW5nZUNh
bGxiYWNrKE1lZGlhCiAgICAgbV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayk7CiAKICAgICBpZiAobV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKSB7
Ci0gICAgICAgIG1fdGltZUNoYW5nZWRPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRQZXJp
b2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENNVGltZSB0aW1lKSB7CisgICAgICAg
IG1fdGltZUNoYW5nZWRPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRQZXJpb2RpY1RpbWVP
YnNlcnZlckZvckludGVydmFsOlBBTDo6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl4oQ01UaW1lIHRpbWUpIHsKICAgICAgICAgICAg
IGlmIChtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2spCiAgICAgICAgICAgICAgICAgbV9j
dXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKENNVElNRV9JU19OVU1FUklDKHRpbWUpID8gUEFM
Ojp0b01lZGlhVGltZSh0aW1lKSA6IE1lZGlhVGltZTo6emVyb1RpbWUoKSk7CiAgICAgICAgIH1d
OwpAQCAtNDgyLDcgKzQ4MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjpzZWVrSW50ZXJuYWwoKQogICAgIGlmIChtX2xhc3RTZWVrVGltZS5oYXNEb3VibGVW
YWx1ZSgpKQogICAgICAgICBtX2xhc3RTZWVrVGltZSA9IE1lZGlhVGltZTo6Y3JlYXRlV2l0aERv
dWJsZShtX2xhc3RTZWVrVGltZS50b0RvdWJsZSgpLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2Nh
bGUpOwogCi0gICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1l
KENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBNZWRp
YVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNl
R2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgSU5GT19MT0coTE9HSURF
TlRJRklFUiwgInNlZWtUaW1lID0gIiwgbV9sYXN0U2Vla1RpbWUsICIsIHN5bmNocm9uaXplclRp
bWUgPSAiLCBzeW5jaHJvbml6ZXJUaW1lKTsKIAogICAgIGJvb2wgZG9lc05vdFJlcXVpcmVTZWVr
ID0gc3luY2hyb25pemVyVGltZSA9PSBtX2xhc3RTZWVrVGltZTsKQEAgLTU5OSw3ICs1OTgsNyBA
QCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6dXBkYXRlTGFzdFBp
eGVsQnVmZmVyKCkKICAgICBpZiAobV92aWRlb091dHB1dCkgewogICAgICAgICBDTVRpbWUgb3V0
cHV0VGltZTsKICAgICAgICAgaWYgKGF1dG8gcGl4ZWxCdWZmZXIgPSBhZG9wdENGKFttX3ZpZGVv
T3V0cHV0IGNvcHlQaXhlbEJ1ZmZlckZvclNvdXJjZVRpbWU6dG9DTVRpbWUoY3VycmVudE1lZGlh
VGltZSgpKSBzb3VyY2VUaW1lRm9yRGlzcGxheTomb3V0cHV0VGltZV0pKSB7Ci0gICAgICAgICAg
ICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVmZmVyIGZvdW5kIGZvciB0aW1l
ICIsIHRvTWVkaWFUaW1lKG91dHB1dFRpbWUpKTsKKyAgICAgICAgICAgIElORk9fTE9HKExPR0lE
RU5USUZJRVIsICJuZXcgcGl4ZWxidWZmZXIgZm91bmQgZm9yIHRpbWUgIiwgUEFMOjp0b01lZGlh
VGltZShvdXRwdXRUaW1lKSk7CiAgICAgICAgICAgICBtX2xhc3RQaXhlbEJ1ZmZlciA9IFdURk1v
dmUocGl4ZWxCdWZmZXIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAg
LTgwOSw3ICs4MDgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6ZGVzdHJveUxheWVyKCkKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBDTVRpbWViYXNlR2V0
VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKKyAgICBDTVRpbWUgY3VycmVudFRpbWUg
PSBQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOwogICAg
IFttX3N5bmNocm9uaXplciByZW1vdmVSZW5kZXJlcjptX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5nZXQoKSBhdFRpbWU6Y3VycmVudFRpbWUgd2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCl7
CiAgICAgICAgIC8vIE5vLW9wLgogICAgIH1dOwpAQCAtMTAxOCw3ICsxMDE3LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmZsdXNoUGVuZGluZ1NpemVDaGFu
Z2VzKCkKICNpZiBIQVZFKEFWU1RSRUFNU0VTU0lPTikKIEFWU3RyZWFtU2Vzc2lvbiogTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKCkKIHsKLSAgICBp
ZiAoIWdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgfHwgIVtQQUw6OmdldEFWU3RyZWFtU2Vzc2lv
bkNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRXaXRoU3Rv
cmFnZURpcmVjdG9yeUF0VVJMOildKQorICAgIGlmICghUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25D
bGFzcygpIHx8ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jlc3Bv
bmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIGlmICghbV9zdHJlYW1TZXNzaW9uKSB7CkBAIC0x
MjE3LDcgKzEyMTYsNyBAQCBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogICAgIGlm
IChpdGVyID09IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5lbmQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUoW21f
c3luY2hyb25pemVyIHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFMOjpD
TVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9zeW5j
aHJvbml6ZXIgcmVtb3ZlUmVuZGVyZXI6YXVkaW9SZW5kZXJlciBhdFRpbWU6Y3VycmVudFRpbWUg
d2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCl7CiAgICAgICAgIC8vIE5vLW9wLgogICAgIH1d
OwpAQCAtMTMwMSw3ICsxMzAwLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICBpZiAo
bV9wZXJmb3JtVGFza09ic2VydmVyKQogICAgICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3ZlVGlt
ZU9ic2VydmVyOm1fcGVyZm9ybVRhc2tPYnNlcnZlci5nZXQoKV07CiAKLSAgICBtX3BlcmZvcm1U
YXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JU
aW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeeworICAgIG1fcGVyZm9ybVRhc2tP
YnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVz
OkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7
CiAgICAgfV07CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5k
ZXggZTFhZDEwMmJiOTgxYmYzNzRlNmJkOTM3YzBjNmUyYTg3ZjQwZjE1Zi4uNTViNTAwYzU3ZTkz
ZWJiYTQ5NmFlNzQxNmZkNWRmNzhkN2I5NDU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgi
CisjaW1wb3J0ICJNZWRpYVBsYXllci5oIgogI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdlckNv
Y29hLmgiCiAjaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbXBvcnQgIlBpeGVsQnVm
ZmVyQ29uZm9ybWVyQ1YuaCIKQEAgLTEyMSw3ICsxMjIsNiBAQCAtICh2b2lkKW9ic2VydmVWYWx1
ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5n
ZTooTgogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwog
CiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQwpAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0CiAK
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSgp
CiB7Ci0gICAgcmV0dXJuIGlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgaXND
b3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllckNsYXNzKCk7CisgICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFp
bGFibGUoKSAmJiBQQUw6OmlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjpn
ZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpCkBAIC0yMzAsNyArMjMwLDcg
QEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb24KIHN0YXRpYyBpbmxpbmUgQ0dBZmZpbmVUcmFuc2Zv
cm0gdmlkZW9UcmFuc2Zvcm1hdGlvbk1hdHJpeChNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAg
IENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgp
LnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcjsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
ID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1
ZmZlcihzYW1wbGVCdWZmZXIpKTsKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0g
c3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKHNhbXBsZUJ1ZmZlcikpOwogICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJH
ZXRXaWR0aChwaXhlbEJ1ZmZlcik7CiAgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJH
ZXRIZWlnaHQocGl4ZWxCdWZmZXIpOwogICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkKQEAgLTk2
MCw3ICs5NjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2UoKQogICAgIGlmICghbV9pbWFnZVBhaW50ZXIucGl4ZWxC
dWZmZXJDb25mb3JtZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gcGl4ZWxCdWZmZXIg
PSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVm
ZmVyKG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlcikpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBp
eGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9pbWFnZVBh
aW50ZXIubWVkaWFTYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVy
KSk7CiAgICAgbV9pbWFnZVBhaW50ZXIuY2dJbWFnZSA9IE5hdGl2ZUltYWdlOjpjcmVhdGUobV9p
bWFnZVBhaW50ZXIucGl4ZWxCdWZmZXJDb25mb3JtZXItPmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVm
ZmVyKHBpeGVsQnVmZmVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbQppbmRleCAyZjQ5ODM4NzY1ZDNjOTQ0MWI2OWJiOTUxOGIzYjFmOWE4Nzk1
MDliLi5jMGYxM2Q2ZWE1Yzk3NTc2N2NlOGY2MmFiNjg0MmQ3ZDZmMGZiYjZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVNhbXBsZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCkBAIC0zNiw5ICszNiwxMiBA
QAogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVk
aWFTb2Z0TGluay5oPgogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCi1XVEZfREVDTEFSRV9DRl9U
WVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKKy8vIEVxdWl2YWxlbnQgdG8gV1RGX0RFQ0xBUkVf
Q0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBOZWVkZWQgZHVlIHRvIHJlcXVpcmVt
ZW50IG9mIHNwZWNpZnlpbmcgdGhlIFBBTCBuYW1lc3BhY2UuCit0ZW1wbGF0ZSA8Pgorc3RydWN0
IFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJSZWY+IHsKKyAgICBzdGF0aWMgaW5saW5l
IENGVHlwZUlEIHR5cGVJRCh2b2lkKSB7IHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VHlw
ZUlEKCk7IH0KK307CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjcsMzUgKzcwLDM1IEBA
IFJlZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1h
Z2VTYW1wbGUoUGl4ZWxCdWZmZXImJiBwCiAgICAgQVNTRVJUX1VOVVNFRChzdGF0dXMsICFzdGF0
dXMpOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
UmF3ID0gbnVsbHB0cjsKLSAgICBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgp
LCAmZm9ybWF0RGVzY3JpcHRpb25SYXcpOworICAgIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQ
aXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uUmF3KTsKICAgICBBU1NFUlQoIXN0
YXR1cyk7CiAgICAgYXV0byBmb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3Jp
cHRpb25SYXcpOwogCi0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHNhbXBsZVRpbWluZ0luZm9ybWF0
aW9uID0geyBrQ01UaW1lSW52YWxpZCwga0NNVGltZUludmFsaWQsIGtDTVRpbWVJbnZhbGlkIH07
CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHNhbXBsZVRpbWluZ0luZm9ybWF0aW9uID0geyBQQUw6
OmtDTVRpbWVJbnZhbGlkLCBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OmtDTVRpbWVJbnZhbGlk
IH07CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyUmF3ID0gbnVsbHB0cjsKLSAg
ICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLmdl
dCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVCdWZmZXJSYXcpOworICAgIHN0
YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbi5n
ZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9ybWF0aW9uLCAmc2FtcGxlQnVmZmVyUmF3KTsKICAgICBB
U1NFUlQoIXN0YXR1cyk7CiAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1
ZmZlclJhdyk7CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsK
KyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOwogICAgIGZv
ciAoQ0ZJbmRleCBpID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJh
eSk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0
YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJh
eUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgIENGRGljdGlv
bmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJ
bW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1
ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlh
dGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KICAgICByZXR1cm4gY3JlYXRlKHNhbXBsZUJ1
ZmZlci5nZXQoKSk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OnByZXNlbnRh
dGlvblRpbWUoKSBjb25zdAogewotICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJH
ZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOworICAgIGF1dG8g
dGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVT
dGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKHRpbWVTdGFt
cCkpCi0gICAgICAgIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKKyAgICAgICAgdGltZVN0YW1wID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAgcmV0
dXJuIFBBTDo6dG9NZWRpYVRpbWUodGltZVN0YW1wKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGVjb2RlVGltZSgpIGNvbnN0CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAgPSBD
TVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAgYXV0
byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1fc2Ft
cGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQodGltZVN0YW1wKSkKICAgICAg
ICAgcmV0dXJuIHByZXNlbnRhdGlvblRpbWUoKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGlt
ZSh0aW1lU3RhbXApOwpAQCAtMTAzLDE1ICsxMDYsMTUgQEAgTWVkaWFUaW1lIE1lZGlhU2FtcGxl
QVZGT2JqQzo6ZGVjb2RlVGltZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9i
akM6OmR1cmF0aW9uKCkgY29uc3QKIHsKLSAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZm
ZXJHZXRPdXRwdXREdXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7CisgICAgYXV0byBkdXJhdGlvbiA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7CiAg
ICAgaWYgKENNVElNRV9JU19JTlZBTElEKGR1cmF0aW9uKSkKLSAgICAgICAgZHVyYXRpb24gPSBD
TVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICAgICAgZHVyYXRp
b24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOwogICAg
IHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKGR1cmF0aW9uKTsKIH0KIAogc2l6ZV90IE1lZGlhU2Ft
cGxlQVZGT2JqQzo6c2l6ZUluQnl0ZXMoKSBjb25zdAogewotICAgIHJldHVybiBDTVNhbXBsZUJ1
ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBsZS5nZXQoKSk7CisgICAgcmV0dXJuIFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUobV9zYW1wbGUuZ2V0KCkpOwogfQogCiBQ
bGF0Zm9ybVNhbXBsZSBNZWRpYVNhbXBsZUFWRk9iakM6OnBsYXRmb3JtU2FtcGxlKCkKQEAgLTEy
MiwyMyArMTI1LDIzIEBAIFBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxhdGZv
cm1TYW1wbGUoKQogCiB1aW50MzJfdCBNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVvUGl4ZWxGb3Jt
YXQoKSBjb25zdAogewotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVs
QnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7
CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOwogICAgIHJl
dHVybiBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKTsKIH0KIAog
c3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MoQ0ZEaWN0
aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0KQogewotICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5Q29u
dGFpbnNLZXkoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7
CisgICAgcmV0dXJuICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwgUEFM
OjprQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMpOwogfQogCiBzdGF0aWMgYm9vbCBkb2Vz
Q01TYW1wbGVCdWZmZXJIYXZlU3luY0luZm8oQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewot
ICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxl
LCBmYWxzZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2ht
ZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVm
ZmVyUmFuZG9tQWNjZXNzKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIHsKLSAgICBDRkFycmF5
UmVmIGF0dGFjaG1lbnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5
KHNhbXBsZSwgZmFsc2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKICAgICBp
ZiAoIWF0dGFjaG1lbnRzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKQEAgLTE1MSwxMiAr
MTU0LDEyIEBAIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlKQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNo
bWVudE5vbkRpc3BsYXlpbmcoQ0ZEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0KQogewotICAg
IHJldHVybiBDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkpOworICAgIHJldHVybiBDRkRpY3Rpb25hcnlDb250
YWluc0tleShhdHRhY2htZW50RGljdCwgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90
RGlzcGxheSk7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJOb25EaXNwbGF5aW5n
KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRz
ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2Up
OworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRz
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCkBAIC0xODYsMTEgKzE4OSwxMSBAQCBNZWRp
YVNhbXBsZTo6U2FtcGxlRmxhZ3MgTWVkaWFTYW1wbGVBVkZPYmpDOjpmbGFncygpIGNvbnN0CiAK
IEZsb2F0U2l6ZSBNZWRpYVNhbXBsZUFWRk9iakM6OnByZXNlbnRhdGlvblNpemUoKSBjb25zdAog
ewotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBs
ZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1fc2FtcGxlLmdldCgpKTsKLSAgICBpZiAoQ01G
b3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVk
aWFUeXBlX1ZpZGVvKQorICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9zYW1wbGUuZ2V0
KCkpOworICAgIGlmIChQQUw6OkNNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0
RGVzY3JpcHRpb24pICE9IGtDTU1lZGlhVHlwZV9WaWRlbykKICAgICAgICAgcmV0dXJuIEZsb2F0
U2l6ZSgpOwogICAgIAotICAgIHJldHVybiBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1
ZSkpOworICAgIHJldHVybiBGbG9hdFNpemUoUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7
CiB9CiAKIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNv
bnN0CkBAIC0yMDEsMTIgKzIwNCwxMiBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVtcChQ
cmludFN0cmVhbSYgb3V0KSBjb25zdAogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNldFRp
bWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmIG9mZnNldCkKIHsKICAgICBDTUl0ZW1Db3VudCBp
dGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisg
ICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5
OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCBp
dGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChub0Vy
ciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxl
LmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQogICAg
ICAgICByZXR1cm47CiAgICAgCiAgICAgZm9yIChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZvQXJy
YXkpIHsKQEAgLTIxNSw3ICsyMTgsNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0
VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogICAgIH0KICAgICAKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUu
Z2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCisg
ICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWlu
ZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJ
bmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUpOwpAQCAtMjI0LDEyICsyMjcsMTIgQEAgdm9p
ZCBNZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUm
IG9mZnNldCkKIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRUaW1lc3RhbXBzKGNvbnN0IFdU
Rjo6TWVkaWFUaW1lICZwcmVzZW50YXRpb25UaW1lc3RhbXAsIGNvbnN0IFdURjo6TWVkaWFUaW1l
ICZkZWNvZGVUaW1lc3RhbXApCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAg
ICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9z
YW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgp
LCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFZl
Y3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZv
QXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJ
bmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50
LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIGZvciAoYXV0byYgdGltaW5nIDogdGltaW5nSW5mb0FycmF5KSB7CkBAIC0yMzgsNyAr
MjQxLDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3QgV1RG
OjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGEKICAgICB9CiAgICAgCiAgICAgQ01TYW1w
bGVCdWZmZXJSZWYgbmV3U2FtcGxlOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgp
LCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQorICAgIGlm
IChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0Fy
cmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBtX3Nh
bXBsZSA9IGFkb3B0Q0YobmV3U2FtcGxlKTsKQEAgLTI0NiwxMCArMjQ5LDEwIEBAIHZvaWQgTWVk
aWFTYW1wbGVBVkZPYmpDOjpzZXRUaW1lc3RhbXBzKGNvbnN0IFdURjo6TWVkaWFUaW1lICZwcmVz
ZW50YXRpb25UaW1lc3RhCiAKIGJvb2wgTWVkaWFTYW1wbGVBVkZPYmpDOjppc0RpdmlzYWJsZSgp
IGNvbnN0CiB7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5n
ZXQoKSkgPT0gMSkKKyAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9z
YW1wbGUuZ2V0KCkpID09IDEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwg
bnVsbHB0cikgPT0ga0NNU2FtcGxlQnVmZmVyRXJyb3JfQnVmZmVySGFzTm9TYW1wbGVTaXplcykK
KyAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheShtX3NhbXBsZS5n
ZXQoKSwgMCwgbnVsbHB0ciwgbnVsbHB0cikgPT0ga0NNU2FtcGxlQnVmZmVyRXJyb3JfQnVmZmVy
SGFzTm9TYW1wbGVTaXplcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRy
dWU7CkBAIC0yNjIsMTcgKzI2NSwxNyBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwg
UmVmUHRyPE1lZGlhU2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogCiAgICAg
Q0ZJbmRleCBzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSA9IDA7CiAKLSAgICBDTVNhbXBs
ZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUobV9zYW1wbGUuZ2V0KCksIFsmXSAoQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCkgLT4gT1NTdGF0dXMgewotICAg
ICAgICBhdXRvIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9u
VGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNhbGxCbG9j
a0ZvckVhY2hTYW1wbGUobV9zYW1wbGUuZ2V0KCksIFsmXSAoQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyLCBDTUl0ZW1Db3VudCkgLT4gT1NTdGF0dXMgeworICAgICAgICBhdXRvIHRpbWVT
dGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
c2FtcGxlQnVmZmVyKTsKICAgICAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKHRpbWVTdGFtcCkp
Ci0gICAgICAgICAgICB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRp
bWVTdGFtcChzYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgdGltZVN0YW1wID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogCiAgICAg
ICAgIGlmICh1c2VFbmRUaW1lID09IFVzZUVuZFRpbWU6OlVzZSkgewotICAgICAgICAgICAgYXV0
byBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24oc2FtcGxlQnVmZmVy
KTsKKyAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0
cHV0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKICAgICAgICAgICAgIGlmIChDTVRJTUVfSVNfSU5W
QUxJRChkdXJhdGlvbikpCi0gICAgICAgICAgICAgICAgZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZl
ckdldER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICAgICAgZHVyYXRpb24gPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKIAotICAgICAgICAg
ICAgaWYgKFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+
IHByZXNlbnRhdGlvblRpbWUpCisgICAgICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShQQUw6
OkNNVGltZUFkZCh0aW1lU3RhbXAsIGR1cmF0aW9uKSkgPiBwcmVzZW50YXRpb25UaW1lKQogICAg
ICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9IGVsc2UgaWYgKFBBTDo6dG9NZWRpYVRp
bWUodGltZVN0YW1wKSA+PSBwcmVzZW50YXRpb25UaW1lKQogICAgICAgICAgICAgcmV0dXJuIDE7
CkBAIC0yODMsMTkgKzI4NiwxOSBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVm
UHRyPE1lZGlhU2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogICAgIGlmICgh
c2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIs
IHRoaXMgfTsKIAotICAgIENNSXRlbUNvdW50IHNhbXBsZUNvdW50ID0gQ01TYW1wbGVCdWZmZXJH
ZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKTsKKyAgICBDTUl0ZW1Db3VudCBzYW1wbGVDb3Vu
dCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKTsKICAg
ICBpZiAoc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUgPj0gc2FtcGxlQ291bnQpCiAgICAg
ICAgIHJldHVybiB7IHRoaXMsIG51bGxwdHIgfTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJh
d1NhbXBsZUJlZm9yZSA9IG51bGxwdHI7CiAgICAgQ0ZSYW5nZSByYW5nZUJlZm9yZSA9IENGUmFu
Z2VNYWtlKDAsIHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lKTsKLSAgICBpZiAoQ01TYW1w
bGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9z
YW1wbGUuZ2V0KCksIHJhbmdlQmVmb3JlLCAmcmF3U2FtcGxlQmVmb3JlKSAhPSBub0VycikKKyAg
ICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VCZWZvcmUsICZyYXdTYW1wbGVCZWZv
cmUpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CiAgICAg
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzYW1wbGVCZWZvcmUgPSBhZG9wdENGKHJhd1Nh
bXBsZUJlZm9yZSk7CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVBZnRlciA9IG51
bGxwdHI7CiAgICAgQ0ZSYW5nZSByYW5nZUFmdGVyID0gQ0ZSYW5nZU1ha2Uoc2FtcGxlc0JlZm9y
ZVByZXNlbnRhdGlvblRpbWUsIHNhbXBsZUNvdW50IC0gc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlv
blRpbWUpOwotICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VBZnRlciwgJnJhd1NhbXBs
ZUFmdGVyKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVC
dWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VB
ZnRlciwgJnJhd1NhbXBsZUFmdGVyKSAhPSBub0VycikKICAgICAgICAgcmV0dXJuIHsgbnVsbHB0
ciwgbnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQWZ0
ZXIgPSBhZG9wdENGKHJhd1NhbXBsZUFmdGVyKTsKIApAQCAtMzA1LDEzICszMDgsMTMgQEAgc3Rk
OjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGl2aWRlKGMKIFJlZjxNZWRpYVNhbXBsZT4gTWVkaWFTYW1wbGVBVkZPYmpD
OjpjcmVhdGVOb25EaXNwbGF5aW5nQ29weSgpIGNvbnN0CiB7CiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgbmV3U2FtcGxlQnVmZmVyID0gMDsKLSAgICBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOworICAg
IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2Ft
cGxlLmdldCgpLCAmbmV3U2FtcGxlQnVmZmVyKTsKICAgICBBU1NFUlQobmV3U2FtcGxlQnVmZmVy
KTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShuZXdTYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENGQXJy
YXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5KG5ld1NhbXBsZUJ1ZmZlciwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkg
PSAwOyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsKICAgICAg
ICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxD
Rk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRz
QXJyYXksIGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtD
TVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAg
ICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFj
aG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKGFkb3B0Q0YobmV3U2FtcGxlQnVmZmVyKS5n
ZXQoKSwgbV9pZCk7CkBAIC0zMjYsNyArMzI5LDcgQEAgUmVmUHRyPEpTQzo6VWludDhDbGFtcGVk
QXJyYXk+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSgpIGNvbnN0CiAgICAg
Q0ZEaWN0aW9uYXJ5U2V0VmFsdWUoY29uZm9ybWVyT3B0aW9ucy5nZXQoKSwga0NWUGl4ZWxCdWZm
ZXJQaXhlbEZvcm1hdFR5cGVLZXksIGltYWdlRm9ybWF0TnVtYmVyLmdldCgpKTsKICAgICBQaXhl
bEJ1ZmZlckNvbmZvcm1lckNWIHBpeGVsQnVmZmVyQ29uZm9ybWVyKGNvbmZvcm1lck9wdGlvbnMu
Z2V0KCkpOwogCi0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZm
ZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsKKyAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7CiAgICAgYXV0byBy
Z2JhUGl4ZWxCdWZmZXIgPSBwaXhlbEJ1ZmZlckNvbmZvcm1lci5jb252ZXJ0KHBpeGVsQnVmZmVy
KTsKICAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocmdiYVBp
eGVsQnVmZmVyLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOwogICAgIEFTU0VS
VChzdGF0dXMgPT0gbm9FcnIpOwpAQCAtMzQzLDEwICszNDYsMTAgQEAgUmVmUHRyPEpTQzo6VWlu
dDhDbGFtcGVkQXJyYXk+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSgpIGNv
bnN0CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlh
dGVseShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCiB7Ci0gICAgQ0ZBcnJheVJlZiBh
dHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5
KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVy
LCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0
YWNobWVudHNBcnJheSk7ICsraSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0
dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJy
YXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rp
b25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5
SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFs
dWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRp
YXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiB9CiAKQEAgLTM1Nyw3ICszNjAsNyBAQCB2
b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkoTWVkaWFTYW1w
bGUmIHNhbXBsZSkKIAogYm9vbCBNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMoKSBj
b25zdAogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZB
cnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0
dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCksIHRydWUpOwogICAgIGlmICghYXR0YWNobWVu
dHNBcnJheSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTM4NSw3ICszODgsNyBAQCBWZWN0
b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlSW50
b0hvbW9nZW5lb3VzU2FtcGxlcwogewogICAgIHVzaW5nIFNhbXBsZVZlY3RvciA9IFZlY3RvcjxS
ZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj47CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJy
YXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0
KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsK
ICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpCiAgICAgICAgIHJldHVybiBTYW1wbGVWZWN0b3I6
OmZyb20obWFrZVJlZigqdGhpcykpOwogCkBAIC00MTgsNyArNDIxLDcgQEAgVmVjdG9yPFJlZjxN
ZWRpYVNhbXBsZUFWRk9iakM+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2Vu
ZW91c1NhbXBsZXMKICAgICBzYW1wbGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocmFuZ2VzLnNp
emUoKSk7CiAgICAgZm9yIChhdXRvJiByYW5nZSA6IHJhbmdlcykgewogICAgICAgICBDTVNhbXBs
ZUJ1ZmZlclJlZiByYXdTYW1wbGUgPSBudWxscHRyOwotICAgICAgICBpZiAoQ01TYW1wbGVCdWZm
ZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUu
Z2V0KCksIHJhbmdlLCAmcmF3U2FtcGxlKSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQorICAgICAg
ICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2UsICZyYXdTYW1wbGUpICE9IG5vRXJy
IHx8ICFyYXdTYW1wbGUpCiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICBzYW1wbGVz
LnVuY2hlY2tlZEFwcGVuZChNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShhZG9wdENGKHJhd1Nh
bXBsZSkuZ2V0KCksIG1faWQpKTsKICAgICB9CkBAIC00MzIsMjQgKzQzNSwyNCBAQCBSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZm
ZXJBbmRTZXRBc0Rpc3BsYQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgYXV0
byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAg
ICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1h
Z2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlw
dGlvbik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0
byByZXRhaW5lZEZvcm1hdERlc2NyaXB0aW9uID0gYWRvcHRDRihmb3JtYXREZXNjcmlwdGlvbik7
CiAKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIHN0YXR1cyA9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1D
b3VudCk7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm9BcnJheShzYW1wbGUsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpOwogICAgIGlmIChzdGF0dXMp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5m
bz4gdGltaW5nSW5mb0FycmF5OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7
Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2Ft
cGxlLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOworICAgIHN0
YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxl
LCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOwogICAgIGlmIChz
dGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYg
bmV3U2FtcGxlQnVmZmVyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlX
aXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsIGZvcm1hdERl
c2NyaXB0aW9uLCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlQnVmZmVyKTsKKyAg
ICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCB0aW1p
bmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlQnVmZmVyKTsKICAgICBpZiAoc3RhdHVzKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCAwYjliYjY0ODVmM2U5ZTI1MzQ1
YWFkNGY0ZTQ3MDkyYzQyOWE1Y2M4Li4wMjE5MjE2ZDdjMmQ4OGVmNTc3NTI2ZDg4MjMwYzNlNTAz
ZmQ4Y2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQy5tbQpAQCAtMjU4LDcgKzI1OCw2IEBAIC0gKHZvaWQpYXVkaW9SZW5kZXJl
cldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkOihOU05vdGlmaWNhdGlvbiopbm90ZQogQGVuZAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjcHJhZ21hIG1hcmsg
LQogI3ByYWdtYSBtYXJrIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDCkBAIC0yNzcsNyArMjc2
LDcgQEAgc3RhdGljIHVpbnQ2NF90IG5leHRNYXBJRCgpCiAKIHN0YXRpYyB2b2lkIGJ1ZmZlcldh
c0NvbnN1bWVkQ2FsbGJhY2soQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsIGNvbnN0IHZvaWQqIGxp
c3RlbmVyLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lLCBjb25zdCB2b2lkKiwgQ0ZUeXBl
UmVmKQogewotICAgIGlmICghQ0ZFcXVhbChrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNh
dGlvbl9CdWZmZXJDb25zdW1lZCwgbm90aWZpY2F0aW9uTmFtZSkpCisgICAgaWYgKCFDRkVxdWFs
KFBBTDo6a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQs
IG5vdGlmaWNhdGlvbk5hbWUpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIWlzTWFpblRo
cmVhZCgpKSB7CkBAIC0zMTYsNyArMzE1LDcgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMKICAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogCiAgICAgaWYgKCFbUEFMOjpnZXRBVlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNl
bGVjdG9yKHByZXJvbGxEZWNvZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KV0pCi0gICAgICAgIENN
Tm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIoQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZh
dWx0TG9jYWxDZW50ZXIoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9tYXBJRCksIGJ1ZmZl
cldhc0NvbnN1bWVkQ2FsbGJhY2ssIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9u
X0J1ZmZlckNvbnN1bWVkLCBudWxscHRyLCAwKTsKKyAgICAgICAgUEFMOjpDTU5vdGlmaWNhdGlv
bkNlbnRlckFkZExpc3RlbmVyKFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9j
YWxDZW50ZXIoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9tYXBJRCksIGJ1ZmZlcldhc0Nv
bnN1bWVkQ2FsbGJhY2ssIFBBTDo6a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25f
QnVmZmVyQ29uc3VtZWQsIG51bGxwdHIsIDApOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgbV9wYXJzZXItPnNldExvZ2dlcihtX2xvZ2dlci5nZXQoKSwgbV9sb2dJZGVudGlmaWVy
KTsKQEAgLTM1NCw3ICszNTMsNyBAQCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKCkKICAgICBjbGVhclRyYWNrcygpOwogCiAgICAgaWYgKCFb
UEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9u
ZFRvU2VsZWN0b3I6QHNlbGVjdG9yKHByZXJvbGxEZWNvZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6
KV0pCi0gICAgICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIoQ01Ob3RpZmlj
YXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3Vt
ZWRDYWxsYmFjaywga0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29u
c3VtZWQsIG51bGxwdHIpOworICAgICAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3Zl
TGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigp
LCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckNv
bnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyKTsKIAogICAgIGlmICht
X2hhc1Nlc3Npb25TZW1hcGhvcmUpCiAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZS0+c2ln
bmFsKCk7CkBAIC05OTMsNyArOTkyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6bGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIKIAogdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVuZGVyZXJXYXNBdXRvbWF0aWNhbGx5Rmx1
c2hlZChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBjb25zdCBDTVRpbWUm
IHRpbWUpCiB7Ci0gICAgYXV0byBtZWRpYVRpbWUgPSB0b01lZGlhVGltZSh0aW1lKTsKKyAgICBh
dXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUodGltZSk7CiAgICAgRVJST1JfTE9HKExP
R0lERU5USUZJRVIsIG1lZGlhVGltZSk7CiAgICAgQXRvbVN0cmluZyB0cmFja0lkOwogICAgIGZv
ciAoYXV0byYgcGFpciA6IG1fYXVkaW9SZW5kZXJlcnMpIHsKQEAgLTExMDEsMTMgKzExMDAsMTMg
QEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVk
aWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAogICAgIGF1dG8gbG9nU2l0ZUlkZW50aWZpZXIgPSBM
T0dJREVOVElGSUVSOwogICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInRyYWNrIElE
ID0gIiwgdHJhY2tJRCwgIiwgc2FtcGxlID0gIiwgc2FtcGxlLmdldCgpKTsKIAotICAgIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Cisg
ICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1w
bGVCdWZmZXIpOwogICAgIEFTU0VSVChmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKCFmb3Jt
YXREZXNjcmlwdGlvbikgewogICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50aWZpZXIsICJS
ZWNlaXZlZCBzYW1wbGUgd2l0aCBhIG51bGwgZm9ybWF0RGVzY3JpcHRpb24uIEJhaWxpbmcuIik7
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgYXV0byBtZWRpYVR5cGUgPSBDTUZvcm1hdERl
c2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBhdXRvIG1lZGlh
VHlwZSA9IFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShmb3JtYXREZXNjcmlw
dGlvbik7CiAKICAgICBpZiAodHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsKICAg
ICAgICAgLy8gQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgd2lsbCB0aHJvdyBhbiB1bi1kb2N1
bWVudGVkIGV4Y2VwdGlvbiBpZiBwYXNzZWQgYSBzYW1wbGUKQEAgLTExMjAsNyArMTExOSw3IEBA
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlh
U2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gcGxheWVy
ID0gdGhpcy0+cGxheWVyKCk7Ci0gICAgICAgIEZsb2F0U2l6ZSBmb3JtYXRTaXplID0gRmxvYXRT
aXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9y
bWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICAgICAgRmxvYXRTaXplIGZvcm1hdFNp
emUgPSBGbG9hdFNpemUoUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRp
b25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7CiAgICAgICAgIGlm
ICghbV9jYWNoZWRTaXplIHx8IGZvcm1hdFNpemUgIT0gbV9jYWNoZWRTaXplLnZhbHVlKCkpIHsK
ICAgICAgICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInNpemUgY2hhbmdlZCB0
byAiLCBmb3JtYXRTaXplKTsKICAgICAgICAgICAgIGJvb2wgc2l6ZVdhc051bGwgPSAhbV9jYWNo
ZWRTaXplOwpAQCAtMTE0Niw5ICsxMTQ1LDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAogCiAg
ICAgICAgICAgICBpZiAoIWhhdmVQcmVyb2xsRGVjb2RlV2l0aENvbXBsZXRpb25IYW5kbGVyKSB7
CiAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQ29weTsKLSAgICAg
ICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCAmcmF3U2FtcGxlQ29weSk7Cisg
ICAgICAgICAgICAgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgcGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCAmcmF3U2FtcGxl
Q29weSk7CiAgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVDb3B5ID0gYWRvcHRDRihyYXdTYW1w
bGVDb3B5KTsKLSAgICAgICAgICAgICAgICBDTVNldEF0dGFjaG1lbnQoc2FtcGxlQ29weS5nZXQo
KSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hlbkNvbnN1
bWVkLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7IChfX2JyaWRnZSBOU1N0cmluZyAqKWtD
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCA6
IEBZRVMgfSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkTm90UHJvcGFnYXRlKTsKKyAgICAgICAg
ICAgICAgICBQQUw6OkNNU2V0QXR0YWNobWVudChzYW1wbGVDb3B5LmdldCgpLCBQQUw6OmtDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCwgKF9f
YnJpZGdlIENGRGljdGlvbmFyeVJlZilAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilQQUw6OmtDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCA6IEBZ
RVMgfSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkTm90UHJvcGFnYXRlKTsKICAgICAgICAgICAg
ICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpzYW1wbGVDb3B5LmdldCgp
XTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICAgICAgICAgIHBsYXllci0+c2V0
SGFzQXZhaWxhYmxlVmlkZW9GcmFtZSh0cnVlKTsKQEAgLTEyOTgsMTQgKzEyOTcsMTQgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9y
ZVNhbXBsZXMoY29uc3QgQXRvbVMKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNh
blNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJh
Y2tJRFN0cmluZykgY29uc3QKIHsKICAgICByZXR1cm4gcGFyc2VJbnRlZ2VyQWxsb3dpbmdUcmFp
bGluZ0p1bms8dWludDY0X3Q+KHRyYWNrSURTdHJpbmcpLnZhbHVlX29yKDApID09IG1fZW5hYmxl
ZFZpZGVvVHJhY2tJRAotICAgICAgICAmJiBbZ2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJD
bGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBlY3RNaW5pbXVt
VXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOildOworICAgICAgICAmJiBbUEFM
OjpnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRv
U2VsZWN0b3I6QHNlbGVjdG9yKGV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNl
bnRhdGlvblRpbWU6KV07CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNl
dE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJ
RFN0cmluZywgY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50YXRpb25UaW1lKQogewogICAgIEFTU0VS
VChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKHRyYWNrSURTdHJpbmcpKTsK
ICAgICBpZiAoY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0cmFja0lEU3Ry
aW5nKSkKLSAgICAgICAgW21fZGlzcGxheUxheWVyIGV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBs
ZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6dG9DTVRpbWUocHJlc2VudGF0aW9uVGltZSldOworICAg
ICAgICBbbV9kaXNwbGF5TGF5ZXIgZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJl
c2VudGF0aW9uVGltZTpQQUw6OnRvQ01UaW1lKHByZXNlbnRhdGlvblRpbWUpXTsKIH0KIAogdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Y2xlYXJNaW5pbXVtVXBjb21pbmdQcmVzZW50
YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1
ZmZlclBhcnNlcldlYk0uY3BwCmluZGV4IGY0NjY0MTI3OGU5ZWQ0YjY4M2E0ODRkNzU3NDdkODYz
ZjZlZDg2NmQuLjNiMTAyYWI4ZWYzOWYzOGRmNDcwNjA1ZmE4ZDdiZmQyNGMwMGVlOTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZl
clBhcnNlcldlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCkBAIC0yNTgsOCArMjU4LDYgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6
U3RhdGU+IHsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwot
CiBzdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIHsgcmV0dXJuIExvZ01lZGlhOyB9
CiBzdGF0aWMgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4gIlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk0iOyB9CiAKQEAgLTEwNjYsNyArMTA2NCw3IEBAIHdlYm06OlN0YXR1cyBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpPbkZyYW1lKGNvbnN0IEZyYW1lTWV0YWRhdGEmIG1ldGFkYXRh
LCBSZWFkCiAgICAgICAgIHJldHVybiBTa2lwKHJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwogICAg
IH0KIAotICAgIHJldHVybiB0cmFja0RhdGEtPmNvbnN1bWVGcmFtZURhdGEoKnJlYWRlciwgbWV0
YWRhdGEsIGJ5dGVzUmVtYWluaW5nLCBDTVRpbWVNYWtlKGJsb2NrLT50aW1lY29kZSArIG1fY3Vy
cmVudFRpbWVjb2RlLCBtX3RpbWVzY2FsZSksIGJsb2NrLT5udW1fZnJhbWVzKTsKKyAgICByZXR1
cm4gdHJhY2tEYXRhLT5jb25zdW1lRnJhbWVEYXRhKCpyZWFkZXIsIG1ldGFkYXRhLCBieXRlc1Jl
bWFpbmluZywgUEFMOjpDTVRpbWVNYWtlKGJsb2NrLT50aW1lY29kZSArIG1fY3VycmVudFRpbWVj
b2RlLCBtX3RpbWVzY2FsZSksIGJsb2NrLT5udW1fZnJhbWVzKTsKIH0KIAogdm9pZCBTb3VyY2VC
dWZmZXJQYXJzZXJXZWJNOjpwcm92aWRlTWVkaWFEYXRhKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gc2FtcGxlQnVmZmVyLCB1aW50NjRfdCB0cmFja0lELCBzdGQ6Om9wdGlvbmFsPHNpemVf
dD4gYnl0ZVJhbmdlT2Zmc2V0KQpAQCAtMTA5MCw3ICsxMDg4LDcgQEAgd2VibTo6U3RhdHVzIFNv
dXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdl
Ym06OlJlYWQKICAgICBDTUJsb2NrQnVmZmVyUmVmIHJhd0Jsb2NrQnVmZmVyID0gbnVsbHB0cjsK
IAogICAgIGlmICghbV9jdXJyZW50QmxvY2tCdWZmZXIpIHsKLSAgICAgICAgYXV0byBlcnIgPSBD
TUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51
bGxwdHIsIG1ldGFkYXRhLnNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIG1l
dGFkYXRhLnNpemUsIDAsICZyYXdCbG9ja0J1ZmZlcik7CisgICAgICAgIGF1dG8gZXJyID0gUEFM
OjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIG1ldGFkYXRhLnNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAs
IG1ldGFkYXRhLnNpemUsIDAsICZyYXdCbG9ja0J1ZmZlcik7CiAgICAgICAgIGlmIChlcnIpIHsK
ICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJD
cmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICAg
ICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTA5OSw3ICsxMDk3
LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRh
Ojpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICAgICAgbV9jdXJyZW50QmxvY2tCdWZm
ZXIgPSBhZG9wdENGKHJhd0Jsb2NrQnVmZmVyKTsKICAgICAgICAgbV9jdXJyZW50QmxvY2tCdWZm
ZXJQb3NpdGlvbiA9IDA7CiAKLSAgICAgICAgZXJyID0gQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2Nr
TWVtb3J5KG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKKyAgICAgICAgZXJyID0gUEFMOjpD
TUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkp
OwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BP
U1NJQkxFKCJDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyBm
YWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVy
LCBieXRlc1JlbWFpbmluZyk7CkBAIC0xMTEwLDcgKzExMDgsNyBAQCB3ZWJtOjpTdGF0dXMgU291
cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2Vi
bTo6UmVhZAogICAgIHdoaWxlIChieXRlc1RvUmVhZCkgewogICAgICAgICBzaXplX3Qgc2VnbWVu
dFNpemVBdFBvc2l0aW9uID0gMDsKICAgICAgICAgdWludDhfdCogYmxvY2tCdWZmZXJEYXRhID0g
bnVsbHB0cjsKLSAgICAgICAgYXV0byBlcnIgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIo
bV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24s
ICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0
YSk7CisgICAgICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIo
bV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24s
ICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0
YSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZf
UE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBmYWlsZWQgd2l0aCBlcnJvciIs
IGVycik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7
CkBAIC0xMTQ0LDcgKzExNDIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVv
VHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogI2lmIEVOQUJM
RShWUDkpCiAgICAgdWludDhfdCogYmxvY2tCdWZmZXJEYXRhID0gbnVsbHB0cjsKICAgICBzaXpl
X3Qgc2VnbWVudFNpemVBdFBvc2l0aW9uID0gMDsKLSAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZm
ZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgMCwgJnNlZ21lbnRT
aXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKKyAgICBh
dXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2Nr
QnVmZmVyLmdldCgpLCAwLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioq
KSZibG9ja0J1ZmZlckRhdGEpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19F
UlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyIGZhaWxlZCB3aXRo
IGVycm9yIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTE4OCw5ICsxMTg2LDkgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVm
ZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICAgICAgZHVyYXRpb24gPSB0cmFjay5kZWZhdWx0X2R1
cmF0aW9uLnZhbHVlKCkgKiBwcmVzZW50YXRpb25UaW1lLnRpbWVzY2FsZSAvIDEwMDAwMDAwMDA7
CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAg
IHNpemVfdCBmcmFtZVNpemUgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX2N1cnJlbnRC
bG9ja0J1ZmZlci5nZXQoKSk7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZyA9IHsgQ01U
aW1lTWFrZShkdXJhdGlvbiwgcHJlc2VudGF0aW9uVGltZS50aW1lc2NhbGUpLCBwcmVzZW50YXRp
b25UaW1lLCBwcmVzZW50YXRpb25UaW1lIH07Ci0gICAgZXJyID0gQ01TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwg
dGhpcy0+Zm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgc2FtcGxlQ291bnQsIDEsICZ0aW1pbmcs
IDEsICZmcmFtZVNpemUsICZyYXdTYW1wbGVCdWZmZXIpOworICAgIHNpemVfdCBmcmFtZVNpemUg
PSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fY3VycmVudEJsb2NrQnVmZmVyLmdl
dCgpKTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nID0geyBQQUw6OkNNVGltZU1ha2Uo
ZHVyYXRpb24sIHByZXNlbnRhdGlvblRpbWUudGltZXNjYWxlKSwgcHJlc2VudGF0aW9uVGltZSwg
cHJlc2VudGF0aW9uVGltZSB9OworICAgIGVyciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgdGhp
cy0+Zm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgc2FtcGxlQ291bnQsIDEsICZ0aW1pbmcsIDEs
ICZmcmFtZVNpemUsICZyYXdTYW1wbGVCdWZmZXIpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAg
UEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeSBm
YWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgIHJldHVybjsKQEAgLTEyMDAsNyArMTE5
OCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0
ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAgICAgbV9jdXJyZW50QmxvY2tCdWZmZXIg
PSBudWxscHRyOwogICAgIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24gPSAwOwogCi0gICAg
YXV0byBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50
c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgYXV0byBhdHRhY2htZW50c0Fy
cmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxl
QnVmZmVyLmdldCgpLCB0cnVlKTsKICAgICBBU1NFUlQoYXR0YWNobWVudHNBcnJheSk7CiAgICAg
aWYgKCFhdHRhY2htZW50c0FycmF5KSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9T
U0lCTEUoIkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSByZXR1cm5lZCBO
VUxMIik7CkBAIC0xMjEwLDcgKzEyMDgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06
OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogICAg
IGlmICghaXNLZXkpIHsKICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJy
YXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAg
ICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8
Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50
c0FycmF5LCBpKSk7Ci0gICAgICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50
cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAg
ICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVB
dHRhY2htZW50S2V5X05vdFN5bmMsIGtDRkJvb2xlYW5UcnVlKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMTI5NSwxMiArMTI5MywxMiBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2Vy
V2ViTTo6QXVkaW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgICAg
ICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwogICAgICAgICB9CiAK
LSAgICAgICAgYXV0byBzdHJlYW1EZXNjcmlwdGlvbiA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24oZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCkpOworICAg
ICAgICBhdXRvIHN0cmVhbURlc2NyaXB0aW9uID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1hdERlc2NyaXB0aW9uLmdldCgpKTsKICAg
ICAgICAgaWYgKCFzdHJlYW1EZXNjcmlwdGlvbikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19F
UlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiBmYWlsZWQiKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5
dGVzUmVtYWluaW5nKTsKICAgICAgICAgfQotICAgICAgICBtX3BhY2tldER1cmF0aW9uID0gQ01U
aW1lTWFrZShzdHJlYW1EZXNjcmlwdGlvbi0+bUZyYW1lc1BlclBhY2tldCwgc3RyZWFtRGVzY3Jp
cHRpb24tPm1TYW1wbGVSYXRlKTsKKyAgICAgICAgbV9wYWNrZXREdXJhdGlvbiA9IFBBTDo6Q01U
aW1lTWFrZShzdHJlYW1EZXNjcmlwdGlvbi0+bUZyYW1lc1BlclBhY2tldCwgc3RyZWFtRGVzY3Jp
cHRpb24tPm1TYW1wbGVSYXRlKTsKIAogICAgICAgICBzZXRGb3JtYXREZXNjcmlwdGlvbihXVEZN
b3ZlKGZvcm1hdERlc2NyaXB0aW9uKSk7CiAgICAgfSBlbHNlIGlmIChjb2RlYygpID09IENvZGVj
VHlwZTo6T3B1cykgewpAQCAtMTMyMiw3ICsxMzIwLDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1
ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJl
YWQKICAgICBtX2N1cnJlbnRQYWNrZXRCeXRlT2Zmc2V0ID0gc3RkOjpudWxsb3B0OwogICAgIG1f
Y3VycmVudFBhY2tldFNpemUgPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICBhdXRvIHNhbXBsZUR1cmF0
aW9uID0gQ01UaW1lR2V0U2Vjb25kcyhDTVRpbWVTdWJ0cmFjdChwcmVzZW50YXRpb25UaW1lLCBt
X3NhbXBsZVByZXNlbnRhdGlvblRpbWUpKSArIENNVGltZUdldFNlY29uZHMobV9wYWNrZXREdXJh
dGlvbikgKiBzYW1wbGVDb3VudDsKKyAgICBhdXRvIHNhbXBsZUR1cmF0aW9uID0gUEFMOjpDTVRp
bWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lU3VidHJhY3QocHJlc2VudGF0aW9uVGltZSwgbV9zYW1w
bGVQcmVzZW50YXRpb25UaW1lKSkgKyBQQUw6OkNNVGltZUdldFNlY29uZHMobV9wYWNrZXREdXJh
dGlvbikgKiBzYW1wbGVDb3VudDsKICAgICBpZiAoc2FtcGxlRHVyYXRpb24gPj0gbV9taW5pbXVt
U2FtcGxlRHVyYXRpb24pCiAgICAgICAgIGNyZWF0ZVNhbXBsZUJ1ZmZlcihtZXRhZGF0YS5wb3Np
dGlvbik7CiAKQEAgLTEzMzksMjEgKzEzMzcsMjEgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8c2kK
ICAgICBhdXRvIGZ1bGxQYWNrZXRCeXRlc1JlYWQgPSBtX3BhY2tldEJ5dGVzUmVhZCAtIG1fcGFy
dGlhbEJ5dGVzUmVhZDsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXIgPSBudWxs
cHRyOwotICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBmdWxsUGFja2V0Qnl0ZXNSZWFkLCBrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBmdWxsUGFja2V0Qnl0ZXNSZWFkLCBrQ01CbG9ja0J1
ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CisgICAgYXV0byBlcnIgPSBQ
QUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgZnVsbFBhY2tldEJ5dGVzUmVhZCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVs
bHB0ciwgMCwgZnVsbFBhY2tldEJ5dGVzUmVhZCwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlO
b3dGbGFnLCAmYmxvY2tCdWZmZXIpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xP
R19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBm
YWlsZWQgd2l0aCAlZCIsIGVycik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBi
dWZmZXIgPSBhZG9wdENGKGJsb2NrQnVmZmVyKTsKIAotICAgIGVyciA9IENNQmxvY2tCdWZmZXJS
ZXBsYWNlRGF0YUJ5dGVzKG1fcGFja2V0RGF0YS5kYXRhKCksIGJ1ZmZlci5nZXQoKSwgMCwgZnVs
bFBhY2tldEJ5dGVzUmVhZCk7CisgICAgZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyUmVwbGFjZURh
dGFCeXRlcyhtX3BhY2tldERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0KCksIDAsIGZ1bGxQYWNrZXRC
eXRlc1JlYWQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9Q
T1NTSUJMRSgiQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMgZmFpbGVkIHdpdGggJWQiLCBl
cnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3
U2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBlcnIgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZl
ci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgbV9wYWNrZXREZXNjcmlwdGlvbnMu
c2l6ZSgpLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUsIG1fcGFja2V0RGVzY3JpcHRpb25zLmRh
dGEoKSwgJnJhd1NhbXBsZUJ1ZmZlcik7CisgICAgZXJyID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgbV9wYWNrZXREZXNjcmlw
dGlvbnMuc2l6ZSgpLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUsIG1fcGFja2V0RGVzY3JpcHRp
b25zLmRhdGEoKSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAgICBQ
QVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0
aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycik7CiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQ
OVV0aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KaW5kZXggZTlmODZkZWE0MzhlODk1ZTYzZGJkZTA3YzRk
OTVmOWI1YWVmMThjYy4uYWE3MzZjZjE0OWE0NzRiYTI2M2NhYWNkNjY0MmRlNzhmNzc4ODc3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRp
bGl0aWVzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KQEAgLTQ3LDcgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIHdlYm07CiAK
IFZQOVRlc3RpbmdPdmVycmlkZXMmIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpCkBA
IC0zNjIsMTEgKzM2MSwxMSBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRvQ01Db2xvclBy
aW1hcmllcyh1aW50OF90IHByaW1hcmllcykKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbkNvbG9y
UHJpbWFyaWVzOjpTTVBURV9TVF8yNDA6CiAgICAgICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZlckNv
bG9yUHJpbWFyaWVzX1NNUFRFX0M7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1h
cmllczo6U01QVEVfUlBfNDMxXzI6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlv
bkNvbG9yUHJpbWFyaWVzX0RDSV9QMzsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVz
Y3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25D
b2xvclByaW1hcmllczo6U01QVEVfRUdfNDMyXzE6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXRE
ZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NTsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NN
Rm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjU7CiAgICAgY2FzZSBWUENvbmZp
Z3VyYXRpb25Db2xvclByaW1hcmllczo6QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6Ci0g
ICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIw
MjA7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJp
ZXNfSVRVX1JfMjAyMDsKICAgICB9CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQyMCwxOCAr
NDE5LDE4IEBAIHN0YXRpYyBDRlN0cmluZ1JlZiBjb252ZXJ0VG9DTVRyYW5zZmVyRnVuY3Rpb24o
dWludDhfdCBjaGFyYWN0ZXJpc3RpY3MpCiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2Zl
ckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfMjQwOgogICAgICAgICByZXR1cm4ga0NWSW1hZ2VC
dWZmZXJUcmFuc2ZlckZ1bmN0aW9uX1NNUFRFXzI0ME1fMTk5NTsKICAgICBjYXNlIFZQQ29uZmln
dXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpTTVBURV9TVF8yMDg0OgotICAgICAgICBy
ZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRf
UFE7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9TTVBURV9TVF8yMDg0X1BROwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJD
aGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBfMTBiaXQ6CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25U
cmFuc2ZlckNoYXJhY3RlcmlzdGljczo6QlRfMjAyMF8xMmJpdDoKLSAgICAgICAgcmV0dXJuIGtD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwOworICAgICAgICBy
ZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAy
MDsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpTTVBU
RV9TVF80MjhfMToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9TTVBURV9TVF80MjhfMTsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xOwogICAgIGNhc2UgVlBDb25m
aWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIxMDBfSExHOgotICAgICAgICBy
ZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExH
OworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fSVRVX1JfMjEwMF9ITEc7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJh
Y3RlcmlzdGljczo6SUVDXzYxOTY2XzJfMToKLSAgICAgICAgcmV0dXJuIGNhbkxvYWRfQ29yZU1l
ZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgPyBQQUw6Omdl
dF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA6
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQ29yZU1lZGlhX2tDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgPyBQQUw6OmdldF9Db3JlTWVkaWFf
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA6IG51bGxwdHI7CiAg
ICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6TGluZWFyOgot
ICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVh
cjsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0xpbmVhcjsKICAgICB9CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQ2Nyw3ICs0NjYs
NyBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRvQ01ZQ2JDUk1hdHJpeCh1aW50OF90IGNv
ZWZmaWNpZW50cykKIHsKICAgICBzd2l0Y2ggKGNvZWZmaWNpZW50cykgewogICAgIGNhc2UgVlBD
b25maWd1cmF0aW9uTWF0cml4Q29lZmZpY2llbnRzOjpCVF8yMDIwX05vbmNvbnN0YW50X0x1bWlu
YW5jZToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRV
X1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1h
dHJpeF9JVFVfUl8yMDIwOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uTWF0cml4Q29lZmZpY2ll
bnRzOjpCVF80NzBfN19CRzoKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNp
ZW50czo6QlRfNjAxXzc6CiAgICAgICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZlcllDYkNyTWF0cml4
X0lUVV9SXzYwMV80OwpAQCAtNTQzLDExICs1NDIsMTEgQEAgc3RhdGljIFJldGFpblB0cjxDTUZv
cm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVjQ29u
ZmkKICAgICBDRlR5cGVSZWYgY29uZmlndXJhdGlvblZhbHVlc1tdID0geyBkYXRhLmdldCgpIH07
CiAgICAgYXV0byBjb25maWd1cmF0aW9uRGljdCA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbmZpZ3VyYXRpb25LZXlzLCBjb25maWd1cmF0aW9uVmFs
dWVzLCBXVEZfQVJSQVlfTEVOR1RIKGNvbmZpZ3VyYXRpb25LZXlzKSwgJmtDRlR5cGVEaWN0aW9u
YXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogCi0g
ICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc0tleXMgeyBrQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zIH07CisgICAgVmVjdG9y
PENGVHlwZVJlZj4gZXh0ZW5zaW9uc0tleXMgeyBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMgfTsKICAgICBWZWN0b3I8Q0ZU
eXBlUmVmPiBleHRlbnNpb25zVmFsdWVzID0geyBjb25maWd1cmF0aW9uRGljdC5nZXQoKSB9Owog
CiAgICAgaWYgKHJlY29yZC52aWRlb0Z1bGxSYW5nZUZsYWcgPT0gVlBDb25maWd1cmF0aW9uUmFu
Z2U6OkZ1bGxSYW5nZSkgewotICAgICAgICBleHRlbnNpb25zS2V5cy5hcHBlbmQoa0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOworICAgICAgICBleHRlbnNpb25z
S2V5cy5hcHBlbmQoUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VW
aWRlbyk7CiAgICAgICAgIGV4dGVuc2lvbnNWYWx1ZXMuYXBwZW5kKGtDRkJvb2xlYW5UcnVlKTsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQppbmRleCBj
ZWExNTZhZTJmYmUyNWFkYTAwNzY2OGU5MWQ1MGU1NjFjNjQyZTRlLi44ZWVmM2IyZWE2MDRiZDE5
ODNkNzdkMzhiZjUyMWE4ZDIxZjIwZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uLm1tCkBAIC00Myw5ICs0MywxMiBAQAogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExp
bmsuaCIKICNpbXBvcnQgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCiAKLXVzaW5nIG5hbWVzcGFj
ZSBQQUw7Ci0KLVdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOworLy8g
RXF1aXZhbGVudCB0byBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsK
Ky8vIE5lZWRlZCBkdWUgdG8gcmVxdWlyZW1lbnQgb2Ygc3BlY2lmeWluZyB0aGUgUEFMIG5hbWVz
cGFjZS4KK3RlbXBsYXRlIDw+CitzdHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZl
clJlZj4geworICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQgdHlwZUlEKHZvaWQpIHsgcmV0dXJu
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsgfQorfTsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC03Miw3ICs3NSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjpzZXRUaW1lYmFzZShDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFzZVJlbW92ZVRpbWVyRGlzcGF0
Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAg
IFBBTDo6Q01UaW1lYmFzZVJlbW92ZVRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQo
KSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICBtX3RpbWViYXNlID0gdGltZWJhc2U7CiAK
QEAgLTg0LDcgKzg3LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNldFRp
bWViYXNlKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgIGRpc3BhdGNoX2FjdGl2YXRlKG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogICAgICAgICB9Ci0g
ICAgICAgIENNVGltZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCks
IG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VBZGRUaW1lckRp
c3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogICAg
IH0KIH0KIApAQCAtMTA0LDEyICsxMDcsMTIgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246Om1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkKIHZvaWQgV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZUJ1ZmZlciwgYm9vbCBkaXNwbGF5aW5nKQogewogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9
IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisgICAgaWYgKG5vRXJy
ICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVm
ZmVyLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgVmVj
dG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5OwogICAgIHRpbWluZ0luZm9B
cnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZv
QXJyYXkuZGF0YSgpLCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIGl0ZW1Db3VudCwgdGlt
aW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8v
IENNQnVmZmVyQ2FsbGJhY2tzIGNvbnRhaW5zIDY0LWJpdCBwb2ludGVycyB0aGF0IGFyZW4ndCA4
LWJ5dGUgYWxpZ25lZC4gVG8gc3VwcHJlc3MgdGhlIGxpbmtlcgpAQCAtMTM0LDcgKzEzNyw3IEBA
IHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwKICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoY2Fs
bGJhY2tzLmNhbGxiYWNrcy52ZXJzaW9uKSA9PSBzaXplb2YodWludDMyX3QpLCAiVmVyc2lvbiBm
aWVsZCBtdXN0IGJlIDQgYnl0ZXMiKTsKICAgICAgICAgc3RhdGljX2Fzc2VydChhbGlnbm9mKEJ1
ZmZlckNhbGxiYWNrcykgPT0gNCwgIkNNQnVmZmVyQ2FsbGJhY2tzIHN0cnVjdCBtdXN0IGhhdmUg
NCBieXRlIGFsaWdubWVudCIpOwogCi0gICAgICAgIENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFja3MsICZv
dXRRdWV1ZSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVl
KTsKICAgICAgICAgbV9wcm9kdWNlclF1ZXVlID0gYWRvcHRDRihvdXRRdWV1ZSk7CiAgICAgfQog
CkBAIC0xNTYsNyArMTU5LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVu
cXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLAogICAgICAgICBzdGF0
aWNfYXNzZXJ0KHNpemVvZihjYWxsYmFja3MuY2FsbGJhY2tzLnZlcnNpb24pID09IHNpemVvZih1
aW50MzJfdCksICJWZXJzaW9uIGZpZWxkIG11c3QgYmUgNCBieXRlcyIpOwogICAgICAgICBzdGF0
aWNfYXNzZXJ0KGFsaWdub2YoQnVmZmVyQ2FsbGJhY2tzKSA9PSA0LCAiQ01CdWZmZXJDYWxsYmFj
a3Mgc3RydWN0IGFsaWdubWVudCBtdXN0IGJlIDQiKTsKIAotICAgICAgICBDTUJ1ZmZlclF1ZXVl
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZjYWxsYmFja3Mu
Y2FsbGJhY2tzLCAmb3V0UXVldWUpOworICAgICAgICBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFj
a3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fY29uc3VtZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0UXVl
dWUpOwogICAgIH0KIApAQCAtMTc3LDIwICsxODAsMjAgQEAgYm9vbCBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUs
IGIKICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgYXV0
byBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpOwotICAg
IGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRp
b25UaW1lU3RhbXAoc2FtcGxlKTsKLSAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJH
ZXREdXJhdGlvbihzYW1wbGUpOwotICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IENNVGlt
ZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9uKTsKLSAgICBpZiAoQ01UaW1lQ29t
cGFyZShwcmVzZW50YXRpb25FbmRUaW1lLCBjdXJyZW50VGltZSkgPj0gMCkKKyAgICBhdXRvIGN1
cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKTsKKyAg
ICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKKyAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CisgICAgYXV0byBwcmVzZW50YXRpb25FbmRU
aW1lID0gUEFMOjpDTVRpbWVBZGQocHJlc2VudGF0aW9uU3RhcnRUaW1lLCBkdXJhdGlvbik7Cisg
ICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShwcmVzZW50YXRpb25FbmRUaW1lLCBjdXJyZW50VGlt
ZSkgPj0gMCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFs
c2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKICAgICBpZiAoIWF0dGFjaG1l
bnRzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGZvciAoQ0ZJbmRleCBpbmRleCA9IDAs
IGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzKTsgaW5kZXggPCBjb3VudDsgKytp
bmRleCkgewogICAgICAgICBDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QgPSAoQ0ZEaWN0
aW9uYXJ5UmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHMsIGluZGV4KTsKLSAg
ICAgICAgQ0ZCb29sZWFuUmVmIGRlcGVuZGVkT24gPSAoQ0ZCb29sZWFuUmVmKUNGRGljdGlvbmFy
eUdldFZhbHVlKGF0dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5k
ZWRPbkJ5T3RoZXJzKTsKKyAgICAgICAgQ0ZCb29sZWFuUmVmIGRlcGVuZGVkT24gPSAoQ0ZCb29s
ZWFuUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBs
ZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMpOwogICAgICAgICBpZiAoZGVwZW5k
ZWRPbiAmJiAhQ0ZCb29sZWFuR2V0VmFsdWUoZGVwZW5kZWRPbikpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQpAQCAtMjAzLDE0ICsyMDYsMTQgQEAgdm9pZCBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OmVuc3VyZURlY29tcHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKENNU2Ft
cGxlQnUKICAgICBpZiAoaXNJbnZhbGlkYXRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2Ft
cGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKKyAgICBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOwogICAgIGlmIChtX2RlY29tcHJlc3Npb25T
ZXNzaW9uICYmICFWVERlY29tcHJlc3Npb25TZXNzaW9uQ2FuQWNjZXB0Rm9ybWF0RGVzY3JpcHRp
b24obV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSwgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbikp
IHsKICAgICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFt
ZXMobV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSk7CiAgICAgICAgIG1fZGVjb21wcmVzc2lv
blNlc3Npb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIGlmICghbV9kZWNvbXByZXNzaW9uU2Vz
c2lvbikgewotICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsK
KyAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRp
b24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKICAg
ICAgICAgYXV0byB2aWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uID0gQHsgKF9fYnJpZGdlIE5TU3Ry
aW5nICopa1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJh
dGVkVmlkZW9EZWNvZGVyOiBAKCBtX2hhcmR3YXJlRGVjb2RlckVuYWJsZWQgKSB9OwogCiAgICAg
ICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlczsKQEAgLTI1Niw3ICsyNTksNyBAQCB2b2lkIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZSwgYm9vbCBkaQogCiAgICAgTW9ub3RvbmljVGltZSBzdGFydFRpbWUgPSBNb25vdG9u
aWNUaW1lOjpub3coKTsKICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWVXaXRo
T3V0cHV0SGFuZGxlcihtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdldCgpLCBzYW1wbGUsIGZsYWdz
LCBudWxscHRyLCBbdGhpcywgZGlzcGxheWluZywgc3RhcnRUaW1lXShPU1N0YXR1cyBzdGF0dXMs
IFZURGVjb2RlSW5mb0ZsYWdzIGluZm9GbGFncywgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZl
ciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIHByZXNlbnRhdGlvbkR1cmF0
aW9uKSB7Ci0gICAgICAgIGRvdWJsZSBkZWx0YVJhdGlvID0gKE1vbm90b25pY1RpbWU6Om5vdygp
IC0gc3RhcnRUaW1lKS5zZWNvbmRzKCkgLyBDTVRpbWVHZXRTZWNvbmRzKHByZXNlbnRhdGlvbkR1
cmF0aW9uKTsKKyAgICAgICAgZG91YmxlIGRlbHRhUmF0aW8gPSAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSBzdGFydFRpbWUpLnNlY29uZHMoKSAvIFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhwcmVzZW50
YXRpb25EdXJhdGlvbik7CiAKICAgICAgICAgdXBkYXRlUW9zV2l0aERlY29kZVRpbWVTdGF0aXN0
aWNzKGRlbHRhUmF0aW8pOwogICAgICAgICBoYW5kbGVEZWNvbXByZXNzaW9uT3V0cHV0KGRpc3Bs
YXlpbmcsIHN0YXR1cywgaW5mb0ZsYWdzLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0
YW1wLCBwcmVzZW50YXRpb25EdXJhdGlvbik7CkBAIC0yODksNyArMjkyLDcgQEAgdm9pZCBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoYm9vbCBk
aXNwbGF5aW5nLCBPU1MKICAgICAgICAgKyttX2Ryb3BwZWRWaWRlb0ZyYW1lczsKIAogICAgIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiByYXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uID0gbnVs
bHB0cjsKLSAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8IG5vRXJyICE9IENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJhd0lt
YWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbikpIHsKKyAgICBpZiAoc3RhdHVz
ICE9IG5vRXJyIHx8IG5vRXJyICE9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsICZyYXdJ
bWFnZUJ1ZmZlckRlc2NyaXB0aW9uKSkgewogICAgICAgICArK21fY29ycnVwdGVkVmlkZW9GcmFt
ZXM7CiAgICAgICAgIC0tbV9mcmFtZXNCZWluZ0RlY29kZWQ7CiAgICAgICAgIG1heWJlQmVjb21l
UmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMDQsNyArMzA3LDcgQEAgdm9pZCBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoYm9vbCBkaXNw
bGF5aW5nLCBPU1MKICAgICB9OwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3SW1hZ2VTYW1w
bGVCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVy
LCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdldCgpLCAmaW1hZ2VCdWZmZXJUaW1pbmcsICZyYXdJ
bWFnZVNhbXBsZUJ1ZmZlcikpIHsKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJhd0ltYWdl
QnVmZmVyLCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdldCgpLCAmaW1hZ2VCdWZmZXJUaW1pbmcs
ICZyYXdJbWFnZVNhbXBsZUJ1ZmZlcikpIHsKICAgICAgICAgKyttX2NvcnJ1cHRlZFZpZGVvRnJh
bWVzOwogICAgICAgICAtLW1fZnJhbWVzQmVpbmdEZWNvZGVkOwogICAgICAgICBtYXliZUJlY29t
ZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzE4LDExICszMjEsMTEgQEAgdm9pZCBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoYm9vbCBk
aXNwbGF5aW5nLCBPU1MKIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6Z2V0Rmlyc3RWaWRlb0ZyYW1lKCkKIHsKLSAgICBpZiAoIW1fcHJv
ZHVjZXJRdWV1ZSB8fCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KQorICAgIGlmICghbV9wcm9kdWNlclF1ZXVlIHx8IFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1wdHko
bV9wcm9kdWNlclF1ZXVlLmdldCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNr
ZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRh
aW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKUNNU2FtcGxlQnVmZmVyR2V0SW1h
Z2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CisgICAgUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVC
dWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1
ZXVlLmdldCgpKSkpOworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZl
ciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihj
dXJyZW50U2FtcGxlLmdldCgpKTsKICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoaW1hZ2VCdWZmZXIu
Z2V0KCkpID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQoKSk7CiAKICAgICBtYXliZUJlY29tZVJl
YWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzM1LDI1ICszMzgsMjUgQEAgdm9pZCBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoKQogICAgIGlmICghbV90aW1l
YmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB0aW1lID0gUEFMOjp0b01lZGlhVGlt
ZShDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7CisgICAgYXV0byB0aW1lID0g
UEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkp
KTsKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRp
Y0RlcXVldWUoJXApIC0gcHVyZ2luZyBhbGwgc2FtcGxlcyBiZWZvcmUgdGltZSglcykiLCB0aGlz
LCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIE1lZGlhVGltZSBuZXh0Rmly
ZVRpbWUgPSBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCk7CiAgICAgYm9vbCByZWxl
YXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAgd2hpbGUgKENNU2FtcGxlQnVmZmVyUmVm
IGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZl
clF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewotICAgICAgICBNZWRpYVRp
bWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZl
ckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOwotICAgICAgICBNZWRpYVRp
bWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24o
Zmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUg
PSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZUdl
dEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsKKyAgICAgICAgTWVkaWFUaW1lIHByZXNl
bnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOworICAgICAgICBNZWRpYVRpbWUg
ZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlv
bihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uRW5kVGltZXN0
YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVyYXRpb247CiAgICAgICAgIGlmICh0aW1l
ID4gcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wKSB7Ci0gICAgICAgICAgICBDRlJlbGVhc2UoQ01C
dWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAg
ICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0g
dHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICNpZiAhTE9HX0RJU0FC
TEVECi0gICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVH
ZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAg
ICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVz
ZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgIGF1dG8g
YmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICBhdXRvIGVu
ZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9u
VGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICBMT0coTWVkaWEsICJX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoJXApIC0gcXVldWUo
JXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5n
KGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKIApAQCAtMzY1LDcgKzM2OCw3IEBAIHZvaWQg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCkKICAgICAgICAg
bWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKIAogICAgIExPRyhNZWRpYSwgIldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSglcCkgLSBxdWV1ZSBl
bXB0eSIsIHRoaXMpOwotICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlTmV4dEZp
cmVUaW1lKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCksIFBBTDo6dG9DTVRp
bWUobmV4dEZpcmVUaW1lKSwgMCk7CisgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRj
aFNvdXJjZU5leHRGaXJlVGltZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgp
LCBQQUw6OnRvQ01UaW1lKG5leHRGaXJlVGltZSksIDApOwogfQogCiB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlLCBib29sIGRpc3BsYXlpbmcpCkBAIC0zODMsMTcgKzM4NiwxNyBAQCB2b2lkIFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlLAogICAgIGJvb2wgc2hvdWxkTm90aWZ5ID0gdHJ1ZTsKIAogICAgIGlmIChk
aXNwbGF5aW5nICYmIG1fdGltZWJhc2UpIHsKLSAgICAgICAgYXV0byBjdXJyZW50UmF0ZSA9IENN
VGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOwotICAgICAgICBhdXRvIGN1cnJlbnRU
aW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgp
KSk7Ci0gICAgICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGlt
ZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKLSAgICAg
ICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJlc2VudGF0aW9uU3RhcnRUaW1lICsgUEFM
Ojp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSkpOworICAgICAg
ICBhdXRvIGN1cnJlbnRSYXRlID0gUEFMOjpDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdl
dCgpKTsKKyAgICAgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7CisgICAgICAgIGF1dG8gcHJlc2Vu
dGF0aW9uU3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOworICAgICAgICBhdXRvIHByZXNlbnRhdGlv
bkVuZFRpbWUgPSBwcmVzZW50YXRpb25TdGFydFRpbWUgKyBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpKTsKICAgICAgICAgaWYgKGN1cnJlbnRU
aW1lIDwgcHJlc2VudGF0aW9uU3RhcnRUaW1lIHx8IGN1cnJlbnRUaW1lID49IHByZXNlbnRhdGlv
bkVuZFRpbWUpCiAgICAgICAgICAgICBzaG91bGROb3RpZnkgPSBmYWxzZTsKIAogICAgICAgICBp
ZiAoY3VycmVudFJhdGUgPiAwICYmIHByZXNlbnRhdGlvbkVuZFRpbWUgPCBjdXJyZW50VGltZSkg
ewogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVk
aWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICAgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGlt
ZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOworICAgICAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFM
OjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1
ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFM
OjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSglcCkgLSBkcm9wcGluZyBmcmFtZSBsYXRlIGJ5
ICVzLCBmcmFtZXNCZWluZ0RlY29kZWQoJWQpLCBwcm9kdWNlclF1ZXVlKCVzIC0+ICVzKSIsIHRo
aXMsIHRvU3RyaW5nKHByZXNlbnRhdGlvbkVuZFRpbWUgLSBjdXJyZW50VGltZSkudXRmOCgpLmRh
dGEoKSwgbV9mcmFtZXNCZWluZ0RlY29kZWQsIHRvU3RyaW5nKGJlZ2luKS51dGY4KCkuZGF0YSgp
LCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAgICAgICAgICArK21f
ZHJvcHBlZFZpZGVvRnJhbWVzOwpAQCAtNDAxLDE3ICs0MDQsMTcgQEAgdm9pZCBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZSwKICAgICAgICAgfQogICAgIH0KIAotICAgIENNQnVmZmVyUXVldWVFbnF1ZXVlKG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxlKTsKKyAgICBQQUw6OkNNQnVmZmVyUXVldWVFbnF1
ZXVlKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxlKTsKIAogI2lmICFMT0dfRElTQUJMRUQK
LSAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgYXV0byBl
bmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1l
U3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgYXV0byBwcmVzZW50YXRpb25UaW1l
ID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFt
cChzYW1wbGUpKTsKKyAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVm
ZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKTsKKyAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVl
R2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAg
IGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKICAgICBMT0coTWVkaWEsICJX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKCVwKSAtIHBy
ZXNlbnRhdGlvblRpbWUoJXMpLCBmcmFtZXNCZWluZ0RlY29kZWQoJWQpLCBwcm9kdWNlclF1ZXVl
KCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHByZXNlbnRhdGlvblRpbWUpLnV0ZjgoKS5kYXRh
KCksIG1fZnJhbWVzQmVpbmdEZWNvZGVkLCB0b1N0cmluZyhiZWdpbikudXRmOCgpLmRhdGEoKSwg
dG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdGltZWJh
c2UpCi0gICAgICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRp
YXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgIFBB
TDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3Rp
bWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAgIGlmICghbV9oYXNBdmFp
bGFibGVGcmFtZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CkBAIC00MjYsNyArNDI5LDcgQEAg
dm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKIAogYm9vbCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkgY29uc3QKIHsKLSAgICBDTUl0ZW1Db3VudCBw
cm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVlID8gQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNv
dW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOworICAgIENNSXRlbUNvdW50IHByb2R1Y2Vy
Q291bnQgPSBtX3Byb2R1Y2VyUXVldWUgPyBQQUw6OkNNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3Vu
dChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpIDogMDsKICAgICByZXR1cm4gbV9mcmFtZXNCZWluZ0Rl
Y29kZWQgKyBwcm9kdWNlckNvdW50IDw9IGtIaWdoV2F0ZXJNYXJrOwogfQogCkBAIC00NTIsNyAr
NDU1LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnN0b3BSZXF1ZXN0aW5n
TWVkaWFEYXRhKCkKIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdo
ZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjYWxsYmFjaykK
IHsKLSAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNlclF1ZXVlICYmICFDTUJ1ZmZlclF1ZXVl
SXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CisgICAgaWYgKGNhbGxiYWNrICYmIG1f
cHJvZHVjZXJRdWV1ZSAmJiAhUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVl
dWUuZ2V0KCkpKSB7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2td
IHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0pOwpAQCAtNDYzLDcgKzQ2Niw3
IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpub3RpZnlXaGVuSGFzQXZhaWxh
YmxlVmlkZW9GcmFtZShzdGQ6OmZ1bmN0aW9uCiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpYVRp
bWUmIHRpbWUsIEltYWdlRm9yVGltZUZsYWdzIGZsYWdzKQogewotICAgIGlmIChDTUJ1ZmZlclF1
ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CisgICAgaWYgKFBBTDo6Q01CdWZm
ZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgewogICAgICAgICBMT0coTWVk
aWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZSglcCkgLSB0aW1l
KCVzKSwgcXVldWUgZW1wdHkiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtNDcxLDkgKzQ3NCw5IEBAIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdl
Rm9yVGltZShjb25zdCBNZWRpCiAgICAgYm9vbCBhbGxvd0VhcmxpZXIgPSBmbGFncyA9PSBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OkFsbG93RWFybGllcjsKICAgICBib29sIGFsbG93TGF0
ZXIgPSBmbGFncyA9PSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OkFsbG93TGF0ZXI7CiAK
LSAgICBNZWRpYVRpbWUgc3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVl
R2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Cisg
ICAgTWVkaWFUaW1lIHN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7
CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIE1lZGlhVGltZSBlbmRUaW1lID0gUEFMOjp0b01lZGlh
VGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSkpOworICAgIE1lZGlhVGltZSBlbmRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQ
QUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1
ZXVlLmdldCgpKSk7CiAjZW5kaWYKICAgICBpZiAoIWFsbG93TGF0ZXIgJiYgdGltZSA8IHN0YXJ0
VGltZSkgewogICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmltYWdlRm9yVGltZSglcCkgLSB0aW1lKCVzKSB0b28gZWFybHkgZm9yIHF1ZXVlKCVzIC0+ICVz
KSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHN0YXJ0VGlt
ZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kVGltZSkudXRmOCgpLmRhdGEoKSk7CkBAIC00
ODIsMjQgKzQ4NSwyNCBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQogCiAgICAgYm9vbCByZWxl
YXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAgd2hpbGUgKENNU2FtcGxlQnVmZmVyUmVm
IGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZl
clF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewotICAgICAgICBNZWRpYVRp
bWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZl
ckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOwotICAgICAgICBNZWRpYVRp
bWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24o
Zmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUg
PSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZUdl
dEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsKKyAgICAgICAgTWVkaWFUaW1lIHByZXNl
bnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOworICAgICAgICBNZWRpYVRpbWUg
ZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlv
bihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uRW5kVGltZXN0
YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVyYXRpb247CiAgICAgICAgIGlmICghYWxs
b3dMYXRlciAmJiBwcmVzZW50YXRpb25UaW1lc3RhbXAgPiB0aW1lKQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgICAgIGlmICghYWxsb3dFYXJsaWVyICYmIHByZXNlbnRhdGlvbkVu
ZFRpbWVzdGFtcCA8IHRpbWUpIHsKLSAgICAgICAgICAgIENGUmVsZWFzZShDTUJ1ZmZlclF1ZXVl
RGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIENG
UmVsZWFzZShQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSB0cnVlOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNh
bXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1
ZXVlLmdldCgpKSkpOwotICAgICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VC
dWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1
cnJlbnRTYW1wbGUuZ2V0KCkpOworICAgICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJl
Zj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKSk7CisgICAgICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9
IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJy
ZW50U2FtcGxlLmdldCgpKTsKICAgICAgICAgQVNTRVJUKENGR2V0VHlwZUlEKGltYWdlQnVmZmVy
LmdldCgpKSA9PSBDVlBpeGVsQnVmZmVyR2V0VHlwZUlEKCkpOwogCiAgICAgICAgIGlmIChtX3Rp
bWViYXNlKQotICAgICAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0Zp
cmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAg
ICAgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1l
ZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAgICAg
ICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwogCkBAIC01MDgsNyArNTExLDcg
QEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKICAgICB9CiAKICAgICBpZiAobV90aW1lYmFzZSkK
LSAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVs
eShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgUEFMOjpD
TVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJh
c2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgaWYgKHJlbGVhc2VkSW1hZ2VC
dWZmZXJzKQogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAt
NTIwLDkgKzUyMyw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQogewogICAgIG1fZGVjb21wcmVzc2lvblF1ZXVlLT5k
aXNwYXRjaFN5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSBtdXRh
YmxlIHsKLSAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3Rl
ZFRoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIG1fZW5xdWVpbmdRdWV1ZS0+
ZGlzcGF0Y2hTeW5jKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewot
ICAgICAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fY29uc3VtZXJR
dWV1ZS5nZXQoKSk7CisgICAgICAgICAgICBQQUw6OkNNQnVmZmVyUXVldWVSZXNldChwcm90ZWN0
ZWRUaGlzLT5tX2NvbnN1bWVyUXVldWUuZ2V0KCkpOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9mcmFtZXNTaW5jZUxhc3RRb3NDaGVjayA9IDA7CiAgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX2N1cnJlbnRRb3NUaWVyID0gMDsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnJl
c2V0UW9zVGllcigpOwpAQCAtNTMzLDI0ICs1MzYsMjQgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb246OmZsdXNoKCkKIENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmdldERlY29kZVRpbWUoQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikKIHsKICAgICBDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KGJ1Zik7
Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKHNhbXBsZSk7Cisg
ICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoc2FtcGxlKTsK
IH0KIAogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9u
VGltZShDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsKLSAgICByZXR1
cm4gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKKyAgICBy
ZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUp
OwogfQogCiBDTVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXREdXJhdGlvbihD
TUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9
IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsKLSAgICByZXR1cm4gQ01T
YW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKIH0KIAogQ0ZDb21wYXJpc29uUmVzdWx0IFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZlcnMoQ01CdWZmZXJSZWYgYnVmMSwg
Q01CdWZmZXJSZWYgYnVmMiwgdm9pZCogcmVmY29uKQogewotICAgIHJldHVybiAoQ0ZDb21wYXJp
c29uUmVzdWx0KUNNVGltZUNvbXBhcmUoZ2V0UHJlc2VudGF0aW9uVGltZShidWYxLCByZWZjb24p
LCBnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjIsIHJlZmNvbikpOworICAgIHJldHVybiAoQ0ZDb21w
YXJpc29uUmVzdWx0KVBBTDo6Q01UaW1lQ29tcGFyZShnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjEs
IHJlZmNvbiksIGdldFByZXNlbnRhdGlvblRpbWUoYnVmMiwgcmVmY29uKSk7CiB9CiAKIHZvaWQg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpyZXNldFFvc1RpZXIoKQpAQCAtNjAyLDcgKzYw
NSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRhdGVRb3NXaXRoRGVj
b2RlVGltZVN0YXRpc3RpY3MoZG91YmxlIHJhdGlvCiAgICAgaWYgKCFtX3RpbWViYXNlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBkb3VibGUgcmF0ZSA9IENNVGltZWJhc2VHZXRSYXRlKG1fdGlt
ZWJhc2UuZ2V0KCkpOworICAgIGRvdWJsZSByYXRlID0gUEFMOjpDTVRpbWViYXNlR2V0UmF0ZSht
X3RpbWViYXNlLmdldCgpKTsKICAgICBpZiAoIXJhdGUpCiAgICAgICAgIHJhdGUgPSAxOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5z
ZmVyU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVC5tbQppbmRleCBlM2YwOTI3MDM0OGU3YTVhZWY3MjY2ZWI0NzJk
ZGJhZTczYmMzNDA3Li5mMzE2OWFiYzAyNzcwODJmMGNmY2U0NzI2NzllMTEwNzk3YzhjOWY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5z
ZmVyU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KQEAgLTQyLDcgKzQyLDYgQEAKICNpbXBvcnQgPHBh
bC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBu
YW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIENGU3RyaW5nUmVmIGN2UGl4ZWxGb3JtYXRP
cGVuR0xLZXkoKQogewpAQCAtMTM4LDcgKzEzNyw3IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1
CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
cmVhdGVQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IElu
dFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGNvbnZlcnRQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1
ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUpOworICAgIHJldHVybiBjb252
ZXJ0UGl4ZWxCdWZmZXIoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1
ZmZlciksIHNpemUpOwogfQogCiBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBz
b3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0xNDYsOSArMTQ1LDkgQEAgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0
Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBpZiAoIXNvdXJjZUJ1ZmZlcikKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGRlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRG
b3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIpOwotICAgIGF1dG8gc291cmNlU2l6ZSA9IEZs
b2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25z
KGRlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRp
Y19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291
cmNlQnVmZmVyKSk7CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIpOworICAgIGF1dG8gc291cmNlU2l6ZSA9
IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRp
bWVuc2lvbnMoZGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVy
ID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldElt
YWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOwogICAgIGlmIChzaXplID09IGV4cGFuZGVkSW50U2l6
ZShzb3VyY2VTaXplKSAmJiBtX3BpeGVsRm9ybWF0ID09IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZv
cm1hdFR5cGUocGl4ZWxCdWZmZXIpKQogICAgICAgICByZXR1cm4gcmV0YWluUHRyKHNvdXJjZUJ1
ZmZlcik7CiAKQEAgLTE2MCw3ICsxNTksNyBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0g
ICAgYXV0byBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShz
b3VyY2VCdWZmZXIsIDEsIG51bGxwdHIsICZpdGVtQ291bnQpOworICAgIGF1dG8gc3RhdHVzID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIs
IDEsIG51bGxwdHIsICZpdGVtQ291bnQpOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0
Q01TYW1wbGVCdWZmZXI6IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5IGZh
aWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNjksNyArMTY4LDcgQEAgUmV0YWluUHRyPENNU2Ft
cGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZm
ZXIoQ01TYW0KICAgICBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWVpbmdJbmZvUHRyID0gbnVsbHB0
cjsKICAgICBpZiAoaXRlbUNvdW50KSB7CiAgICAgICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0
ZW1Db3VudCk7Ci0gICAgICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCBudWxscHRyKTsKKyAgICAgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5
LmRhdGEoKSwgbnVsbHB0cik7CiAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVy
dENNU2FtcGxlQnVmZmVyOiBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSBm
YWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE3OCwxNCArMTc3LDE0IEBAIFJldGFpblB0
cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2Ft
cGxlQnVmZmVyKENNU2FtCiAgICAgfQogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252
ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBzdGF0dXMg
PSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3Jp
cHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0co
TWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyIHJldHVybmVkOiAlZCIs
IHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJlc2l6ZWRTYW1wbGVCdWZmZXI7Ci0gICAgc3Rh
dHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24s
IHRpbWVpbmdJbmZvUHRyLCAmcmVzaXplZFNhbXBsZUJ1ZmZlcik7CisgICAgc3RhdHVzID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgdGlt
ZWluZ0luZm9QdHIsICZyZXNpemVkU2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0
RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgUkVMRUFT
RV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZm
ZXI6IGZhaWxlZCB0byBjcmVhdGUgQ01TYW1wbGVCdWZmZXIgd2l0aCBlcnJvciBjb2RlOiAlZCIs
IHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CkBAIC0yMzcsMTYgKzIzNiwxNiBAQCBSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2Ft
cGxlQnVmZmVyKENWUGl4ZQogICAgIH0KIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9u
KTsKKyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5w
dXRCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cykgewog
ICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZl
cnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGVCdWZmZXI7Ci0gICAgYXV0byBjbVRpbWUgPSB0b0NNVGltZShzYW1wbGVUaW1lKTsKLSAgICBD
TVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsga0NNVGltZUludmFsaWQsIGNtVGltZSwg
Y21UaW1lIH07Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFn
ZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZl
ci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsK
KyAgICBhdXRvIGNtVGltZSA9IFBBTDo6dG9DTVRpbWUoc2FtcGxlVGltZSk7CisgICAgQ01TYW1w
bGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IFBBTDo6a0NNVGltZUludmFsaWQsIGNtVGltZSwg
Y21UaW1lIH07CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0
QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZm
ZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cykg
ewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNv
bnZlcnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRpYWxpemUgQ01TYW1wbGVCdWZmZXIgd2l0
aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZL
aXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlQVZLaXQubW0KaW5kZXggZTBkYWFjODViODczYWQ2YWE5YjRhYjJkYjdhMDA5Y2MzN2Q0Nzg5
NS4uMzJhMDQ0OTZjZmY3ZDg0MTExMjBmY2QxMzNlNmQ2NzQyNTRhODZiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VBVktpdC5tbQpAQCAtNDcsNyArNDcsNiBAQCBTT0ZUTElOS19BVktJVF9GUkFNRVdPUkso
KQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlZhbHVlVGltaW5nKQogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VBVktpdDo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQoUGxheWJhY2tTZXNz
aW9uTW9kZWwmIG1vZGVsKQogICAgIDogbV9wbGF5ZXJDb250cm9sbGVyKGFkb3B0TlMoW1tXZWJB
VlBsYXllckNvbnRyb2xsZXIgYWxsb2NdIGluaXRdKSkKQEAgLTE0NSw3ICsxNDQsNyBAQCB2b2lk
IFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVrYWJsZVJhbmdlc0NoYW5nZWQoY29u
c3QgVGltZVJhbmdlcyYgdGltZQogICAgICAgICBkb3VibGUgc3RhcnQgPSB0aW1lUmFuZ2VzLnN0
YXJ0KGkpLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgICAgICBkb3VibGUgZW5kID0gdGltZVJh
bmdlcy5lbmQoaSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICAgICAgQ01UaW1lUmFuZ2Ug
cmFuZ2UgPSBDTVRpbWVSYW5nZU1ha2UoQ01UaW1lTWFrZVdpdGhTZWNvbmRzKHN0YXJ0LCAxMDAw
KSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOworICAgICAgICBDTVRp
bWVSYW5nZSByYW5nZSA9IFBBTDo6Q01UaW1lUmFuZ2VNYWtlKFBBTDo6Q01UaW1lTWFrZVdpdGhT
ZWNvbmRzKHN0YXJ0LCAxMDAwKSwgUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoZW5kLXN0YXJ0
LCAxMDAwKSk7CiAgICAgICAgIFtzZWVrYWJsZVJhbmdlcyBhZGRPYmplY3Q6W05TVmFsdWUgdmFs
dWVXaXRoQ01UaW1lUmFuZ2U6cmFuZ2VdXTsKICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
bW0KaW5kZXggZWE0MjNjNzE3YzdhZTkxYmQ0ZWU5OTA4N2UwN2M0ZTVjMzdlNGMzZi4uNWRmMzQ5
ZmM2ZmNkZmNmYWVhNzU1NjMyMGYzYWU2ZTY2NzYzNGU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1t
CkBAIC0zNzMsNyArMzczLDYgQEAgLSAodm9pZClwaXBBY3Rpb25TdG9wOihQSVBWaWV3Q29udHJv
bGxlciAqKXBpcAogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2Ug
UEFMOwogCiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYyhQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMmIHBsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZSkKICAgICA6IG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKHBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRleCA4
ODQwOTQyOTc5MjZjOGFlYmRlZjZmM2U5NTc4NDJmODM0MjhiODkyLi5kNDE5ZTBlMTkyNTU1ZDcz
NjA4NTg1MWY1NGNhMDA0MGQ0NmI2NjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGwuY3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7
CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+IE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtLCBj
b25zdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CkBAIC04OCwxMiAr
ODcsMTIgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKIHsKICAgICBpZiAoc2hvdWxkTXV0ZVZp
ZGVvKCkpIHsKICAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWUpIHsKLSAgICAgICAgICAgIG1fYmxh
Y2tGcmFtZURlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihz
YW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwotICAg
ICAgICAgICAgYXV0byBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGlt
ZW5zaW9ucyhtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgICAgICAgICBtX2Js
YWNrRnJhbWVEZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihzYW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIp
OworICAgICAgICAgICAgYXV0byBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpKTsKICAgICAg
ICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoZGltZW5zaW9ucy53
aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQpOwogCiAgICAgICAgICAgICBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAgYXV0
byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlv
bik7CisgICAgICAgICAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9ibGFja0ZyYW1l
LmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBu
b0VycikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSA6OnVuYWJsZSB0byBj
cmVhdGUgYSBibGFjayBmcmFtZSBkZXNjcmlwdGlvbjogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0
YXR1cykpOwogICAgICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IG51bGxwdHI7CkBAIC0xMDMs
OCArMTAyLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKICAgICAgICAgfQogCiAgICAgICAg
IENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IG51bGxwdHI7Ci0gICAgICAgIENNU2FtcGxlVGlt
aW5nSW5mbyB0aW1pbmdJbmZvIHsga0NNVGltZUludmFsaWQsIHRvQ01UaW1lKHNhbXBsZUJ1ZmZl
ci5wcmVzZW50YXRpb25UaW1lKCkpLCB0b0NNVGltZShzYW1wbGVCdWZmZXIuZGVjb2RlVGltZSgp
KSB9OwotICAgICAgICBhdXRvIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRo
SW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpbV9ibGFj
a0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSwgJnRpbWluZ0luZm8s
ICZzYW1wbGUpOworICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyB7IFBBTDo6
a0NNVGltZUludmFsaWQsIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVyLnByZXNlbnRhdGlvblRp
bWUoKSksIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVyLmRlY29kZVRpbWUoKSkgfTsKKyAgICAg
ICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpbV9ibGFja0ZyYW1l
LmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSwgJnRpbWluZ0luZm8sICZzYW1w
bGUpOwogCiAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2
aWRlb1NhbXBsZUF2YWlsYWJsZSAtIHVuYWJsZSB0byBjcmVhdGUgYSBibGFjayBmcmFtZTogJWQi
LCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA1MWEzZTE4YTJjZWRkM2NkNWRhOTNmMzRlYmYz
NzExZTAyMGY4YjYyLi41ZTExMGVjZDdkZTM4NDYxYjQyOTA0YTBlYjQ4ODM0MTg0M2U3NWE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpAQCAt
MzYsMTMgKzM2LDEyIEBACiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKICNpbXBvcnQgPHBhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRM
aW5rLmg+CiAKICNkZWZpbmUgTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05EUyAwLjEKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmNyZWF0ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja09iamVjdCkKIHsKICAgICBhdXRvIGNvbXByZXNzb3IgPSBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPihuZXcgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
KCkpOwpAQCAtNTIsMTUgKzUxLDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y3JlYXRlCiB9CiAKIEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkK
LSAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZSB7IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBw
bGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikgfQotICAgICwgbV9sb3dXYXRlclRpbWUg
eyBDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05EUywgMTAwMCkg
fQorICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBw
bGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikpCisgICAgLCBtX2xvd1dhdGVyVGltZShQ
QUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRTLCAxMDAw
KSkKIHsKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV9jb252ZXJ0ZXIpIHsKLSAgICAgICAgQXVkaW9D
b252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRl
ckRpc3Bvc2UobV9jb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7CiAg
ICAgfQogfQpAQCAtNjgsMTkgKzY3LDE5IEBAIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNr
LCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIGlucHV0QnVm
ZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNh
bXBsZUJ1ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFMOjpD
TUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZpbnB1
dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
IkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlQ3JlYXRlIGZvciBtX2lu
cHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAgICAgbV9pbnB1dEJ1ZmZlclF1ZXVlID0gYWRvcHRDRihpbnB1dEJ1ZmZl
clF1ZXVlKTsKIAogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0QnVmZmVyUXVldWU7Ci0gICAg
aWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwg
Jm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZl
clF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdl
dENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVldWUp
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVhdGUgZm9yIG1fb3V0cHV0QnVmZmVyUXVl
dWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0cHV0QnVmZmVyUXVldWUpOwot
ICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
LCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0
YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwpOworICAgIFBBTDo6Q01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxs
YmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBQ
QUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1faXNFbmNvZGluZyA9IHRydWU7CiAgICAg
cmV0dXJuIHRydWU7CkBAIC04OSw4ICs4OCw4IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhCiB2
b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKCkKIHsKICAgICBtX3Nlcmlh
bERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10gewotICAgICAgICBwcm9jZXNzU2Ft
cGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKGtDTVRpbWVJbnZhbGlkKTsKLSAgICAgICAgYXV0
byBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVldWUu
Z2V0KCkpOworICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKFBB
TDo6a0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1
ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxlZCAlZCIsIGVycm9yKTsK
ICAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CiAgICAgfSk7CkBAIC0xMTIsNyArMTExLDcg
QEAgVUludDMyIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZGVmYXVsdE91dHB1dEJpdFJh
dGUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0QKIAogYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIEF1ZGlvRm9ybWF0SUQgb3V0cHV0
Rm9ybWF0SUQpCiB7Ci0gICAgY29uc3QgYXV0byAqYXVkaW9Gb3JtYXRMaXN0SXRlbSA9IENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQoZm9ybWF0RGVzY3Jp
cHRpb24pOworICAgIGNvbnN0IGF1dG8gKmF1ZGlvRm9ybWF0TGlzdEl0ZW0gPSBQQUw6OkNNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQoZm9ybWF0RGVzY3Jp
cHRpb24pOwogICAgIG1fc291cmNlRm9ybWF0ID0gYXVkaW9Gb3JtYXRMaXN0SXRlbS0+bUFTQkQ7
CiAKICAgICBtZW1zZXQoJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIHNpemVvZihBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24pKTsKQEAgLTEyMSwzNCArMTIwLDM0IEBAIGJvb2wgQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNj
cmlwdGlvbihDCiAgICAgbV9kZXN0aW5hdGlvbkZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG1f
c291cmNlRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lOwogCiAgICAgVUludDMyIHNpemUgPSBzaXpl
b2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Zvcm1h
dEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5X0Zvcm1hdEluZm8sIDAsIE5VTEwsICZz
aXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9wZXJ0eV9Gb3JtYXRJbmZvLCAw
LCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1ZGlv
Rm9ybWF0R2V0UHJvcGVydHkgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKICAgICBBdWRpb0NvbnZlcnRlclJlZiBjb252ZXJ0ZXI7Ci0gICAg
aWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZtX2Rl
c3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFM
OjpBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0
LCAmY29udmVydGVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
IkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZlcnRlck5ldyBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX2NvbnZl
cnRlciA9IGNvbnZlcnRlcjsKIAogICAgIGF1dG8gY2xlYW51cEluQ2FzZU9mRXJyb3IgPSBtYWtl
U2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRl
cik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKICAg
ICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0pOwogCiAgICAgc2l6ZV90IGNvb2tp
ZVNpemUgPSAwOwotICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IENNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkdldE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7CisgICAg
Y29uc3Qgdm9pZCAqY29va2llID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdp
Y0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNvb2tpZVNpemUpOwogICAgIGlmIChjb29raWVT
aXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0
eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llLCAo
VUludDMyKWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQ
QUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUpKSB7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25NYWdp
Y0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2YobV9zb3VyY2VGb3JtYXQp
OwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXpl
LCAmbV9zb3VyY2VGb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1
dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAt
MTU5LDcgKzE1OCw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVk
aW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgfQogCiAgICAgc2l6
ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1
ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJl
bnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkg
eworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1f
Y29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24s
ICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVk
aW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQi
LCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNjcsMTQgKzE2Niwx
NCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVy
Rm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIGlmIChtX2Rlc3RpbmF0aW9uRm9ybWF0
Lm1Gb3JtYXRJRCA9PSBrQXVkaW9Gb3JtYXRNUEVHNEFBQykgewogICAgICAgICBib29sIHNob3Vs
ZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gdHJ1ZTsKICAgICAgICAgaWYgKG1fb3V0cHV0Qml0
UmF0ZSkgewotICAgICAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigqbV9v
dXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKKyAgICAgICAgICAgIGF1
dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtB
dWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigqbV9vdXRwdXRCaXRSYXRlKSwgJm1f
b3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5n
IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgICAgICBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSA9ICEhZXJyb3I7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlKSB7CiAgICAg
ICAgICAgICBhdXRvIG91dHB1dEJpdFJhdGUgPSBkZWZhdWx0T3V0cHV0Qml0UmF0ZShtX2Rlc3Rp
bmF0aW9uRm9ybWF0KTsKICAgICAgICAgICAgIHNpemUgPSBzaXplb2Yob3V0cHV0Qml0UmF0ZSk7
Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemUsICZvdXRwdXRC
aXRSYXRlKSkKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRl
clNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBz
aXplLCAmb3V0cHV0Qml0UmF0ZSkpCiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBkZWZhdWx0
IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0xODMsNyArMTgyLDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9u
KEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9uIGZvcm1hdCBpcyBWQlIsIHdlIG5lZWQg
dG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0aGUgY29udmVydGVyLgogICAgICAgICBz
aXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CiAKLSAgICAgICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252
ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4T3V0cHV0
UGFja2V0U2l6ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5TWF4aW11
bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNrZXRTaXplKSkgewogICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQ
YWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICB9CkBAIC0yMTEsNiArMjEwLDggQEAgc2l6ZV90IEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Y29tcHV0ZUJ1ZmZlclNpemVGb3JBdWRpb0Zvcm1hdChBdWRpb1N0cmVh
bUIKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0dGFjaFByaW1pbmdUcmlt
c0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKKyAgICB1c2luZyBuYW1lc3Bh
Y2UgUEFMOworCiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1fcmVtYWluaW5nUHJpbWVEdXJh
dGlvbikpIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8gcHJpbWVJbmZvIHsgMCwg
MCB9OwogICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmltZUluZm8pOwpAQCAtMjM2LDI1
ICsyMzcsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkKIHsKICAgICBVSW50MzIgZGVsYXlTaXpl
ID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJfdCBvcmlnaW5hbERlbGF5TW9kZSA9IDA7
Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVy
dGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxE
ZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0
UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsICZkZWxh
eVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9D
b2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICBy
ZXR1cm4gbmlsOwogICAgIH0KIAogICAgIHVpbnQzMl90IG9wdGltYWxEZWxheU1vZGUgPSBrQXVk
aW9Db2RlY0RlbGF5TW9kZV9PcHRpbWFsOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252
ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9k
ZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9
IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQ
cm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIFVJbnQzMiBwcmlt
ZVNpemUgPSBzaXplb2YoQXVkaW9Db2RlY1ByaW1lSW5mbyk7CiAgICAgQXVkaW9Db2RlY1ByaW1l
SW5mbyBwcmltZUluZm8geyAwLCAwIH07Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZv
LCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpB
dWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5
UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5n
IGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Nv
bnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlN
b2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29k
ZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CkBAIC0yNjcsMTggKzI2
OCwxOCBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNh
bXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIGlmICghbV9kZXN0aW5hdGlvbkZv
cm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIFVJbnQzMiBjb29raWVTaXplID0gMDsKIAotICAg
ICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252ZXJ0
ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBO
VUxMKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0
eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUs
ICZjb29raWVTaXplLCBOVUxMKTsKICAgICAgICAgaWYgKChlcnJvciA9PSBub0VycikgJiYgISFj
b29raWVTaXplKSB7CiAgICAgICAgICAgICBjb29raWUucmVzaXplKGNvb2tpZVNpemUpOwogCi0g
ICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9j
b252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVT
aXplLCBjb29raWUuZGF0YSgpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6
OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNv
bXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUuZGF0YSgpKSkgewogICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nv
b2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm4gbmls
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uOwotICAgICAgICBpZiAoYXV0byBlcnJv
ciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAm
bV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29va2llU2l6ZSwgY29va2llLmRhdGEoKSwg
TlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pKSB7CisgICAgICAgIGlmIChhdXRv
IGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEwsIGNvb2tpZVNpemUsIGNvb2tp
ZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSkgewogICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgfQpAQCAtMjkwLDI2ICsy
OTEsMjYgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpz
YW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBzaXplX3QgZGF0YVNpemUgPSBm
aWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplOwogCiAgICAgQ01CbG9ja0J1
ZmZlclJlZiBibG9ja0J1ZmZlcjsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJD
cmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZGF0YVNpemUs
IGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXplLCBrQ01CbG9ja0J1ZmZlckFz
c3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9
IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgMCwgZGF0YVNp
emUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KICAgICBhdXRvIGJ1ZmZl
ciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2Nr
QnVmZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkg
eworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRl
cyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2Nr
QnVmZmVyUmVwbGFjZURhdGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7
Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVz
Y3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgdHJ1ZSwgTlVMTCwg
TlVMTCwgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCBudW1QYWNrZXRzLCBt
X2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1fZGVzdGluYXRpb25QYWNrZXRE
ZXNjcmlwdGlvbnMuZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFM
OjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIHRydWUsIE5VTEwsIE5VTEwsIG1fZGVzdGluYXRp
b25Gb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgbnVtUGFja2V0cywgbV9jdXJyZW50TmF0aXZlUHJl
c2VudGF0aW9uVGltZVN0YW1wLCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zLmRhdGEo
KSwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVkaW9T
YW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIGlmIChbbV9nZHJDb3Vu
dE51bSBpbnRWYWx1ZV0pCi0gICAgICAgIENNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIsIGtD
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29kZXJSZWZyZXNoLCAoX19icmlk
Z2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCksIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3Vs
ZFByb3BhZ2F0ZSk7CisgICAgICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlciwg
UEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1YWxEZWNvZGVyUmVmcmVzaCwg
KF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgpLCBrQ01BdHRhY2htZW50TW9k
ZV9TaG91bGRQcm9wYWdhdGUpOwogCiAgICAgcmV0dXJuIHNhbXBsZUJ1ZmZlcjsKIH0KQEAgLTM0
MSwyNCArMzQyLDI0IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJv
dmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKICAgICAgICAgICAgICAgICAg
ICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUu
Z2V0KCkpKQorICAgICAgICAgICAgICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1f
aW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0g
ICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZl
clJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9p
bnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2Nr
QnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7
CisgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1
ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJl
dGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgICAgICAgICAgICAgIG1fc2Ft
cGxlQmxvY2tCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1wbGVC
dWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmICghbV9zYW1wbGVCbG9ja0J1ZmZlcikg
ewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIgZmFp
bGVkIik7CiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsK
ICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9
IDA7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXRE
YXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAgIG1f
c2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aCht
X3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRPZmZz
ZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
aWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBzaXplX3QgbnVtQnl0
ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9zYW1w
bGVCbG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyKSk7
Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURhdGFC
eXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJs
b2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAobV9zb3VyY2VCdWZmZXIu
ZGF0YSgpICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1w
bGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwg
bnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNlQnVmZmVyLmRhdGEoKSArIGN1
cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENN
QmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICAgICAgfQpAQCAtMzkzLDI4
ICszOTQsMjggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRl
U291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAgICAgICAgICAgICAgIG1fc2Ft
cGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYg
KENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCisgICAgICAg
ICAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0
KCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBhdXRvIHNhbXBsZUJ1
ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1
ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwot
ICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0Q0YoKENNQmxvY2tCdWZmZXJS
ZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZl
cihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVmZmVy
ID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01C
dWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsK
KyAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBhZG9wdENGKChDTUJsb2NrQnVmZmVy
UmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKICAgICAgICAgICAgIGlmICghbV9zYW1w
bGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
U3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxlQnVmZmVyR2V0RGF0
YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6
ZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
ciA9IDA7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3Ro
KG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKKyAgICAgICAgICAgIG1fc2FtcGxlQmxv
Y2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJs
b2NrQnVmZmVyLmdldCgpKSAvIDI7CiAgICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNhbXBs
ZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX3NhbXBsZUJsb2Nr
QnVmZmVyKSB7CiAgICAgICAgICAgICBzaXplX3QgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1
ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgLSBt
X2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyKSk7Ci0gICAgICAgICAgICBpZiAoYXV0
byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIu
Z2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5
RnJvbVNhbXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZm
ZXIpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJD
b3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldElu
U2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChmaXJzdENo
YW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgewogICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZpcnN0IGNoYW5uZWwgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRl
cyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2Nr
QnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBs
ZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURhdGFC
eXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJs
b2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5dGVzVG9Db3B5RnJvbVNh
bXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkp
IHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyBzZWNvbmQg
Y2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
ZXJyb3I7CiAgICAgICAgICAgICB9CkBAIC00MzgsNiArNDM5LDggQEAgT1NTdGF0dXMgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMo
VUludDMyKgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBs
ZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbG93V2F0ZXJUaW1lKQogeworICAgIHVz
aW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFSRV9JTkxJTkUKKwogICAgIGlm
ICghbV9jb252ZXJ0ZXIpIHsKICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5w
dXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01MDEsNyArNTA0
LDcgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZm
ZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGwKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQog
ewotICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX2lucHV0QnVmZmVyUXVl
dWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUVu
cXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwogICAgIFJFTEVBU0VfTE9H
X0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAogICAgIHBy
b2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUobV9sb3dXYXRlclRpbWUpOwpAQCAt
NTIwLDEyICs1MjMsMTIgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVyUmVm
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsK
LSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZl
clF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVybiAo
Q01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZUdl
dEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENNU2Ft
cGxlQnVmZmVyUmVmPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1w
bGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29u
c3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZm
ZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVm
KShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1f
b3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmNWY4NTU4NzFmYzcwODU2NmY3
ZWY4YjlhMTYxZTI3YjhlNWQ4OWVkLi5iNzU1OGQyODBjMmVmNzk2MDY4Y2FjMGNjOTZiNTAzM2Rj
MzcwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EuaApAQCAtMTI3LDggKzEyNyw4IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPENN
Rm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbjsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBtX3ZpZGVvQ29tcHJlc3Nv
cjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBtX3ZpZGVvQXNzZXRXcml0ZXJJ
bnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lIHsga0NNVGltZUlu
dmFsaWQgfTsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgeyBrQ01UaW1lSW52
YWxpZCB9OworICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWU7CisgICAgQ01U
aW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lOwogICAgIGJvb2wgbV9oYXNFbmNvZGVkVmlkZW9T
YW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0cjxXZWJBVkFzc2V0V3JpdGVyRGVsZWdh
dGU+IG1fd3JpdGVyRGVsZWdhdGU7CkBAIC0xMzksOSArMTM5LDkgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fc2hvdWxkU3RvcEFmdGVyRmx1c2hpbmdTYW1wbGVzIHsgZmFsc2UgfTsKICAgICBib29s
IG1fZmlyc3RWaWRlb0ZyYW1lIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPENHQWZmaW5l
VHJhbnNmb3JtPiBtX3ZpZGVvVHJhbnNmb3JtOwotICAgIENNVGltZSBtX3Jlc3VtZWRWaWRlb1Rp
bWUgeyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uIHsg
a0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lIHsga0NN
VGltZVplcm8gfTsKKyAgICBDTVRpbWUgbV9yZXN1bWVkVmlkZW9UaW1lOworICAgIENNVGltZSBt
X2N1cnJlbnRWaWRlb0R1cmF0aW9uOworICAgIENNVGltZSBtX2N1cnJlbnRBdWRpb1NhbXBsZVRp
bWU7CiAgICAgZG91YmxlIG1fdGltZUNvZGUgeyAwIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggNjNiZDY1OThk
MDJhNWM3MDA2ZGE5MjlmYzk0ZjFmNWY2NmE3MTZkYS4uNmFkMjBiZThjYjU3OTIzYTBlNzg0MmUz
NzAxZDMzYTZhYTAzYWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtOTMsOCArOTMsNiBAQCBAZW5kCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmVmUHRyPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGJvb2wg
aGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9u
cyYgb3B0aW9ucykKIHsKICAgICBhdXRvIHdyaXRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIGhhc1ZpZGVvKSk7CkBAIC0xMjIsNiArMTIwLDEx
IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXByZXNzZWRBdWRpb091dHB1
dEJ1ZmZlckNhbGxiYWNrKHZvaWQgKm1lZGlhCiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbykK
ICAgICA6IG1faGFzQXVkaW8oaGFzQXVkaW8pCiAgICAgLCBtX2hhc1ZpZGVvKGhhc1ZpZGVvKQor
ICAgICwgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lKFBBTDo6a0NNVGltZUludmFsaWQpCisg
ICAgLCBtX2xhc3RWaWRlb0RlY29kaW5nVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKQorICAgICwg
bV9yZXN1bWVkVmlkZW9UaW1lKFBBTDo6a0NNVGltZVplcm8pCisgICAgLCBtX2N1cnJlbnRWaWRl
b0R1cmF0aW9uKFBBTDo6a0NNVGltZVplcm8pCisgICAgLCBtX2N1cnJlbnRBdWRpb1NhbXBsZVRp
bWUoUEFMOjprQ01UaW1lWmVybykKIHsKIH0KIApAQCAtMTc5LDcgKzE4Miw3IEBAIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkVmlkZW9TYW1wbGVC
dWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNWaWRlbyk7CiAgICAgaWYgKCFtX3ZpZGVvRm9y
bWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01T
YW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVvQ29tcHJlc3Nvci0+Z2V0T3V0
cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV92aWRlb0NvbXByZXNzb3It
PmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKIAogICAgICAgICBpZiAobV9oYXNBdWRpbyAmJiAh
bV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTk2LDcg
KzE5OSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21w
cmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNBdWRpbyk7CiAg
ICAgaWYgKCFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV9hdWRpb0Zvcm1h
dERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX2F1ZGlv
Q29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX2F1ZGlvRm9y
bWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24o
bV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKICAgICAgICAgaWYg
KG1faGFzVmlkZW8gJiYgIW1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbikKICAgICAgICAgICAgIHJl
dHVybjsKIApAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OnN0YXJ0QXNzZXRXcml0ZXIoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgW21f
d3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTprQ01UaW1lWmVyb107CisgICAg
W21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTpQQUw6OmtDTVRpbWVaZXJv
XTsKIAogICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7CiAKQEAgLTMwMCw4ICsz
MDMsOCBAQCBib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRDb21wcmVzc2Vk
VmlkZW9TYW1wbGVCdWZmZXJJZlBvc3NpYmxlKCkKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJl
ZiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dCBpc1JlYWR5
Rm9yTW9yZU1lZGlhRGF0YV0pOwotICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSA9IENN
U2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7Ci0gICAgbV9sYXN0
VmlkZW9EZWNvZGluZ1RpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChidWZm
ZXIpOworICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBtX2xhc3RWaWRlb0RlY29k
aW5nVGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoYnVmZmVyKTsK
ICAgICBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgPSB0cnVlOwogCiAgICAgW21fdmlkZW9Bc3Nl
dFdyaXRlcklucHV0LmdldCgpIGFwcGVuZFNhbXBsZUJ1ZmZlcjpidWZmZXJdOwpAQCAtMzE0LDE3
ICszMTcsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJl
c3NlZFNhbXBsZUJ1ZmZlcnMoKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kRW5kc1ByZXZp
b3VzU2FtcGxlRHVyYXRpb25NYXJrZXIoQVZBc3NldFdyaXRlcklucHV0ICphc3NldFdyaXRlcklu
cHV0LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUgZGVjb2RpbmdUaW1lU3Rh
bXApCiB7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IGtDTVRpbWVJbnZh
bGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0YW1wfTsKKyAgICBDTVNh
bXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgcHJlc2Vu
dGF0aW9uVGltZVN0YW1wLCBkZWNvZGluZ1RpbWVTdGFtcH07CiAKICAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBidWZmZXIgPSBOVUxMOwotICAgIGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVlLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAx
LCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgdHJ1ZSwgTlVM
TCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5VTEwsICZidWZmZXIpOwogICAg
IGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZEVuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9u
TWFya2VyIGZhaWxlZCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRihidWZm
ZXIpOwogCi0gICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlci5nZXQoKSwga0NNU2FtcGxl
QnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbiwga0NGQm9vbGVh
blRydWUsIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CisgICAgUEFMOjpDTVNl
dEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0dGFj
aG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtDRkJvb2xlYW5UcnVlLCBrQ01B
dHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogICAgIGlmICghW2Fzc2V0V3JpdGVySW5w
dXQgYXBwZW5kU2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZlci5nZXQoKV0pCiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgYXBw
ZW5kU2FtcGxlQnVmZmVyIHRvIHdyaXRlciBpbnB1dCBmYWlsZWQiKTsKIH0KQEAgLTM4MiwxOCAr
Mzg1LDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZsdXNoQ29tcHJlc3Nl
ZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYmCiBzdGF0aWMgaW5saW5lIFJldGFpblB0
cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1w
KENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsQnVmZmVyLCBDTVRpbWUgc3RhcnRUaW1lKQogewog
ICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAmY291bnQpOworICAgIFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIsIDAs
IG5pbCwgJmNvdW50KTsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWVJbmZv
KGNvdW50KTsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmln
aW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50KTsKKyAgICBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCBjb3Vu
dCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOwogCiAgICAgZm9yIChhdXRvIGkgPSAwOyBpIDwg
Y291bnQ7IGkrKykgewotICAgICAgICB0aW1lSW5mb1tpXS5kZWNvZGVUaW1lU3RhbXAgPSBrQ01U
aW1lSW52YWxpZDsKKyAgICAgICAgdGltZUluZm9baV0uZGVjb2RlVGltZVN0YW1wID0gUEFMOjpr
Q01UaW1lSW52YWxpZDsKICAgICAgICAgdGltZUluZm9baV0ucHJlc2VudGF0aW9uVGltZVN0YW1w
ID0gc3RhcnRUaW1lOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld0J1ZmZlciA9
IG51bGxwdHI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlX
aXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwg
dGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAgLTQw
NCw3ICs0MDcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRl
b1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAgIGlmICghbV9maXJzdFZp
ZGVvRnJhbWUpIHsKICAgICAgICAgbV9maXJzdFZpZGVvRnJhbWUgPSB0cnVlOwotICAgICAgICBt
X3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9j
aygpKTsKKyAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpDTUNsb2NrR2V0VGltZShQ
QUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogICAgICAgICBpZiAoc2FtcGxlLnZpZGVv
Um90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB8fCBzYW1wbGUu
dmlkZW9NaXJyb3JlZCgpKSB7CiAgICAgICAgICAgICBtX3ZpZGVvVHJhbnNmb3JtID0gQ0dBZmZp
bmVUcmFuc2Zvcm1NYWtlUm90YXRpb24oc3RhdGljX2Nhc3Q8aW50PihzYW1wbGUudmlkZW9Sb3Rh
dGlvbigpKSAqIE1fUEkgLyAxODApOwogICAgICAgICAgICAgaWYgKHNhbXBsZS52aWRlb01pcnJv
cmVkKCkpCkBAIC00MTIsOCArNDE1LDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAg
fQogICAgIH0KIAotICAgIGF1dG8gc2FtcGxlVGltZSA9IENNVGltZVN1YnRyYWN0KENNQ2xvY2tH
ZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOwot
ICAgIHNhbXBsZVRpbWUgPSBDTVRpbWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9EdXJh
dGlvbik7CisgICAgYXV0byBzYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVTdWJ0cmFjdChQQUw6OkNN
Q2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZp
ZGVvVGltZSk7CisgICAgc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUsIG1f
Y3VycmVudFZpZGVvRHVyYXRpb24pOwogICAgIGlmIChhdXRvIGJ1ZmZlcldpdGhDdXJyZW50VGlt
ZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcChzYW1wbGUucGxhdGZvcm1T
YW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHNhbXBsZVRpbWUpKQogICAgICAgICBtX3Zp
ZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldpdGhDdXJyZW50VGltZS5nZXQo
KSk7CiB9CkBAIC00MjIsNyArNDI1LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEKIHsKICAg
ICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRhLCBk
ZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1wbGVDb3VudCkpCiAgICAg
ICAgIG1fYXVkaW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgp
KTsKLSAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBDTVRpbWVBZGQobV9jdXJyZW50QXVk
aW9TYW1wbGVUaW1lLCB0b0NNVGltZShNZWRpYVRpbWUoc2FtcGxlQ291bnQsIGRlc2NyaXB0aW9u
LnNhbXBsZVJhdGUoKSkpKTsKKyAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBQQUw6OkNN
VGltZUFkZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIFBBTDo6dG9DTVRpbWUoTWVkaWFUaW1l
KHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7CiB9CiAKIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZpbmlzaGVkRmx1c2hpbmdTYW1wbGVzKCkKQEAgLTUy
MywxMCArNTI2LDEwIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXBsZXRl
RmV0Y2hEYXRhKCkKIHsKICAgICBhdXRvIGN1cnJlbnRUaW1lQ29kZSA9IG1fdGltZUNvZGU7CiAg
ICAgaWYgKG1faGFzQXVkaW8pCi0gICAgICAgIG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRz
KG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CisgICAgICAgIG1fdGltZUNvZGUgPSBQQUw6OkNN
VGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKTsKICAgICBlbHNlIHsKLSAg
ICAgICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3QoQ01DbG9ja0dldFRpbWUoQ01D
bG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7Ci0gICAgICAgIG1f
dGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJl
bnRWaWRlb0R1cmF0aW9uKSk7CisgICAgICAgIGF1dG8gc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1l
U3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2Nr
KCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgICAgICBtX3RpbWVDb2RlID0gUEFMOjpDTVRp
bWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVvRHVy
YXRpb24pKTsKICAgICB9CiAgICAgbV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcih0YWtlRGF0
YSgpLCBjdXJyZW50VGltZUNvZGUpOwogfQpAQCAtNTUwLDEzICs1NTMsMTMgQEAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnRha2VEYXRhKCkKIAogdm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cGF1c2UoKQogewotICAgIGF1dG8gcmVjb3Jk
aW5nRHVyYXRpb24gPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9z
dFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICBtX2N1cnJlbnRWaWRlb0R1
cmF0aW9uID0gQ01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1cmF0
aW9uKTsKKyAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gUEFMOjpDTVRpbWVTdWJ0cmFjdChQ
QUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVz
dW1lZFZpZGVvVGltZSk7CisgICAgbV9jdXJyZW50VmlkZW9EdXJhdGlvbiA9IFBBTDo6Q01UaW1l
QWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKIH0KIAogdm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cmVzdW1lKCkKIHsKLSAgICBtX3Jlc3VtZWRW
aWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKKyAg
ICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dl
dEhvc3RUaW1lQ2xvY2soKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6Om1pbWVUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNzZkNTZkN2I4ZDEzYzcyZWEzOWZjMzQ5OWQxNzk4
OTk3MTdmMGU3OC4uZDA3NjBmMDdlMzcwODEyN2Y5ZGUyZWZhZjkyZjBlMDc3MmZkMzhlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAgLTM0
LDEyICszNCwxMSBAQAogI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZUQ29tcHJlc3Npb25TZXNzaW9u
Lmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAorI2ltcG9ydCA8cGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBzdGQ6OnVu
aXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmNyZWF0ZShTdHJpbmcgbWltZVR5cGUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2Fs
bGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIGF1dG8gcHJvZmls
ZSA9IFByb2ZpbGU6OkJhc2VsaW5lOwpAQCAtNjksNyArNjgsNyBAQCBWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcihDTVZpZGVvQ29kZWNUeXBl
IG91dHB1dAogVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yKCkKIHsKICAgICBpZiAobV92dFNlc3Npb24pIHsKLSAgICAgICAgVlRDb21wcmVz
c2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgpKTsKKyAgICAgICAgUEFMOjpW
VENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24uZ2V0KCkpOwogICAgICAg
ICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNzcsMTIgKzc2LDEyIEBAIFZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcigp
CiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1
ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAg
ICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVycm9y
ID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1
ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJR
dWV1ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JV
bnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciB1bmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBxdWV1ZSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gb3V0cHV0QnVmZmVy
UXVldWU7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2Vy
X1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVMTCk7CisgICAgUEFMOjpDTUJ1
ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJh
Y2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVz
UmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAgbV9pc0VuY29kaW5nID0gdHJ1
ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk2LDEwICs5NSwxMCBAQCB2b2lkIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6c2V0Qml0c1BlclNlY29uZCh1bnNpZ25lZCBiaXRSYXRlKQogdm9p
ZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCgpCiB7CiAgICAgbV9zZXJpYWxE
aXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAgICAgICAgYXV0byBlcnJvciA9
IFZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92dFNlc3Npb24uZ2V0KCksIGtD
TVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lvblNl
c3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprQ01UaW1lSW52YWxp
ZCk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRlRnJh
bWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgICAgIGVycm9yID0gQ01CdWZmZXJR
dWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgIGVy
cm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVl
LmdldCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFt
LCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRh
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAgICAgIG1faXNFbmNvZGluZyA9IGZhbHNl
OwpAQCAtMTE0LDcgKzExMyw3IEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2sodm9pZCAqcmVmQ29uLCB2b2lkKiwKIAogICAgIFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciAqY29tcHJlc3NvciA9IHN0YXRpY19jYXN0PFZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcio+KHJlZkNvbik7CiAKLSAgICBhdXRvIGVycm9yID0gQ01CdWZm
ZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVm
ZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShjb21wcmVz
c29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwogICAgIFJFTEVBU0VfTE9H
X0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApAQCAt
MTMwLDUzICsxMjksNTMgQEAgQ0ZTdHJpbmdSZWYgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojp2dFByb2ZpbGVMZXZlbCgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3Byb2ZpbGUpIHsKICAg
ICBjYXNlIFByb2ZpbGU6OkJhc2VsaW5lOgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVs
X0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9maWxl
TGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CiAgICAgY2FzZSBQcm9maWxlOjpIaWdoOgot
ICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWw7CisgICAg
ICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVsOwogICAg
IGNhc2UgUHJvZmlsZTo6TWFpbjoKLSAgICAgICAgcmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9IMjY0
X01haW5fQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2
NF9NYWluX0F1dG9MZXZlbDsKICAgICB9CiB9CiAKIGJvb2wgVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbikKIHsKLSAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25z
ID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlv
bik7CisgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IFBBTDo6Q01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbik7CiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gbmlsOwog
I2Vsc2UKLSAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9IEB7KF9fYnJp
ZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2Fy
ZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyOkBZRVN9OworICAgIE5TRGljdGlvbmFyeSAqZW5jb2Rl
clNwZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcgKilQQUw6OmtWVFZpZGVvRW5j
b2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlcjpA
WUVTfTsKICNlbmRpZgogCiAgICAgVlRDb21wcmVzc2lvblNlc3Npb25SZWYgdnRTZXNzaW9uOwot
ICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCwgbV9vdXRwdXRDb2Rl
Y1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2RlclNwZWNpZmljYXRpb25zLCBO
VUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRoaXMsICZ2dFNlc3Npb24pOwor
ICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0LCBtX291dHB1
dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZillbmNvZGVyU3BlY2lmaWNhdGlv
bnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFjaywgdGhpcywgJnZ0U2Vzc2lv
bik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3Jl
YXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gTk87CiAgICAgfQog
ICAgIG1fdnRTZXNzaW9uID0gYWRvcHRDRih2dFNlc3Npb24pOwogCi0gICAgZXJyb3IgPSBWVFNl
c3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0
UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVy
cm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25T
ZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHko
bV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJ
bnRlcnZhbER1cmF0aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbik7CisgICAgZXJy
b3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFM
OjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwg
bV9tYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24pOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Np
b25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2
YWxEdXJhdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBlcnJvciA9IHNldENvbXBy
ZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblBy
b3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKKyAgICBl
cnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQ
QUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUsIG1fZXhwZWN0
ZWRGcmFtZVJhdGUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVh
bSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogCi0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5n
ZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIHZ0UHJvZmlsZUxl
dmVsKCkpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0
KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIHZ0UHJvZmls
ZUxldmVsKCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9w
ZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAl
ZCBmb3IgcHJvZmlsZSAlZCIsIGVycm9yLCBtX3Byb2ZpbGUpOwogICAgICAgICBpZiAobV9wcm9m
aWxlICE9IFByb2ZpbGU6OkJhc2VsaW5lKSB7Ci0gICAgICAgICAgICBlcnJvciA9IFZUU2Vzc2lv
blNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X1Byb2ZpbGVMZXZlbCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKTsK
KyAgICAgICAgICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0
KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIFBBTDo6a1ZU
UHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKTsKICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1By
b2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgZGVmYXVsdCBwcm9maWxlIiwgZXJyb3IpOwog
ICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fb3V0cHV0Qml0UmF0ZSkgewotICAgICAgICBl
cnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCAqbV9vdXRwdXRCaXRSYXRl
KTsKKyAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vz
c2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRl
LCAqbV9vdXRwdXRCaXRSYXRlKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3Is
IE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNldFBy
b3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgfQogCi0gICAgZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lv
blByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7CisgICAgZXJyb3IgPSBQ
QUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKG1fdnRTZXNzaW9u
LmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9F
bmNvZGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAgICByZXR1cm4gWUVTOwpA
QCAtMTg1LDE0ICsxODQsMTQgQEAgYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6Omlu
aXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW8KIHZvaWQgVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVy
UmVmIGJ1ZmZlcikKIHsKICAgICBpZiAoIW1fdnRTZXNzaW9uKSB7Ci0gICAgICAgIGlmICghaW5p
dENvbXByZXNzaW9uU2Vzc2lvbihDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1
ZmZlcikpKQorICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Npb24oUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKGJ1ZmZlcik7Ci0gICAgYXV0byBwcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVNhbXBs
ZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIpOwotICAgIGF1dG8gZHVyYXRp
b24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7Ci0gICAgYXV0byBlcnJvciA9
IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGltYWdl
QnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBOVUxM
KTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVm
ZmVyKGJ1ZmZlcik7CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1lU3RhbXAgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7CisgICAgYXV0byBkdXJh
dGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZmZXIpOworICAgIGF1dG8g
ZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNlc3Npb24u
Z2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBOVUxM
LCB0aGlzLCBOVUxMKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJl
YW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25FbmNv
ZGVGcmFtZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApAQCAtMjA4LDEyICsyMDcsMTIg
QEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVyUmVmIFZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gKENN
U2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZCht
X291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJS
ZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRC
dWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKQogewot
ICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4o
Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkp
KSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZv
aWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwCmluZGV4IGMzZmU4MjFiOWM1MjBj
OTIyNGU1ZGU4ODhlNTE4YzMxOTZmMzFjYjUuLmEwMjQwODRjMjRlNmQzNjM5NjA4YTY0NjUyZWNj
NWQ2ZDllZmFjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNp
bmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2VuZGlmCiAKKyNpbmNs
dWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDxwYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTIzLDkgKzEyNCw5
IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6
c3RhcnQoKQogICAgIGlmICghbV9yZW1vdGVJT1VuaXQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChhdXRvIGVycm9yID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9yZW1vdGVJT1VuaXQpKSB7
CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fcmVtb3Rl
SU9Vbml0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQgQXVkaW9PdXRwdXRVbml0U3Rh
cnQgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwotICAgICAgICBBdWRpb0NvbXBvbmVudElu
c3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21wb25l
bnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAgICAgICBtX3JlbW90ZUlPVW5p
dCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMzksMTEgKzE0MCwxMSBA
QCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0
b3AoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1N0YXJ0ZWQpIHsKLSAgICAgICAg
QXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9P
dXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CiAgICAgICAgIG1faXNTdGFydGVkID0gZmFs
c2U7CiAgICAgfQogCi0gICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJ
T1VuaXQpOworICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJ
T1VuaXQpOwogICAgIG1fcmVtb3RlSU9Vbml0ID0gbnVsbHB0cjsKIH0KIApAQCAtMTYzLDE0ICsx
NjQsMTQgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgaW9Vbml0RGVzY3JpcHRpb24uY29t
cG9uZW50U3ViVHlwZSA9IGtBdWRpb1VuaXRTdWJUeXBlX0RlZmF1bHRPdXRwdXQ7CiAjZW5kaWYK
IAotICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVkaW9Db21wb25lbnRGaW5kTmV4
dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29t
cG9uZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNj
cmlwdGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAgICBpZiAoIWlvQ29tcG9uZW50
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIGZpbmQg
cmVtb3RlIElPIHVuaXQgY29tcG9uZW50Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBhdXRvIGVycm9yID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJl
bW90ZUlPVW5pdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5j
ZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIG9wZW4gdnBpbyB1bml0
LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xNzgsNyArMTc5LDcg
QEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0Ojpj
cmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IFVJbnQzMiBwYXJhbSA9IDE7Ci0gICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1v
dGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNj
b3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICBlcnJvciA9IFBBTDo6
QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVy
dHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICZwYXJhbSwgc2l6ZW9mKHBh
cmFtKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRp
b1VuaXQgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgb3V0cHV0LCBlcnJvciA9ICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm47CkBAIC0xODcsNyArMTg4LDcgQEAgdm9pZCBMb2NhbEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5l
ZWRlZCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1fZGV2aWNlSUQpIHsKLSAgICAg
ICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1
dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAm
bV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAgICAgZXJyb3IgPSBQQUw6OkF1
ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5
X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZtX2RldmljZUlELCBz
aXplb2YobV9kZXZpY2VJRCkpOwogICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCB1bml0IGRldmljZSBJRCAl
ZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludCltX2RldmljZUlELCAoaW50KWVycm9yLCAoY2hhciop
JmVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5NiwxNCArMTk3LDE0IEBAIHZvaWQg
TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQoKQogI2VuZGlmCiAKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGNh
bGxiYWNrID0geyBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpyZW5kZXJpbmdDYWxsYmFjaywgdGhpcyB9OwotICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJv
cGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ss
IGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7
CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1
ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFs
LCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnJvcikgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQgdnBpbyB1bml0
IHNwZWFrZXIgcHJvYywgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURl
c2NyaXB0aW9uKCkpOwotICAgIGVycm9yICA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KHJlbW90ZUlP
VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lu
cHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgJnNpemUpOwor
ICAgIGVycm9yICA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVk
aW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZv
dXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCAmc2l6ZSk7CiAgICAgaWYgKGVy
cm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIGdl
dCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1
cm47CkBAIC0yMTEsMTMgKzIxMiwxMyBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKIAogICAgIG91
dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkubVNhbXBsZVJhdGUgPSBBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCk7CiAKLSAgICBlcnJvciA9IEF1ZGlv
VW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFt
RGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9u
KCkpKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQs
IDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBzaXplb2Yob3V0cHV0
RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSkpOwogICAgIGlmIChlcnJvcikgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQgaW5wdXQgc3Ry
ZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGVycm9yID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1vdGVJT1VuaXQpOworICAgIGVy
cm9yID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlPVW5pdCk7CiAgICAgaWYgKGVy
cm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgQXVkaW9Vbml0SW5p
dGlhbGl6ZSgpIGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDRiNzg4YWU1YWE4N2I3MjllNWJkY2Y5
Y2Y3MTM4MTJjNjc3MGEzMjUuLjQ4NWU0Y2U0YzZkOGMzMjQ1Yjc3OWQ2MWE2NzZjYmJiOTdiYWQ5
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTUxLDcgKzUxLDYgQEAKICNp
bXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIEBpbnRlcmZhY2UgV2ViQ29yZUFWVmlkZW9D
YXB0dXJlU291cmNlT2JzZXJ2ZXIgOiBOU09iamVjdDxBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXRT
YW1wbGVCdWZmZXJEZWxlZ2F0ZT4gewogICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKiBtX2NhbGxi
YWNrOwpAQCAtMzUxLDEwICszNTAsMTAgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0
U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUoKQogICAgICAgICAgICAgaWYgKGZyYW1lUmF0ZVJhbmdl
KSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50RnJhbWVSYXRlID0gY2xhbXBUbyhtX2N1cnJl
bnRGcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lUmF0ZSwgZnJhbWVSYXRlUmFuZ2Uu
bWF4RnJhbWVSYXRlKTsKIAotICAgICAgICAgICAgICAgIGF1dG8gZnJhbWVEdXJhdGlvbiA9IENN
VGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKLSAgICAgICAgICAgICAgICBpZiAoQ01U
aW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0aW9u
KSA8IDApCisgICAgICAgICAgICAgICAgYXV0byBmcmFtZUR1cmF0aW9uID0gUEFMOjpDTVRpbWVN
YWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7CisgICAgICAgICAgICAgICAgaWYgKFBBTDo6Q01U
aW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0aW9u
KSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVSYW5n
ZS5taW5GcmFtZUR1cmF0aW9uOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKENNVGltZUNvbXBh
cmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlvbikgPiAwKQor
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9u
LCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uKSA+IDApCiAgICAgICAgICAgICAgICAg
ICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uOwogCiAg
ICAgICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUiwg
InNldHRpbmcgZnJhbWUgcmF0ZSB0byAiLCBtX2N1cnJlbnRGcmFtZVJhdGUsICIsIGR1cmF0aW9u
ICIsIFBBTDo6dG9NZWRpYVRpbWUoZnJhbWVEdXJhdGlvbikpOwpAQCAtNDE4LDcgKzQxNyw3IEBA
IGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCiAKICAgICBtX3Nlc3Np
b24gPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZDYXB0dXJlU2Vzc2lvbkluc3RhbmNlKCkgaW5pdF0p
OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQVZDYXB0dXJlU2Vzc2lvblNldEF1dGhv
cml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5kQXBwTGF5b3V0KG1fc2Vzc2lvbi5n
ZXQoKSk7CisgICAgUEFMOjpBVkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJh
SW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQobV9zZXNzaW9uLmdldCgpKTsKICNlbmRpZgog
ICAgIFttX3Nlc3Npb24gYWRkT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0
aDpAInJ1bm5pbmciIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0
Oih2b2lkICopbmlsXTsKIApAQCAtNDM0LDYgKzQzMyw4IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OnNldHVwU2Vzc2lvbigpCiAKIEFWRnJhbWVSYXRlUmFuZ2UqIEFWVmlkZW9DYXB0dXJl
U291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKGRvdWJsZSByYXRlKQogeworICAgIHVz
aW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFSRV9JTkxJTkUKKwogICAgIEFW
RnJhbWVSYXRlUmFuZ2UgKmJlc3RGcmFtZVJhdGVSYW5nZSA9IG5pbDsKICAgICBmb3IgKEFWRnJh
bWVSYXRlUmFuZ2UgKmZyYW1lUmF0ZVJhbmdlIGluIFtbZGV2aWNlKCkgYWN0aXZlRm9ybWF0XSB2
aWRlb1N1cHBvcnRlZEZyYW1lUmF0ZVJhbmdlc10pIHsKICAgICAgICAgaWYgKGZyYW1lUmF0ZVJh
bmdlSW5jbHVkZXNSYXRlKHsgW2ZyYW1lUmF0ZVJhbmdlIG1pbkZyYW1lUmF0ZV0sIFtmcmFtZVJh
dGVSYW5nZSBtYXhGcmFtZVJhdGVdIH0sIHJhdGUpKSB7CkBAIC01OTgsNyArNTk5LDcgQEAgdm9p
ZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJhdGVQcmVzZXRzKCkKICAgICBWZWN0b3I8UmVm
PFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKICAgICBmb3IgKEFWQ2FwdHVyZURldmljZUZvcm1hdCog
Zm9ybWF0IGluIFtkZXZpY2UoKSBmb3JtYXRzXSkgewogCi0gICAgICAgIENNVmlkZW9EaW1lbnNp
b25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZv
cm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CisgICAgICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVu
c2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0
LmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICAgICAgSW50U2l6ZSBzaXplID0geyBkaW1lbnNpb25z
LndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCB9OwogICAgICAgICBhdXRvIGluZGV4ID0gcHJlc2V0
cy5maW5kTWF0Y2hpbmcoWyZzaXplXShhdXRvJiBwcmVzZXQpIHsKICAgICAgICAgICAgIHJldHVy
biBzaXplID09IHByZXNldC0+c2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNw
cAppbmRleCA2ZTI2YzhmYTRlY2QzMGFjMWU1MmZlYzM4YWY1N2QwZTMzZDliYzI0Li5lMTU1NDYy
ZjUxODE1ODhiYTNiYzk0NTZjNmI2YWU5YWZlMjFiNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UuY3BwCkBAIC0xOSw3ICsxOSw3IEBACiAgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKICAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiAoSU5DTFVESU5HIE5FR0xJR0VQQUw6
Ok5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKIAogc3RhdGljIGJvb2wgZ2V0RGV2aWNlSW5mbyh1aW50MzJfdCBkZXZpY2VJRCwgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwgU3RyaW5n
JiBsYWJlbCkKIHsKQEAgLTIwNSw3ICsyMDQsNyBAQCBSZXRhaW5QdHI8Q01DbG9ja1JlZj4gQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNlQ2xvY2soKQogICAgICAgICByZXR1cm4gbV9kZXZp
Y2VDbG9jazsKIAogICAgIENNQ2xvY2tSZWYgY2xvY2s7Ci0gICAgYXV0byBlcnIgPSBDTUF1ZGlv
RGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGVyc2lzdGVudElkKCkuY3Jl
YXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmNsb2NrKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6Q01BdWRp
b0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBlcnNpc3RlbnRJZCgpLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZjbG9jayk7CiAgICAgaWYgKGVycikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpDTUF1ZGlv
RGV2aWNlQ2xvY2tDcmVhdGUoJXApIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSBmYWlsZWQgd2l0
aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRl
eCAwM2YzZTYyYTI2MzdjM2U5MDFiYWY2OTRkM2M1MjY1ZWZhNzRhZWIyLi5mNGIzNjU4OTRkMzdj
ZDk0ZmYyMWI3ZmI1NGZkYjI2NDFmMzZmZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2UuY3BwCkBAIC00OCw2ICs0OCw4IEBACiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4K
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgorCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtNTcsNyArNTksNiBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShNQUMpCiBDb3JlQXVkaW9DYXB0dXJlU291
cmNlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpCkBA
IC0yMDMsNyArMjA0LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRp
b1VuaXQoKQogICAgIG1fRFRTQ29udmVyc2lvblJhdGlvID0gMWUtOSAqIHN0YXRpY19jYXN0PGRv
dWJsZT4odGltZWJhc2VJbmZvLm51bWVyKSAvIHN0YXRpY19jYXN0PGRvdWJsZT4odGltZWJhc2VJ
bmZvLmRlbm9tKTsKIAogICAgIEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gaW9Vbml0RGVzY3Jp
cHRpb24gPSB7IGtBdWRpb1VuaXRUeXBlX091dHB1dCwga0F1ZGlvVW5pdFN1YlR5cGVfVm9pY2VQ
cm9jZXNzaW5nSU8sIGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGUsIDAsIDAgfTsKLSAgICBB
dWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0
ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKKyAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9
IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24p
OwogICAgIEFTU0VSVChpb0NvbXBvbmVudCk7CiAgICAgaWYgKCFpb0NvbXBvbmVudCkgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1
cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIGZpbmQgdnBpbyB1bml0IGNvbXBvbmVudCIsIHRoaXMp
OwpAQCAtMjEyLDcgKzIxMyw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVw
QXVkaW9Vbml0KCkKIAogI2lmICFMT0dfRElTQUJMRUQKICAgICBDRlN0cmluZ1JlZiBuYW1lID0g
bnVsbHB0cjsKLSAgICBBdWRpb0NvbXBvbmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7
CisgICAgUEFMOjpBdWRpb0NvbXBvbmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7CiAg
ICAgaWYgKG5hbWUpIHsKICAgICAgICAgbV9pb1VuaXROYW1lID0gbmFtZTsKICAgICAgICAgQ0ZS
ZWxlYXNlKG5hbWUpOwpAQCAtMjIwLDcgKzIyMSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICB9CiAjZW5kaWYKIAotICAgIGF1dG8gZXJyID0g
QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKKyAgICBh
dXRvIGVyciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1f
aW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gb3Bl
biB2cGlvIHVuaXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVy
cik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yMjgsMTMgKzIyOSwxMyBAQCBPU1N0YXR1cyBD
b3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICAgICBpZiAoIWVuYWJsZUVj
aG9DYW5jZWxsYXRpb24oKSkgewogICAgICAgICB1aW50MzJfdCBwYXJhbSA9IDA7Ci0gICAgICAg
IGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlf
Vm9pY2VQcm9jZXNzaW5nRW5hYmxlQUdDLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1
cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICAgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJvY2Vzc2luZ0Vu
YWJsZUFHQywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9m
KHBhcmFtKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFi
bGUgdG8gc2V0IHZwaW8gYXV0b21hdGljIGdhaW4gY29udHJvbCwgZXJyb3IgJWQgKCUuNHMpIiwg
dGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBlcnI7CiAg
ICAgICAgIH0KICAgICAgICAgcGFyYW0gPSAxOwotICAgICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X0J5cGFzc1ZvaWNlUHJvY2Vzc2lu
Zywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFt
KSk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtB
VVZvaWNlSU9Qcm9wZXJ0eV9CeXBhc3NWb2ljZVByb2Nlc3NpbmcsIGtBdWRpb1VuaXRTY29wZV9H
bG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgICAgICBpZiAoZXJy
KSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFy
ZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgZWNobyBj
YW5jZWxsYXRpb24sIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVy
cik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjQzLDcgKzI0NCw3IEBAIE9TU3RhdHVz
IENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgdWludDMyX3QgcGFyYW0gPSAxOwotICAgIGVyciA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtB
dWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7Cisg
ICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0
VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlucHV0QnVzLCAm
cGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXAp
IHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IGlucHV0LCBlcnJvciAlZCAoJS40cykiLCB0aGlz
LCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjU1LDcg
KzI1Niw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkK
ICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCi0gICAgZXJyID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNl
LCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJm1fY2FwdHVyZURldmljZUlELCBz
aXplb2YobV9jYXB0dXJlRGV2aWNlSUQpKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFBy
b3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwg
a0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZtX2NhcHR1cmVEZXZpY2VJRCwgc2l6
ZW9mKG1fY2FwdHVyZURldmljZUlEKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgl
cCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgY2FwdHVyZSBkZXZpY2UgSUQgJWQsIGVycm9yICVk
ICglLjRzKSIsIHRoaXMsIChpbnQpbV9jYXB0dXJlRGV2aWNlSUQsIChpbnQpZXJyLCAoY2hhciop
JmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yNzAsNyArMjcxLDcgQEAgT1NTdGF0dXMg
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIGlmIChlcnIpCiAgICAg
ICAgIHJldHVybiBlcnI7CiAKLSAgICBlcnIgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1faW9Vbml0
KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUobV9pb1VuaXQpOwogICAgIGlm
IChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIEF1ZGlvVW5pdEluaXRpYWxpemUoKSBmYWlsZWQs
IGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAg
IHJldHVybiBlcnI7CkBAIC0yOTIsNyArMjkzLDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0
Ojp1bmR1Y2soKQogT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9w
aG9uZVByb2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IG1p
Y3JvcGhvbmVDYWxsYmFjaywgdGhpcyB9OwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJv
cGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNr
LCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2Fs
bGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1Vu
aXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9Vbml0
U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gc2V0IHZw
aW8gdW5pdCBtaWMgcHJvYywgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMwMSwxNCArMzAyLDE0IEBAIE9TU3Rh
dHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKICAgICBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbWljcm9waG9uZVByb2NGb3JtYXQgPSB7IH07CiAK
ICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtaWNyb3Bob25lUHJvY0Zvcm1hdCk7Ci0gICAgZXJy
ID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJl
YW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVBy
b2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1f
aW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVf
T3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7CiAgICAgaWYg
KGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIGdldCBvdXRwdXQg
c3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikm
ZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKICAgICBtaWNyb3Bob25lUHJvY0Zv
cm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGUoKTsKLSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlv
VW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7
CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMs
ICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVN
aWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJy
b3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0
dXJuIGVycjsKQEAgLTMyMyw3ICszMjQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0
Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0
Ojpjb25maWd1cmVTcGVha2VyUHJvYygpCiB7CiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBj
YWxsYmFjayA9IHsgc3BlYWtlckNhbGxiYWNrLCB0aGlzIH07Ci0gICAgYXV0byBlcnIgPSBBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNh
bGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXpl
b2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHko
bV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5p
dFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAg
ICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVk
aW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRvIHNldCB2cGlv
IHVuaXQgc3BlYWtlciBwcm9jLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMzMyLDE0ICszMzMsMTQgQEAgT1NT
dGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoKQogICAgIEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzcGVha2VyUHJvY0Zvcm1hdCA9IHsgfTsKIAogICAg
IFVJbnQzMiBzaXplID0gc2l6ZW9mKHNwZWFrZXJQcm9jRm9ybWF0KTsKLSAgICBlcnIgPSBBdWRp
b1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1h
dCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwg
JnNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtB
dWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0
cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZp
Z3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVy
cm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJl
dHVybiBlcnI7CiAgICAgfQogCiAgICAgc3BlYWtlclByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBz
YW1wbGVSYXRlKCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtB
dWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0
cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9V
bml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQs
IGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsIHNp
emUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBn
ZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIs
IChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTQ1OSw3ICs0NjAsNyBAQCB2
b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQoKQogICAgIH0KIAogICAg
IGlmIChtX2lvVW5pdCkgewotICAgICAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZSht
X2lvVW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9p
b1VuaXQpOwogICAgICAgICBtX2lvVW5pdCA9IG51bGxwdHI7CiAgICAgfQogCkBAIC00NzcsNyAr
NDc4LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1Vu
aXQoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAg
ICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgICAgIGVyciA9
IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CiAgICAgICAgIGlmIChlcnIpIHsK
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVu
aXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1dFVuaXRTdG9wIGZhaWxlZCB3
aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAg
ICAgICAgICByZXR1cm4gZXJyOwpAQCAtNDkwLDcgKzQ5MSw3IEBAIE9TU3RhdHVzIENvcmVBdWRp
b1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0dXJuIGVycjsK
IAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gQXVkaW9PdXRwdXRV
bml0U3RhcnQobV9pb1VuaXQpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0
YXJ0KG1faW9Vbml0KTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1Vu
aXQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIs
IHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpA
QCAtNTE0LDcgKzUxNSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50
ZXJuYWwoKQogCiAgICAgdW5kdWNrKCk7CiAKLSAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRTdGFy
dChtX2lvVW5pdCk7CisgICAgZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5p
dCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJD
b3JlQXVkaW9TaGFyZWRVbml0OjpzdGFydCglcCkgQXVkaW9PdXRwdXRVbml0U3RhcnQgZmFpbGVk
IHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAg
ICAgICAgY2xlYW51cEF1ZGlvVW5pdCgpOwpAQCAtNTUxLDcgKzU1Miw3IEBAIHZvaWQgQ29yZUF1
ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKCkKICAgICBpZiAoIW1faW9Vbml0IHx8ICFtX2lv
VW5pdFN0YXJ0ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gZXJyID0gQXVkaW9PdXRw
dXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5p
dFN0b3AobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcCglcCkgQXVkaW9PdXRwdXRVbml0
U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIq
KSZlcnIpOwogICAgICAgICByZXR1cm47CkBAIC01NjUsNyArNTY2LDcgQEAgT1NTdGF0dXMgQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKHVpbnQzMl90KiBkZXZpY2VJRCkK
ICAgICBBU1NFUlQobV9pb1VuaXQpOwogCiAgICAgVUludDMyIHByb3BlcnR5U2l6ZSA9IHNpemVv
ZigqZGV2aWNlSUQpOwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1Vu
aXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2Nv
cGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0eVNpemUpOworICAgIGF1dG8g
ZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5p
dFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVz
LCBkZXZpY2VJRCwgJnByb3BlcnR5U2l6ZSk7CiAgICAgaWYgKGVycikKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2
aWNlKCVwKSB1bmFibGUgdG8gZ2V0IGRlZmF1bHQgaW5wdXQgZGV2aWNlIElELCBlcnJvciAlZCAo
JS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggM2Y0ZTRkY2Y0MmMwZmE5M2VmOWFiNjJkZDIy
YTk3YzUxMzg3MDY2My4uNTgyZjRiMjZjZjExOGM0OTcxYWNkN2QxODMwOTIxOTdlMWU3NjgyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtNTYsNyArNTYs
NiBAQAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVk
VW5pdC5tbQppbmRleCBhYTdmZjA4NzUwNTQyNTgyZjFlZjkxNjdhODFlNmZiNWE1NDhmMTUyLi5i
ODZiMDVlOGM2NjViYzJlODA1ZjI3YjM4YjFhNGZkMzMxM2Y5MmMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlv
U2hhcmVkVW5pdC5tbQpAQCAtNDQsMTQgKzQ0LDEwIEBACiAjaW1wb3J0IDxBdWRpb1Rvb2xib3gv
QXVkaW9Db252ZXJ0ZXIuaD4KICNpbXBvcnQgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgog
CisjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9j
Zi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9vbGJv
eCkKLQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVz
LCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRp
b0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVz
dGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBzaXplX3QgYWxpZ25UbzE2
Qnl0ZXMoc2l6ZV90IHNpemUpCiB7CkBAIC0yMjEsNyArMjE3LDcgQEAgdm9pZCBNb2NrQXVkaW9T
aGFyZWRVbml0OjpyZWNvbmZpZ3VyZSgpCiAgICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBtYWtlVW5p
cXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9zdHJlYW1Gb3JtYXQsIG1fbWF4aW1pdW1GcmFtZUNv
dW50KTsKIAogICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb247Ci0g
ICAgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKE5VTEwsICZtX3N0cmVhbUZvcm1hdCwg
MCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBQQUw6OkNN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShOVUxMLCAmbV9zdHJlYW1Gb3JtYXQsIDAsIE5V
TEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgbV9mb3JtYXREZXNj
cmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgc2l6ZV90IHNhbXBs
ZUNvdW50ID0gMiAqIHJhdGU7CkBAIC0yNDMsNyArMjM5LDcgQEAgdm9pZCBNb2NrQXVkaW9TaGFy
ZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyh1aW50MzJfdCBmcmFtZUNvdW50KQogICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2Zvcm1hdERlc2NyaXB0aW9uKTsKIAot
ICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fc2FtcGxlc0VtaXR0ZWQsIHNhbXBs
ZVJhdGUoKSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX3NhbXBs
ZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOwogICAgIG1fc2FtcGxlc0VtaXR0ZWQgKz0gZnJhbWVD
b3VudDsKIAogICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0
VGltZSksICptX2F1ZGlvQnVmZmVyTGlzdCwgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG1fc3Ry
ZWFtRm9ybWF0KSwgZnJhbWVDb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWMubW0KaW5kZXggYjA1OWEzMjUxZDhiOTY1N2JhOTAxNGM0NGY4MDYzYWY4MjdiMWQ0My4u
YjYwYjg4NjZmYmI4MDQ4OGMyM2ZlMmI1NzY5MmIzMGY4N2UzODY5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAtNTEsNyArNTEsNiBAQAogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDU4
MDk0YjM0MjBmMzljOGYyNmMxNzc3YTJhZWQwMTIzZGJlYTI2MjguLmFhNjk2YWRkZjdmNzc5MjU5
MTUyOTU4M2MyMTYwYzEyNDkxMWQ1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgPHBh
bC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBu
YW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlPiBSZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpB
dWRpb1RyYWNrSW50ZXJmYWNlPiYmIGF1ZGlvVHJhY2ssIFN0cmluZyYmIGF1ZGlvVHJhY2tJZCkK
IHsKQEAgLTEzMSw3ICsxMzAsNyBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNv
Y29hOjpPbkRhdGEoY29uc3Qgdm9pZCogYXVkaW9EYXRhLCBpbnQgYml0c1BlcgogICAgICAgICAg
ICAgbV9udW1iZXJPZkZyYW1lcyA9IDA7CiAgICAgfQogCi0gICAgQ01UaW1lIHN0YXJ0VGltZSA9
IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgQ01UaW1lIHN0
YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsK
ICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoc3RhcnRUaW1lKTsKICAgICBt
X251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJhbWVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggOGRmOGY2OGY2ZjcyNDA0NzVk
YmQ0MzIzMDZhYTNhNTY5ZjZlNDhjZi4uMGM3MWUxZGIxMGZhNDM3YTdjMDA0M2QzNjRmNDRiZjcy
MzcxMWM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbQpAQCAtNDIsNyArNDIsNiBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKICNp
bXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
PiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8
d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmIHZpZGVvVHJhY2ssIFN0cmluZyYmIHRyYWNr
SWQpCiB7CkBAIC0xNzMsMTkgKzE3MiwxOSBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hOjpPbkZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUpCiAgICAg
fQogCiAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm87Ci0gICAgdGltaW5nSW5mby5w
cmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVRpbWVNYWtlKGZyYW1lLnRpbWVzdGFtcF91cygpLCAx
MDAwMDAwKTsKLSAgICB0aW1pbmdJbmZvLmRlY29kZVRpbWVTdGFtcCA9IGtDTVRpbWVJbnZhbGlk
OwotICAgIHRpbWluZ0luZm8uZHVyYXRpb24gPSBrQ01UaW1lSW52YWxpZDsKKyAgICB0aW1pbmdJ
bmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IFBBTDo6Q01UaW1lTWFrZShmcmFtZS50aW1lc3Rh
bXBfdXMoKSwgMTAwMDAwMCk7CisgICAgdGltaW5nSW5mby5kZWNvZGVUaW1lU3RhbXAgPSBQQUw6
OmtDTVRpbWVJbnZhbGlkOworICAgIHRpbWluZ0luZm8uZHVyYXRpb24gPSBQQUw6OmtDTVRpbWVJ
bnZhbGlkOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uOwotICAgIE9TU3RhdHVzIG9zdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilw
aXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBPU1N0YXR1cyBvc3RhdHVzID0g
UEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2Ny
aXB0aW9uKTsKICAgICBpZiAob3N0YXR1cyAhPSBub0VycikgewogICAgICAgICBFUlJPUl9MT0df
SUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciAiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0
dXMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlcjsKLSAgICBvc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1
ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAg
ICBvc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVy
KGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3Jt
YXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOwogICAgIENGUmVsZWFz
ZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9zdGF0dXMgIT0gbm9FcnIpIHsKICAgICAg
ICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSLCAiRmFpbGVkIHRvIGNy
ZWF0ZSB0aGUgc2FtcGxlIGJ1ZmZlciB3aXRoIGVycm9yICIsIHN0YXRpY19jYXN0PGludD4ob3N0
YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2Nv
YS5jcHAKaW5kZXggNmJmMGNhNDg3ZGQ2NGRiZWY1MzlkOTQ4ODBmNjI4YzdmYTE2MWJmMS4uZTMz
YmI2ZGE5ZGRkZDAxYTAwZDk5NmZkOWVmMDJhYzk4MTRhMWViNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC00NSw3ICs0NSw2IEBA
IEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5r
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxS
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6
Y3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiB2aWRlb1NvdXJjZSkKIHsKQEAg
LTg1LDcgKzg0LDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6dmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICB9CiAKICAgICBBU1NF
UlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1w
bGVCdWZmZXJUeXBlKTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhl
bEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1T
YW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0g
c3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwog
ICAgIGF1dG8gcGl4ZWxGb3JtYXRUeXBlID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlw
ZShwaXhlbEJ1ZmZlcik7CiAKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY29udmVy
dGVkQnVmZmVyID0gcGl4ZWxCdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1h
Yy5tbQppbmRleCA3OGJiY2FkMTM5OTg2MmY1NWI5NzBiZTQ3N2YyNTE0YzRmMzQ4NDU0Li4xMjkz
ZGE1NTlmOTI5YTdhZWVjNTRkMDdhYTlhZTRmOTk0Zjk1YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dE
aXNwbGF5Q2FwdHVyZXJNYWMubW0KQEAgLTQ2LDcgKzQ2LDYgQEAKIFdURl9ERUNMQVJFX0NGX1RZ
UEVfVFJBSVQoQ0dJbWFnZSk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKIHN0YXRpYyBib29sIGFueU9mQ0dXaW5kb3coY29uc3QgRnVuY3Rpb248Ym9vbChD
RkRpY3Rpb25hcnlSZWYgaW5mbywgdW5zaWduZWQgaWQsIGNvbnN0IFN0cmluZyYgdGl0bGUpPiYg
cHJlZGljYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklj
b25VdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGll
cy5tbQppbmRleCA0ZWEzZGU4NmNiYjQ0NDE5ZGE2ZTFmNDkzYmVhODM5MDU1ZGQxODVlLi5mNmIz
Y2U5MWQ1MjU2MjJkMWRiMWYyMDE3ZTgxMTExNTU1OTZlM2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGllcy5tbQpAQCAtMTI0LDcgKzEyNCw3IEBAIFJldGFp
blB0cjxVSUltYWdlPiBpY29uRm9yVmlkZW9GaWxlKE5TVVJMICpmaWxlKQogICAgIFtnZW5lcmF0
b3Igc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtOllFU107CiAKICAgICBOU0Vycm9y
ICplcnJvciA9IG5pbDsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2VSZWYgPSBhZG9w
dENGKFtnZW5lcmF0b3IgY29weUNHSW1hZ2VBdFRpbWU6a0NNVGltZVplcm8gYWN0dWFsVGltZTpu
aWwgZXJyb3I6JmVycm9yXSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlUmVmID0g
YWRvcHRDRihbZ2VuZXJhdG9yIGNvcHlDR0ltYWdlQXRUaW1lOlBBTDo6a0NNVGltZVplcm8gYWN0
dWFsVGltZTpuaWwgZXJyb3I6JmVycm9yXSk7CiAgICAgaWYgKCFpbWFnZVJlZikgewogICAgICAg
ICBMT0dfRVJST1IoIkVycm9yIGNyZWF0aW5nIGltYWdlIGZvciB2aWRlbyAnJUAnOiAlQCIsIGZp
bGUsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbGxiYWNrSWNvbkZvckZpbGUoZmlsZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29y
ZU1lZGlhV3JhcHBlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKaW5kZXggYTE2ZDI0MjU2NDFmMzdhMTlkMGMwOWU1
NGJjM2VlZjRhYTI4MThlYS4uMGJhYzFlMjg5ZTc3NzJlYWU3ZTZiMzY5ODEwODU5NGI3YTY4Njg1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L0NvcmVNZWRpYVdyYXBwZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcApAQCAtMzQsMTcgKzM0LDE3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBib29sIGNyZWF0ZVdyYXBwZXIoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBjb25zdCBDTUJhc2VWVGFibGUqIGJhc2VWVGFibGUsIENNQmFzZUNsYXNzSUQgY2xh
c3NJRCwgQ01CYXNlT2JqZWN0UmVmKiB3cmFwcGVyKQogewotICAgIHJldHVybiBDTURlcml2ZWRP
YmplY3RDcmVhdGUoYWxsb2NhdG9yLCBiYXNlVlRhYmxlLCBjbGFzc0lELCB3cmFwcGVyKSA9PSBu
b0VycjsKKyAgICByZXR1cm4gUEFMOjpDTURlcml2ZWRPYmplY3RDcmVhdGUoYWxsb2NhdG9yLCBi
YXNlVlRhYmxlLCBjbGFzc0lELCB3cmFwcGVyKSA9PSBub0VycjsKIH0KIAogdm9pZCogd3JhcHBl
clN0b3JhZ2UoQ01CYXNlT2JqZWN0UmVmIHdyYXBwZXIpCiB7Ci0gICAgcmV0dXJuIENNQmFzZU9i
amVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOworICAgIHJldHVybiBQQUw6OkNNQmFzZU9i
amVjdEdldERlcml2ZWRTdG9yYWdlKHdyYXBwZXIpOwogfQogCiBjb25zdCBDTUJhc2VWVGFibGUq
IHdyYXBwZXJWVGFibGUoQ01CYXNlT2JqZWN0UmVmIHdyYXBwZXIpCiB7Ci0gICAgcmV0dXJuIENN
QmFzZU9iamVjdEdldFZUYWJsZSh3cmFwcGVyKTsKKyAgICByZXR1cm4gUEFMOjpDTUJhc2VPYmpl
Y3RHZXRWVGFibGUod3JhcHBlcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9y
bWF0UmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRl
ci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKaW5kZXggYzE4NGU0NDdiMmNkNDQyYTg0N2VjMzE2MjMz
NmI2ZmFmNzg3M2M3Yy4uNWU3NzhjYzBiN2JkYTc0ZTNmNzVjOTliNThiYThiZmEyNTE3MjkyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhRm9ybWF0UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCkBAIC00Nyw3ICs0Nyw2IEBAIFdURl9E
RUNMQVJFX0NGX1RZUEVfVFJBSVQoTVRQbHVnaW5Gb3JtYXRSZWFkZXIpOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBzdGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQpAQCAtMjQ1LDcgKzI0
NCw3IEBAIE9TU3RhdHVzIE1lZGlhRm9ybWF0UmVhZGVyOjpjb3B5UHJvcGVydHkoQ0ZTdHJpbmdS
ZWYga2V5LCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0CiAgICAgaWYgKG1fZHVyYXRpb24uaXNJbmRl
ZmluaXRlKCkpCiAgICAgICAgIHJldHVybiBrQ01CYXNlT2JqZWN0RXJyb3JfVmFsdWVOb3RBdmFp
bGFibGU7CiAKLSAgICBpZiAoYXV0byBsZWFrZWREdXJhdGlvbiA9IGFkb3B0Q0YoQ01UaW1lQ29w
eUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1lKG1fZHVyYXRpb24pLCBhbGxvY2F0b3IpKS5sZWFr
UmVmKCkpIHsKKyAgICBpZiAoYXV0byBsZWFrZWREdXJhdGlvbiA9IGFkb3B0Q0YoUEFMOjpDTVRp
bWVDb3B5QXNEaWN0aW9uYXJ5KFBBTDo6dG9DTVRpbWUobV9kdXJhdGlvbiksIGFsbG9jYXRvcikp
LmxlYWtSZWYoKSkgewogICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxDRkRpY3Rpb25hcnlSZWYq
Pih2YWx1ZUNvcHkpID0gbGVha2VkRHVyYXRpb247CiAgICAgICAgIHJldHVybiBub0VycjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAppbmRleCBkODNlZmNmNDc3
NWNlOTZiMTJhODc2MGY4ZDE3MjM0YWIwZjFlZTdkLi40ZGUxZDBlZDJhN2JlNDllM2NiYmI5NWUz
NzdmNTQ1MDlmYWMwN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAK
QEAgLTI1LDEyICsyNSwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTWVk
aWFTYW1wbGVCeXRlUmFuZ2UuaCIKKyNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KIAogI2lmIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIE1l
ZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZShNZWRpYVNhbXBsZSYgc2Ft
cGxlLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSwgdWludDY0X3QgdHJhY2tJRCkK
QEAgLTUwLDcgKzUwLDcgQEAgTWVkaWFTYW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0ZVJh
bmdlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNvdXIKICAgICBhdXRvIHBsYXRm
b3JtU2FtcGxlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgc3dpdGNoIChwbGF0Zm9y
bVNhbXBsZS50eXBlKSB7CiAgICAgY2FzZSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJU
eXBlOgotICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3Jt
YXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAg
ICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERl
c2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1TYW1wbGU6OkJ5dGVSYW5nZVNhbXBsZVR5cGU6CiAg
ICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuYnl0ZVJh
bmdlU2FtcGxlLnNlY29uZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9N
ZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCmluZGV4IGNl
MjkwNmRjNDQyOWI4NzUxNGE3YjAwYzMyMTczOTJkNTA3YjNmOTUuLmZiZTQyMjczMDZmODBmNjFj
MTI3YzMzOGM3MWVmYTU0YTJkMjBjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNw
cApAQCAtNDMsNyArNDMsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKE1UUGx1Z2luU2Ft
cGxlQ3Vyc29yKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIE1lZGlhVGltZSBhc3N1bWVkRGVj
b2RlVGltZShjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRpbWUsIERlY29kZU9yZGVyU2Ft
cGxlTWFwJiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKaW5kZXggOTA4NjFjODRk
ZGU2YzY2ZGRiODc3OTNhYjIzMDZhNjZlNGRlYjczMS4uMWRjMWNhZTAzMDA4ZTBhMjBhNDRhYzcz
ZDFhYTM3MjUzNTdmMjBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcApAQCAtNDcs
NyArNDcsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKE1UUGx1Z2luVHJhY2tSZWFkZXIp
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBDTUJhc2VDbGFzc0lEIE1lZGlhVHJhY2tSZWFkZXI6OndyYXBw
ZXJDbGFzc0lEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dy
b3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGlu
YXRvci5tbQppbmRleCAxN2Q3OWYxNjEwNTZhMDEwYTRlYWM1ODJmZDI3ODY4ZjM4OGE2MjExLi4x
ZTM4ZGU1ZGJkYTllMTU3MTI4ZjFmNDBkYWFkMWM0OTE5MGUzMDBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVz
Q29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBB
Y3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDIsOCArMTAyLDYg
QEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQog
UmVmPEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yPiBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRv
cjo6Y3JlYXRlKEdyb3VwQWN0aXZpdGllc1Nlc3Npb24mIHNlc3Npb24pCiB7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3Ioc2Vzc2lvbikpOwpAQCAt
MTU0LDcgKzE1Miw3IEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6OmxlYXZlKCkK
IAogdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBD
b29yZGluYXRvckNvbXBsZXRpb25IYW5kbGVyJiYgY2FsbGJhY2spCiB7Ci0gICAgW21fcGxheWJh
Y2tDb29yZGluYXRvciBjb29yZGluYXRlU2Vla1RvVGltZTpDTVRpbWVNYWtlV2l0aFNlY29uZHMo
dGltZSwgMTAwMCkgb3B0aW9uczowXTsKKyAgICBbbV9wbGF5YmFja0Nvb3JkaW5hdG9yIGNvb3Jk
aW5hdGVTZWVrVG9UaW1lOlBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDEwMDApIG9w
dGlvbnM6MF07CiAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsKIH0KIApAQCAtMjExLDEwICsy
MDksMTAgQEAgdm9pZCBHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcjo6aXNzdWVQbGF5Q29tbWFu
ZChBVkRlbGVnYXRpbmdQbGF5YmFja0Nvb3JkaW5hdG8KIAogICAgIHN0ZDo6b3B0aW9uYWw8ZG91
YmxlPiBpdGVtVGltZTsKICAgICBpZiAoQ01USU1FX0lTX05VTUVSSUMocGxheUNvbW1hbmQuaXRl
bVRpbWUpKQotICAgICAgICBpdGVtVGltZSA9IENNVGltZUdldFNlY29uZHMocGxheUNvbW1hbmQu
aXRlbVRpbWUpOworICAgICAgICBpdGVtVGltZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhwbGF5
Q29tbWFuZC5pdGVtVGltZSk7CiAgICAgc3RkOjpvcHRpb25hbDxNb25vdG9uaWNUaW1lPiBob3N0
VGltZTsKICAgICBpZiAoQ01USU1FX0lTX05VTUVSSUMocGxheUNvbW1hbmQuaG9zdENsb2NrVGlt
ZSkpCi0gICAgICAgIGhvc3RUaW1lID0gTW9ub3RvbmljVGltZTo6ZnJvbU1hY2hBYnNvbHV0ZVRp
bWUoQ01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMocGxheUNvbW1hbmQuaG9zdENs
b2NrVGltZSkpOworICAgICAgICBob3N0VGltZSA9IE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJz
b2x1dGVUaW1lKFBBTDo6Q01DbG9ja0NvbnZlcnRIb3N0VGltZVRvU3lzdGVtVW5pdHMocGxheUNv
bW1hbmQuaG9zdENsb2NrVGltZSkpOwogCiAgICAgY2xpZW50KCktPnBsYXlTZXNzaW9uKGl0ZW1U
aW1lLCBob3N0VGltZSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChib29sKSB7CiAg
ICAgICAgIGNhbGxiYWNrKCk7CkBAIC0yNDYsNyArMjQ0LDcgQEAgdm9pZCBHcm91cEFjdGl2aXRp
ZXNDb29yZGluYXRvcjo6aXNzdWVTZWVrQ29tbWFuZChBVkRlbGVnYXRpbmdQbGF5YmFja0Nvb3Jk
aW5hdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNsaWVudCgpLT5zZWVrU2Vzc2lv
blRvVGltZShDTVRpbWVHZXRTZWNvbmRzKHNlZWtDb21tYW5kLml0ZW1UaW1lKSwgW2NhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldIChib29sKSBtdXRhYmxlIHsKKyAgICBjbGllbnQoKS0+c2Vl
a1Nlc3Npb25Ub1RpbWUoUEFMOjpDTVRpbWVHZXRTZWNvbmRzKHNlZWtDb21tYW5kLml0ZW1UaW1l
KSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChib29sKSBtdXRhYmxlIHsKICAgICAg
ICAgY2FsbGJhY2soKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggNDI3OTY5YzI4MjExOGFj
M2MzZDc3MDgzZWFiODJkOTVmZDBhYmVmZi4uMTcxZDljYTQ4NDkxNWQ3YWY0ZWVhZDY5NzA5OTkx
ZTUwNGQ0Mjc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucygpCiB7CiAgICAgdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIAotICAgIGlmICghaXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZh
aWxhYmxlKCkgfHwgIWNhbkxvYWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEZldGNo
U2VydmVyUmVnaXN0cmF0aW9ucygpKQorICAgIGlmICghUEFMOjppc0F1ZGlvVG9vbGJveENvcmVG
cmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhUEFMOjpjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVk
aW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9R
VUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KV0gKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQppbmRleCBmMzc4NGZjMjcx
MmIwZGY2Mzg3MTIwNDdjZDcyZjg1MzBjNzc3MjM0Li4yYTgzZDk3MTBiZjcyNTVlNTkzODVjMWIx
ZjY1OTM0YzI2MzA1NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KQEAgLTQyLDcgKzQy
LDYgQEAgQGVuZAogTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKIG5hbWVzcGFjZSBXZWJLaXQgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMg
Ym9vbCB1c2FnZVRyYWNraW5nQXZhaWxhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRl
eCBjMzIzYTZhNzhiNDUwMDViNjc3NDA4NjJiNjI5YjE2ZmJiODBmNDBiLi5mODkxYTUzMzE0NTBi
ZjE3ZWFmOTViMDBlMzE4ZGFlM2M3Mzg3NTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBA
IC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCmluZGV4IDk1YmJk
NTQ4M2NmZWExN2M5MTJlZDViNWYxM2Y0MzFmYWUzNzEyNjcuLjhhNTlhZTFhMjhmYTQzYTliMmYy
MTU3NjIxMTg5YWU5NzZkMTAyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3Bw
CkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3Qu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6flJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBhMWE4MjdkZjFkZDFmMTYyMjdjMTNl
YzZlZTMwODRlOWQyNjFmNDU2Li4wZDZkZTFmMmE5OTA2MDllZTlhMDUwMmU4ZDk0OGMzOTBmYTEx
ZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KQEAgLTEzOTUsNyArMTM5NSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6Y29uc3VtZUF1
ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhCiB7
CiAgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAgIGlmICghaXNBdWRpb1Rvb2xib3hDb3Jl
RnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIWNhbkxvYWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0Nv
bXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucygpKQorICAgIGlmICghUEFMOjppc0F1ZGlv
VG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhUEFMOjpjYW5Mb2FkX0F1ZGlvVG9v
bGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgYXV0byByZWdpc3RyYXRpb25zID0gYWRvcHRDRihDRkRhdGFDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432365</attachid>
            <date>2021-06-27 22:29:27 -0700</date>
            <delta_ts>2021-06-28 01:20:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210628152925.patch</filename>
            <type>text/plain</type>
            <size>329480</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc2MGFmZjhiNzMzNTgy
NDE3ZjA3N2M5MDRjOTQ4ZmYyMzgxZWU5Yy4uZGZiN2RkYjllMTQ1ZWFjZjUzOTZhNmI0ZGE3ZDcx
YmQ5Yjc2NTAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlcyBv
ZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFVuaWZ5IEF1ZGlvVG9vbGJveCwgQ29yZU1lZGlhLCBWaWRlb1Rvb2xib3ggYW5k
IE1lZGlhVG9vbGJveCdzIG1ldGhvZAorICAgICAgICBkZWZpbml0aW9ucyBhbmQgdGhlaXIgdXNl
LCBlbnN1cmluZyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzb2Z0LWxpbmtlZC4KKyAgICAgICAgVW5p
ZmllZCBidWlsZHMgYW5kIHRoZSBpbmNvbnNpc3RlbnQgdXNlIG9mIGV4cGxpY2l0bHkgdXNpbmcg
dGhlIFBBTCBuYW1lc3BhY2UKKyAgICAgICAgY2F1c2VkIHNvbWUgY2FsbHMgdG8gYmUgYW1iaWd1
b3VzIGxlYWRpbmcgdG8gY29tcGlsYXRpb24gZXJyb3JzOyBzb21lCisgICAgICAgIGNvZGUgd291
bGQgYWxzbyB1c2UgdGhlIHNvZnRsaW5rZWQgbWV0aG9kcyB3aGlsZSBvdGhlcnMgY2FsbGVkIGlu
dG8gdGhlIGZyYW1ld29ya3MKKyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIFRvIGdldCBhcm91
bmQgdGhvc2Ugd2UgZW5zdXJlIHRoYXQgYW55IGNhbGxzIHRvIEF1ZGlvVG9vbGJveCBvciBDb3Jl
TWVkaWEgaXMgYWx3YXlzIHVzaW5nCisgICAgICAgIHRoZSBmdWxseSByZXNvbHZlZCBQQUwgbmFt
ZS4KKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGB1c2luZyBuYW1lc3BhY2UgUEFMO2Agc3Rh
dGVtZW50cyB3aGVyZXZlciBhcHBsaWNhYmxlLgorICAgICAgICBObyBjaGFuZ2UgaW4gb2JzZXJ2
YWJsZSBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5w
cmVwYXJlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUltYWdlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50
TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlk
Q2hhbmdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpk
ZXN0cm95TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjp2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJS
ZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGVJbWFnZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnBy
ZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkZWNvZGVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6ZHVyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpzaXplSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFW
Rk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZG9l
c0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1ZmZl
ckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1wbGVC
dWZmZXJOb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6cHJlc2VudGF0aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1w
bGVBVkZPYmpDOjppc0RpdmlzYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OmRpdmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZm
ZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3Vt
ZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpB
dWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0NNQ29sb3JQcmltYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01U
cmFuc2ZlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0NNWUNiQ1JNYXRy
aXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJh
aXQ8Q01TYW1wbGVCdWZmZXJSZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmRlY29kZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjph
dXRvbWF0aWNEZXF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5I
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRh
dGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVr
YWJsZVJhbmdlc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93
V2F0ZXJUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0Nv
bXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFz
c2V0V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVk
aW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmlj
ZUNsb2NrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpj
b25maWd1cmVNaWNyb3Bob25lUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVk
aW9TaGFyZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2E6Ok9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW06CisKIDIwMjEtMDYtMjEgIEplYW4t
WXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1l
dGhvZCBpbiBBdWRpb0ZpbGVSZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGI2MjY3YzdmNmU5
Y2YwNmRlZDAwMDMzZTFlMmEwZGE5MjY1MTU3ZDcuLjk1OTEyMWY2NzgxNzJiNGVlODA2Njc2ZjBk
YTcxNzg5ZDdjY2Q2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIx
LTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgTm90
IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgor
ICAgICAgICAqIHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWV0aG9kcyB3aG9z
ZSBkZWZpbml0aW9ucyB3ZXJlIHNjYXR0ZXJlZCBhY3Jvc3MKKyAgICAgICAgdGhlIGNvZGUuCisg
ICAgICAgICogcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBw
YWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaDogU2FtZSBhcyBhYm92ZS4KKyAgICAgICAg
KiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9BdWRp
b1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisgICAgICAgICogcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kczsgUmVzaHVmZmxlZCBkZWZpbml0aW9ucyBhcyBtYW55
IGRpZG4ndAorICAgICAgICBleGlzdCBvbiBXaW5kb3dzLCB5ZXQgY291bGQgcG90ZW50aWFsbHkg
YmUgbG9hZGVkIGFuZCBlcnJvci4KKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29mdExp
bmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlz
c2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAgICAg
ICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9j
b2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIwMjEt
MDYtMjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01v
ZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIG1vZGVsIHJlc291cmNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA3ODQ3OWUyYTFiMjIwM2YwOTVmZWQzNTg1OTQ5MGFmZGU3YTA4M2NjLi4zYmYyMThm
ZDZlYTAxMTU5MGExMjFjZTM2OTA0YmM3OTE0OTliZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDIxLTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAg
ICAgICAgTm90IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlu
a2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
MjUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1
ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVB
dWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0
ZVdyYXBwZXIpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyU3RvcmFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OndyYXBwZXJWVGFibGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1h
dFJlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFT
YW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVn
aXN0cmF0aW9ucyk6CisKIDIwMjEtMDYtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBpT1MgYnVpbGQgYWZ0ZXIg
cmRhcjovLzc2NzgxODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggNmE4MjNkNjFhZDEw
MTAzMmJiZTE5NGE2MmI1YjYxNTZkMjNjYWIxMi4uMDljMmVhMzI5YzJjMGNhNmVlNmY3YmEzYTJj
NDRhZGY4MzQ4ZTVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtNTMsOCArNTMsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KICNpZiAh
VVNFKExJQldFQlJUQykKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGVlckNvbm5lY3Rpb25CYWNr
ZW5kPiBjcmVhdGVOb1BlZXJDb25uZWN0aW9uQmFja2VuZChSVENQZWVyQ29ubmVjdGlvbiYpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KaW5kZXggNDAwZjliOGQxNmI1OTNiNDg1ZTAwYzdmNzhm
NTlkZTk4ZGMzN2Q5Zi4uNzQ5OTRlMmM1MTAwZWNhYmE2MTU5MGZiMTE4MGFhMGJjMzdiMGRiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpAQCAtNTgsNyArNTgsNiBAQAogI2ltcG9ydCA8cGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogc3RhdGljIEpT
VmFsdWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCA1YjEzNWIzOWE1YTBhMWQ4MDFiZTY4NzhmYmRm
ZjY3NjZjMmU4YWNlLi5mMWMyYWYzM2M1ZmEyYWI2ZmM1MTY2OTk4M2ZhNzBlNzY5NjQwMjgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExp
bmsuaCIKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgaW5saW5lIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBzdHJlYW1EZXNjcmlwdGlvbihz
aXplX3Qgc2FtcGxlUmF0ZSwgc2l6ZV90IGNoYW5uZWxDb3VudCkKQEAgLTcxLDcgKzY5LDcgQEAg
dm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjb25zdW1lQXVkaW8oQXVkaW9CdXMmIGJ1cywg
c2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ01U
aW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9jdXJyZW50U2V0
dGluZ3Muc2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVN
YWtlKG1fbnVtYmVyT2ZGcmFtZXMsIG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSk7CiAg
ICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9u
dW1iZXJPZkZyYW1lcyArPSBudW1iZXJPZkZyYW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCA2N2I3OGY0NmE3ODEx
Nzg4OGYwMGQwODk3ZGJhNTdlN2FjNTM4NTAyLi4zMzNhYTIyNGM3MWE3NTBjZDlhMGY2OWY3ODNk
ZDAxNTk3NTEwYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMjYsMjAgKzI2LDQ2IEBACiAKICNpZiBVU0UoQVZGT1VO
REFUSU9OKQogCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29tcG9uZW50Lmg+CiAjaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CisjaW5jbHVkZSA8QXVkaW9Ub29s
Ym94L0F1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1hdC5oPgot
CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvVW5pdC5oPgorI2luY2x1ZGUgPEF1ZGlvVG9v
bGJveC9FeHRlbmRlZEF1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgog
CiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZU
X0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlv
VG9vbGJveENvcmUsIFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbywgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIG91dFNpemUsIEJvb2xlYW4qIG91dFdyaXRh
YmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgb3V0U2l6ZSwgb3V0V3JpdGFi
bGUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvRm9ybWF0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEIGlu
UHJvcGVydHlJRCwgVUludDMyIGluU3BlY2lmaWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVjaWZp
ZXIsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAo
aW5Qcm9wZXJ0eUlELCBpblNwZWNpZmllclNpemUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5RGF0
YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJl
Ziogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3Jt
YXQsIG91dEF1ZGlvQ29udmVydGVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9D
b252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlvQ29udmVydGVyKSkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRl
clNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0
ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3Bl
cnR5RGF0YVNpemUsIGNvbnN0IHZvaWQqIGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlv
UHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYg
aW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1
ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAo
aW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRw
dXREYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVy
dGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVBy
b2MgaW5JbnB1dERhdGFQcm9jLCB2b2lkKiBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgVUludDMy
KiBpb091dHB1dERhdGFQYWNrZXRTaXplLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEs
IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIG91dFBhY2tldERlc2NyaXB0aW9uKSwgKGlu
QXVkaW9Db252ZXJ0ZXIsIGluSW5wdXREYXRhUHJvYywgaW5JbnB1dERhdGFQcm9jVXNlckRhdGEs
IGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIG91dE91dHB1dERhdGEsIG91dFBhY2tldERlc2NyaXB0
aW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0
VW5pdFN0b3AsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNl
RGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAo
aW5JbnN0YW5jZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Db21wb25lbnRDb3B5TmFtZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBp
bkNvbXBvbmVudCwgQ0ZTdHJpbmdSZWYqIG91dE5hbWUpLCAoaW5Db21wb25lbnQsIG91dE5hbWUp
KQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRp
b25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIChvdXRC
dW5kbGVSZWdpc3RyYXRpb25zKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9D
b21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGlu
QnVuZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQT1JU
KQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVk
aW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRp
b0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZvaWQgKmluQ2xpZW50RGF0
YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2MgaW5X
cml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0ZpbGVf
U2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVIaW50
LCBBdWRpb0ZpbGVJRCAqb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVuYywg
aW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVIaW50
LCBvdXRBdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRp
b1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVm
IGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3Bl
cnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCAqb3V0
UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlE
YXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlv
RmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyICppb051bWJlckZyYW1lcywgQXVkaW9CdWZm
ZXJMaXN0ICppb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlv
RmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3Bl
cnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxl
LCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmls
ZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVh
biBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmls
ZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0
dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxlUmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAo
aW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVu
dCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2Ny
aXB0aW9uKiBpbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJ
bnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlE
IGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50
LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNj
b3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3Rh
dHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0
U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGlu
RGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1l
bnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCiAKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGlu
ay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCmlu
ZGV4IDQ5ZTMyZTE3OTQwMzYzYjg0OTc3NDQzNWJkMjA5NWU2NGFiNDg4MWIuLmRkZjEzYTAyN2E0
NWEyMmI4Mzk4ZDEzNWU4ZTBiM2RmYzY4NTUyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTI2LDI3ICsyNiwxMTQgQEAKIAog
I2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlw
ZXMuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogdHlwZWRlZiBVSW50MzIgQXVk
aW9Db252ZXJ0ZXJQcm9wZXJ0eUlEOwogdHlwZWRlZiBVSW50MzIgQXVkaW9Gb3JtYXRQcm9wZXJ0
eUlEOwogdHlwZWRlZiBzdHJ1Y3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29udmVydGVy
KiBBdWRpb0NvbnZlcnRlclJlZjsKK3R5cGVkZWYgc3RydWN0IEF1ZGlvQnVmZmVyTGlzdCBBdWRp
b0J1ZmZlckxpc3Q7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5w
dXREYXRhUHJvYykoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwKKyAgICBVSW50
MzIqIGlvTnVtYmVyRGF0YVBhY2tldHMsCisgICAgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEsCisg
ICAgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbioqIG91dERhdGFQYWNrZXREZXNjcmlwdGlv
biwKKyAgICB2b2lkKiBpblVzZXJEYXRhKTsKKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlRXh0QXVk
aW9GaWxlKiBFeHRBdWRpb0ZpbGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0ZpbGVJ
RCogQXVkaW9GaWxlSUQ7Cit0eXBlZGVmIFVJbnQzMiBBdWRpb0ZpbGVUeXBlSUQ7Cit0eXBlZGVm
IFVJbnQzMiBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlv
RmlsZV9SZWFkUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBpblBv
c2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQsCisgICAgdm9pZCogYnVmZmVyLAorICAg
IFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9Xcml0
ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBTSW50NjQgaW5Qb3NpdGlvbiwK
KyAgICBVSW50MzIgcmVxdWVzdENvdW50LAorICAgIGNvbnN0IHZvaWQqIGJ1ZmZlciwKKyAgICBV
SW50MzIqIGFjdHVhbENvdW50KTsKK3R5cGVkZWYgU0ludDY0ICgqQXVkaW9GaWxlX0dldFNpemVQ
cm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEpOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlv
RmlsZV9TZXRTaXplUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBp
blNpemUpOwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db21wb25lbnQqIEF1ZGlvQ29tcG9u
ZW50OworCisjaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoZGVmaW5lZChBVURJT0NPTVBPTkVOVF9O
T0NBUkJPTklOU1RBTkNFUykgJiYgQVVESU9DT01QT05FTlRfTk9DQVJCT05JTlNUQU5DRVMpCit0
eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlOworI2Vsc2UKK3R5cGVkZWYgc3RydWN0IENvbXBvbmVudEluc3RhbmNlUmVjb3Jk
KiBBdWRpb0NvbXBvbmVudEluc3RhbmNlOworI2VuZGlmCit0eXBlZGVmIEF1ZGlvQ29tcG9uZW50
SW5zdGFuY2UgQXVkaW9Vbml0OworCit0eXBlZGVmIHN0cnVjdCBBdWRpb0NvbXBvbmVudERlc2Ny
aXB0aW9uIEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb247Cit0eXBlZGVmIFVJbnQzMiBBdWRpb1Vu
aXRQcm9wZXJ0eUlEOwordHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0U2NvcGU7Cit0eXBlZGVmIFVJ
bnQzMiBBdWRpb1VuaXRFbGVtZW50OwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIo
UEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3hDb3JlKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVk
aW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyKiBvdXRTaXplLCBCb29sZWFuKiBvdXRXcml0YWJsZSksIChp
bkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIG91dFNpemUsIG91dFdyaXRhYmxlKSkKKyNk
ZWZpbmUgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8gc29mdExpbmtfQXVkaW9Ub29sYm94
X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCog
b3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9w
ZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9D
b252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
KiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRl
c3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAo
aW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkK
ICNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29u
dmVydGVyTmV3CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGlu
QXVkaW9Db252ZXJ0ZXIpLCAoaW5BdWRpb0NvbnZlcnRlcikpCisjZGVmaW5lIEF1ZGlvQ29udmVy
dGVyRGlzcG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJEaXNwb3NlCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Q
cm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29u
dmVydGVyLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEp
KQogI2RlZmluZSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbnZlcnRlclNldFByb3BlcnR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChB
dWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXpl
LCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZv
aWQqIG91dFByb3BlcnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5T
cGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUg
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Gb3JtYXRH
ZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9D
b252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBj
b25zdCBBdWRpb0J1ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91
dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXRE
YXRhLCBvdXRPdXRwdXREYXRhKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxl
eEJ1ZmZlciBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxl
eEJ1ZmZlcgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0
ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJv
YyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIq
IGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwg
QXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQcm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwg
aW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRp
b24pKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1
ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQs
IE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKKyNkZWZpbmUgQXVkaW9PdXRwdXRVbml0
U3RhcnQgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvT3V0cHV0VW5pdFN0YXJ0CitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0
U3RvcCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorI2RlZmluZSBBdWRpb091dHB1
dFVuaXRTdG9wIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb091dHB1dFVuaXRTdG9wCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25l
bnRJbnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbklu
c3RhbmNlKSwgKGluSW5zdGFuY2UpKQorI2RlZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlz
cG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudENvcHlOYW1lLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBD
RlN0cmluZ1JlZiogb3V0TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisjZGVmaW5lIEF1
ZGlvQ29tcG9uZW50Q29weU5hbWUgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50
Q29weU5hbWUKKwogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucywg
T1NTdGF0dXMsIChDRkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAob3V0QnVuZGxl
UmVnaXN0cmF0aW9ucykpCiAjZGVmaW5lIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3Ry
YXRpb25zIHNvZnRMaW5rQXVkaW9Ub29sYm94Q29yZUF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJS
ZWdpc3RyYXRpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25z
LCBPU1N0YXR1cywgKENGRGF0YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVS
ZWdpc3RyYXRpb25zKSkKICNkZWZpbmUgQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJh
dGlvbnMgc29mdExpbmtBdWRpb1Rvb2xib3hDb3JlQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJl
Z2lzdHJhdGlvbnMKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxl
KSwgKGluQXVkaW9GaWxlKSkKKyNkZWZpbmUgQXVkaW9GaWxlQ2xvc2Ugc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvRmlsZUNsb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9p
ZCogaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxl
X1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1
bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQg
aW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEKiBvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRh
LCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywg
aW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEF1ZGlvRmlsZU9wZW5XaXRo
Q2FsbGJhY2tzIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNr
cworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxl
KSwgKGluRXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlRGlzcG9zZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0
YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQ
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURh
dGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0
eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFk
LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyKiBpb051
bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlv
TnVtYmVyRnJhbWVzLCBpb0RhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVSZWFkIHNvZnRMaW5r
X0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVSZWFkCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVz
LCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Q
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURh
dGFTaXplLCBpblByb3BlcnR5RGF0YSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5
IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZv
cldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBp
bkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmls
ZUlECitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0
QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxl
UmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5l
IEV4dEF1ZGlvRmlsZU9wZW5VUkwgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZU9w
ZW5VUkwKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvQ29tcG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQg
aW5Db21wb25lbnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChp
bkNvbXBvbmVudCwgaW5EZXNjKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRGaW5kTmV4dCBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRGaW5kTmV4dAorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VO
ZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50
SW5zdGFuY2UqIG91dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCisjZGVm
aW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQg
aW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUs
IEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0
YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0
YVNpemUpKQorI2RlZmluZSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9Vbml0R2V0UHJvcGVydHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQpLCAoaW5Vbml0KSkKKyNkZWZpbmUgQXVkaW9Vbml0SW5pdGlhbGl6ZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0SW5pdGlhbGl6ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0
U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGlu
RGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1l
bnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5pdFNldFByb3BlcnR5IHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRTZXRQcm9wZXJ0eQorCiAjZW5kaWYgLy8gVVNF
KEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5jcHAKaW5kZXggYzE0MzkyYmEyYzkxNDJkNTFiNDc0ZTdkMjQ0ODBiOTcxOWY4YTRj
Ni4uNzAzMDQxMGNkNDJjZWVhYjNmNmJmMjVkZTFlYjFkOGVlY2ViODI3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgPENvcmVNZWRpYS9DTUJ1ZmZlclF1ZXVlLmg+CiAjaW5jbHVkZSA8Q29yZVZp
ZGVvL0NvcmVWaWRlby5oPgogI2VuZGlmCiAKQEAgLTUzLDggKzU0LDEwIEBAIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldERhdGFCCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBsZUluZGV4LCBDTVNhbXBsZVRp
bWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxlSW5kZXgsIHRpbWluZ0luZm9P
dXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHksIEJvb2xlYW4sIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbXBh
cmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIp
LCBQQUxfRVhQT1JUKQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01UaW1lQWRkLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGlt
ZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGlu
dDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMy
X3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3
VGltZXNjYWxlLCBtZXRob2QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0
NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYWtlLCBDTVRp
bWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2FsZSksICh2YWx1ZSwgdGltZXNjYWxl
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYWtlV2l0aFNlY29uZHMsIENNVGltZSwgKEZsb2F0NjQg
c2Vjb25kcywgaW50MzJfdCBwcmVmZXJyZWRUaW1lU2NhbGUpLCAoc2Vjb25kcywgcHJlZmVycmVk
VGltZVNjYWxlKSwgUEFMX0VYUE9SVCkKQEAgLTYyLDE4ICs2NSwxNiBAQCBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lU3VidHJh
Y3QsIENNVGltZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZVJhbmdlR2V0RW5kLCBDTVRpbWUsIChDTVRpbWVSYW5nZSByYW5n
ZSksIChyYW5nZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VNYWtlLCBDTVRpbWVSYW5nZSwg
KENNVGltZSBzdGFydCwgQ01UaW1lIGR1cmF0aW9uKSwgKHN0YXJ0LCBkdXJhdGlvbiksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01UaW1lUmFuZ2VFcXVhbCwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlMSwg
Q01UaW1lUmFuZ2UgcmFuZ2UyKSwgKHJhbmdlMSwgcmFuZ2UyKSwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRp
bWVNYXhpbXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwg
dGltZTIpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFu
Z2VDb250YWluc1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUp
LCAocmFuZ2UsIHRpbWUpLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENNVGltZSwg
UEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lLCBQQUxfRVhQT1JUKQorU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQ
b3NpdGl2ZUluZmluaXR5LCBDTVRpbWUsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52YWxp
ZCwgQ01UaW1lUmFuZ2UsIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUs
IFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNj
cmlwdGlvbkV4dGVuc2lvbkF0b21zLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKLVNPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBP
UlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwLCBDRlN0
cmluZ1JlZiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVz
X1AzX0Q2NSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fRnVsbFJhbmdlVmlkZW8sIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQotU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZiwg
UEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1Jf
MjEwMF9ITEcsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQotU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRLCBDRlN0cmlu
Z1JlZiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
U01QVEVfU1RfNDI4XzEsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
a0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9NaWRkbGUsIENGU3RyaW5nUmVmLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX1N0YXJ0LCBDRlN0cmluZ1JlZiwgUEFM
X0VYUE9SVCkKQEAgLTkzLDIwICs5NCwzOCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEF0dHJpYnV0ZQogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtD
TVRleHRNYXJrdXBBdHRyaWJ1dGVfV3JpdGluZ0RpcmVjdGlvblNpemVQZXJjZW50YWdlLCBDRlN0
cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0VmVydGljYWxMYXlvdXRfTGVmdFRvUmlnaHQs
IENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRWZXJ0aWNhbExheW91dF9SaWdodFRv
TGVmdCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENNVGltZSwg
UEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lLCBQQUxfRVhQT1JUKQotU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQ
b3NpdGl2ZUluZmluaXR5LCBDTVRpbWUsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52YWxpZCwgQ01UaW1lUmFu
Z2UpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlh
U3ViVHlwZSwgRm91ckNoYXJDb2RlLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRl
c2MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUsIENNTWVk
aWFUeXBlLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JU
KQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRl
bnNpb25BdG9tcywgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRp
b25Db2xvclByaW1hcmllc19EQ0lfUDMsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQorU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYsIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUsIENG
U3RyaW5nUmVmLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1
bGxSYW5nZVZpZGVvLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQp
CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHLCBD
RlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fTGluZWFyLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSwgQ0ZTdHJpbmdSZWYsIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQy
OF8xLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNy
TWF0cml4X0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9y
bWF0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlw
dGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCisKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJl
ZiB0aGVCdWZmZXIpLCAodGhlQnVmZmVyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0
RGF0YVBvaW50ZXIsIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIsIHNpemVf
dCBvZmZzZXQsIHNpemVfdCogbGVuZ3RoQXRPZmZzZXRPdXQsIHNpemVfdCogdG90YWxMZW5ndGhP
dXQsIGNoYXIqKiBkYXRhUG9pbnRlck91dCksICh0aGVCdWZmZXIsIG9mZnNldCwgbGVuZ3RoQXRP
ZmZzZXRPdXQsIHRvdGFsTGVuZ3RoT3V0LCBkYXRhUG9pbnRlck91dCksIFBBTF9FWFBPUlQpCisK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlciwgQ01Ob3RpZmljYXRp
b25DZW50ZXJSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50
ZXJBZGRMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIs
IGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBD
RlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCwgVUludDMyIGZsYWdz
KSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCwgZmxh
Z3MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIsIE9T
U3RhdHVzLCAoQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBjb25zdCB2b2lkKiBsaXN0
ZW5lciwgQ01Ob3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZTdHJpbmdSZWYgbm90aWZp
Y2F0aW9uLCBjb25zdCB2b2lkKiBvYmplY3QpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ss
IG5vdGlmaWNhdGlvbiwgb2JqZWN0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYg
ZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFk
eUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNv
biwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01T
YW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxl
U2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZl
clJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURh
dGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwg
bnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51
bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpLCBQQUxfRVhQT1JU
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVm
Q29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8gKnNh
bXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNvcHlPdXQpLCAoYWxsb2Nh
dG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0Fy
cmF5LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJl
ZiBkYXRhQnVmZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBD
TUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVz
LCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENN
U2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVy
LCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywg
c2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXks
IHNhbXBsZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNh
bGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1w
bGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6
ZUVudHJpZXMsIGNvbnN0IHNpemVfdCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJl
Ziogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVt
U2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNh
bXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmKiBzYnVmQ29w
eU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBs
ZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9y
LCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5
LCBzQnVmQ29weU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdp
dGhJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1h
Z2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcsIENN
U2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1h
dERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFk
eSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGlt
aW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1h
Z2VCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5
UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wLCBDTVRpbWUs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQpAQCAtMTE2LDE0
ICsxMzUsMTUgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0UHJlc2UKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91
dHB1dER1cmF0aW9uLCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1w
LCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSwgQ0ZBcnJheVJlZiwgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3JlYXRlSWZOZWNlc3NhcnkpLCAoc2J1Ziwg
Y3JlYXRlSWZOZWNlc3NhcnkpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRl
bUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJh
eU91dCwgQ01JdGVtQ291bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0
aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVk
ZWRPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1l
IHRpbWUsIGludDMyX3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2Qp
LCAodGltZSwgbmV3VGltZXNjYWxlLCBtZXRob2QpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZv
KiB0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91
dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJh
eUVudHJpZXNOZWVkZWRPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VG90YWxT
YW1wbGVTaXplLCBzaXplX3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmLCBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciksIChzYnVmLCBidWZmZXIp
LCBQQUxfRVhQT1JUKQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01HZXRBdHRhY2htZW50LCBDRlR5cGVSZWYsIChDTUF0dGFjaG1l
bnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENNQXR0YWNobWVudE1vZGUqIGF0
dGFjaG1lbnRNb2RlT3V0KSwgKHRhcmdldCwga2V5LCBhdHRhY2htZW50TW9kZU91dCksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TZXRBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRh
cmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5cGVSZWYgdmFsdWUsIENNQXR0YWNobWVudE1vZGUg
YXR0YWNobWVudE1vZGUpLCAodGFyZ2V0LCBrZXksIHZhbHVlLCBhdHRhY2htZW50TW9kZSksIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01SZW1vdmVBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVy
UmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5KSwgKHRhcmdldCwga2V5KSwgUEFMX0VYUE9SVCkK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiAqdGlt
ZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQpLCBQQUxfRVhQ
T1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VS
ZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1lYmFzZVJlZiB0
aW1lYmFzZSksICh0aW1lYmFzZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdldFJhdGUsIEZs
b2F0NjQsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTVRpbWViYXNlU2V0UmF0ZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlLCBG
bG9hdDY0IHJhdGUpLCAodGltZWJhc2UsIHJhdGUpLCBQQUxfRVhQT1JUKQpAQCAtMTQ0LDExICsx
NjQsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQnVmZmVyUXVldWVEZXF1ZXVlQW4KIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSwg
T1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclJlZiBidWZmZXIpLCAo
cXVldWUsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUlzRW1wdHksIEJvb2xl
YW4sIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1
ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlbUNvdW50LCAoQ01CdWZmZXJRdWV1ZVJlZiBx
dWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0Zv
clVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3MgKiwgKCksICgp
LCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBs
ZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiwgKCksICgpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01C
dWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBx
dWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2Vy
LCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25k
aXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbiog
dHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBjb25kaXRpb24sIHRp
bWUsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxU
cmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBx
dWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2FsbGJhY2ssIHZvaWQq
IHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIHRyaWdnZXJDb25k
aXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVyUXVldWVUcmlnZ2Vy
VG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxiYWNrLCB0cmlnZ2Vy
UmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0cmlnZ2VyVG9rZW5P
dXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhLCBPU1N0YXR1cywg
KENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVy
UXVldWVHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1
ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwg
Q0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5j
LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE2OCw0MCArMTkwLDM3IEBAIFNPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29y
ZU1lZGlhX2tDTVNhbXBsCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRl
Q2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRp
b25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNj
KSwgUEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSwgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91dFNpemUsIGNvbnN0IEF1ZGlvQ2hhbm5lbExheW91
dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29raWVTaXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tp
ZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJl
Ziogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFzYmQsIGxheW91dFNpemUsIGxheW91dCwgbWFnaWND
b29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5zaW9ucywgb3V0RGVzYyksIFBBTF9FWFBPUlQp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAo
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNj
LCBzaXplT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qLCAo
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3Qg
QXVkaW9Gb3JtYXRMaXN0SXRlbSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyks
IChkZXNjKSwgUEFMX0VYUE9SVCkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5Qmxv
Y2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0dXJlQWxsb2NhdG9yLCB2b2lkKiBt
ZW1vcnlCbG9jaywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFsbG9jYXRvclJlZiBibG9ja0FsbG9j
YXRvciwgY29uc3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNlKiBjdXN0b21CbG9ja1Nv
dXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIENNQmxvY2tCdWZm
ZXJGbGFncyBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc3RydWN0
dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5ndGgsIGJsb2NrQWxsb2NhdG9yLCBj
dXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBmbGFncywgYmxvY2tC
dWZmZXJPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0
V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZm
ZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90
IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJM
aXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCks
IFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWlu
ZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3Qq
IGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3RPdXQs
IHNpemVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRv
ciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENN
QmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVl
ZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRv
ciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNvcHlT
YW1wbGVCdWZmZXJGb3JSYW5nZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGUmFuZ2Ugc2FtcGxlUmFuZ2UsIENNU2FtcGxlQnVm
ZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2FtcGxlUmFuZ2UsIHNCdWZPdXQp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1
cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMs
IHNpemVfdCogc2l6ZUFycmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRl
ZE91dCksIChzYnVmLCBzaXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVu
dHJpZXNOZWVkZWRPdXQpLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNh
bXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZv
aWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBB
dWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uICpwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxl
QnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBt
YWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0
aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpLCBQ
QUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxp
c3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1
ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWlu
dDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVmLCBi
YnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlz
dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVm
ZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VE
YXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVh
ZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRl
bUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tl
dERlc2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVm
T3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2Fs
bGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVz
LCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZm
ZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50
IG51bVNhbXBsZXMsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGNvbnN0IEF1ZGlvU3Ry
ZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJS
ZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERlc2Ny
aXB0aW9uLCBudW1TYW1wbGVzLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIHBhY2tldERlc2NyaXB0
aW9ucywgc2FtcGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERh
dGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVm
IGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxp
c3QqIGJ1ZmZlckxpc3QpLCAoc2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgZmxhZ3MsIGJ1ZmZlckxpc3QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
U2V0RGF0YVJlYWR5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1Ziks
IFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBs
YXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBD
RkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBv
dXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tp
ZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNp
emVPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3RE
ZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYsIENNVGltZSBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCAoc2J1Ziwg
b3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgUEFMX0VYUE9SVCkKKwogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRI
b3N0VGltZUNsb2NrLCBDTUNsb2NrUmVmLCAodm9pZCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQ2xv
Y2tHZXRUaW1lLCBDTVRpbWUsIChDTUNsb2NrUmVmIGNsb2NrKSwgKGNsb2NrKSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cywgdWludDY0X3QsIChDTVRp
bWUgaG9zdFRpbWUpLCAoaG9zdFRpbWUpLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJD
YWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0
YXR1cyAoKiBDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKCBDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50IGluZGV4LCB2b2lkICpyZWZjb24pLCB2
b2lkICpyZWZjb24pLCAoc2J1ZiwgY2FsbGJhY2ssIHJlZmNvbiksIFBBTF9FWFBPUlQpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYsIE9TU3RhdHVzICheIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5k
bGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQpKSwgKHNidWYsIGhhbmRsZXIpLCBQ
QUxfRVhQT1JUKQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3Rl
Y3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IsIENGU3RyaW5n
UmVmLCBQQUxfRVhQT1JUKQotI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
T1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQqIHJlZmNvbiks
IHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF5DTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgaGFu
ZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBoYW5kbGVyKSwg
UEFMX0VYUE9SVCkKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiAqY2xv
Y2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11
bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwg
UEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWVNaW5pbXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGlt
ZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFp
bnNUaW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdl
LCB0aW1lKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3Is
IGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKIAotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUsIFBB
TF9FWFBPUlQpCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKE1BQykKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZp
Y2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9j
a091dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZTdHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2Nr
UmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRldmljZVVJRCwgY2xvY2tPdXQpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlLCB2b2lkKiwgKENNQmFzZU9iamVj
dFJlZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmFzZU9iamVj
dEdldFZUYWJsZSwgY29uc3QgQ01CYXNlVlRhYmxlKiwgKENNQmFzZU9iamVjdFJlZiBiYXNlT2Jq
ZWN0KSwgKGJhc2VPYmplY3QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRGVyaXZlZE9iamVjdENyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSog
dlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiogYmFzZU9iamVj
dCksIChhbGxvY2F0b3IsIHZUYWJsZSwgY2xhc3NJRCwgYmFzZU9iamVjdCksIFBBTF9FWFBPUlQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKaW5kZXgg
NzUyNWI5MTljNjk1ZDM2MDk3YjExMTAzMmI5NGY3NDdmMTUxZjFmMC4uNWRkNTVjOTVjOWQyMjgz
ZmRjNGM5YjY1Zjk2ZWFjNzcxNzY0ZjJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaApAQCAtNjMsMTIgKzYzLDE1IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm8sCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbyBzb2Z0
TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJEYXRh
SXNSZWFkeSwgQm9vbGVhbiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVm
aW5lIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxl
QnVmZmVyRGF0YUlzUmVhZHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGltZSB0aW1lLCBpbnQzMl90
IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9kKSwgKHRpbWUsIG5ld1Rp
bWVzY2FsZSwgbWV0aG9kKSkKLSNkZWZpbmUgQ01UaW1lQ29udmVydFNjYWxlIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVRpbWVDb252ZXJ0U2NhbGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZv
cm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRp
bWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50
cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBz
YW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlv
biwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXks
IG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91dCkp
CisjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUg
dGltZTIpLCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUgQ01UaW1lQWRkIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVRpbWVBZGQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVRpbWVDb21wYXJlLCBpbnQzMl90LCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIp
LCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUgQ01UaW1lQ29tcGFyZSBzb2Z0TGlua19Db3JlTWVk
aWFfQ01UaW1lQ29tcGFyZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMyX3Qg
bmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3VGlt
ZXNjYWxlLCBtZXRob2QpKQorI2RlZmluZSBDTVRpbWVDb252ZXJ0U2NhbGUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNVGltZUNvbnZlcnRTY2FsZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSks
ICh0aW1lKSkKICNkZWZpbmUgQ01UaW1lR2V0U2Vjb25kcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01U
aW1lR2V0U2Vjb25kcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFsdWUsIGludDMyX3QgdGltZXNjYWxl
KSwgKHZhbHVlLCB0aW1lc2NhbGUpKQpAQCAtODMsMzMgKzg2LDUyIEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZU1ha2UsIENNVGltZVJh
bmdlLCAoQ01UCiAjZGVmaW5lIENNVGltZVJhbmdlTWFrZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01U
aW1lUmFuZ2VNYWtlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01UaW1lUmFuZ2VFcXVhbCwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlMSwgQ01UaW1l
UmFuZ2UgcmFuZ2UyKSwgKHJhbmdlMSwgcmFuZ2UyKSkKICNkZWZpbmUgQ01UaW1lUmFuZ2VFcXVh
bCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lUmFuZ2VFcXVhbAorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGltZSwgKENNVGlt
ZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCisjZGVmaW5lIENNVGltZU1h
eGltdW0gc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1heGltdW0KK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNaW5pbXVtLCBDTVRpbWUsIChDTVRp
bWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorI2RlZmluZSBDTVRpbWVN
aW5pbXVtIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNaW5pbXVtCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUsIEJv
b2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFuZ2UsIHRpbWUpKQor
I2RlZmluZSBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
UmFuZ2VDb250YWluc1RpbWUKKworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTVRpbWVJbnZhbGlkLCBDTVRpbWUpCisjZGVmaW5lIGtDTVRpbWVJbnZhbGlk
IGdldF9Db3JlTWVkaWFfa0NNVGltZUludmFsaWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCisjZGVmaW5lIGtDTVRp
bWVaZXJvIGdldF9Db3JlTWVkaWFfa0NNVGltZVplcm8oKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5LCBDTVRpbWUp
CisjZGVmaW5lIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5IGdldF9Db3JlTWVkaWFfa0NNVGltZVBv
c2l0aXZlSW5maW5pdHkoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGltZVJhbmdlKTsKKyNkZWZpbmUga0NNVGlt
ZVJhbmdlSW52YWxpZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWVSYW5nZUludmFsaWQoKQorU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRl
LCBDTVRpbWUpCisjZGVmaW5lIGtDTVRpbWVJbmRlZmluaXRlIGdldF9Db3JlTWVkaWFfa0NNVGlt
ZUluZGVmaW5pdGUoKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRl
bnNpb25BdG9tcywgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21z
KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQ
cmltYXJpZXNfRENJX1AzIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQorI2RlZmluZSBr
Q01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBnZXRfQ29yZU1lZGlhX2tD
TUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzKCkKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9y
UHJpbWFyaWVzX0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9S
XzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29s
b3JQcmltYXJpZXNfUDNfRDY1LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUg
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNj
cmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0
aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRp
b25Db2xvclByaW1hcmllc19QM19ENjUoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZp
ZGVvLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9GdWxsUmFuZ2VWaWRlbygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5z
aW9uX0Z1bGxSYW5nZVZpZGVvIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fRnVsbFJhbmdlVmlkZW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8y
MDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRy
YW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9JVFVfUl8yMTAwX0hMRywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVf
Ul8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tD
TUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRygpCisjZGVm
aW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRyBn
ZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8y
MTAwX0hMRygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciwgQ0ZTdHJpbmdSZWYp
Ci0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFy
KCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBn
ZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIo
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fU01QVEVfU1RfMjA4NF9QUSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80Mjhf
MSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9T
VF80MjhfMSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9TTVBURV9TVF80MjhfMSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwLCBDRlN0
cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0
RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVf
Ul8yMDIwKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8y
MDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8y
MDIwKCkKKwogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmln
aW5hbEZvcm1hdCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCBnZXRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IsIENGU3RyaW5nUmVmKQot
I2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fc1JHQiBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
RXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkKKyNk
ZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpCisKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxp
Z25tZW50VHlwZV9FbmQsIENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01UZXh0TWFya3VwQWxpZ25t
ZW50VHlwZV9FbmQgZ2V0X0NvcmVNZWRpYV9rQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQo
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRN
YXJrdXBBbGlnbm1lbnRUeXBlX01pZGRsZSwgQ0ZTdHJpbmdSZWYpCkBAIC0xNDgsMTQgKzE3MCw2
IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0
VmVydGljYWxMYXlvdXRfTGVmdFRvUmlnaHQsCiAjZGVmaW5lIGtDTVRleHRWZXJ0aWNhbExheW91
dF9MZWZ0VG9SaWdodCBnZXRfQ29yZU1lZGlhX2tDTVRleHRWZXJ0aWNhbExheW91dF9MZWZ0VG9S
aWdodCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NN
VGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NN
VGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0IGdldF9Db3JlTWVkaWFfa0NNVGV4dFZlcnRp
Y2FsTGF5b3V0X1JpZ2h0VG9MZWZ0KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01UaW1lSW52YWxpZCwgQ01UaW1lKQotI2RlZmluZSBrQ01UaW1lSW52
YWxpZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbnZhbGlkKCkKLVNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lKQotI2RlZmluZSBr
Q01UaW1lWmVybyBQQUw6OmdldF9Db3JlTWVkaWFfa0NNVGltZVplcm8oKQotU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5
LCBDTVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5IGdldF9Db3JlTWVkaWFf
a0NNVGltZVBvc2l0aXZlSW5maW5pdHkoKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGltZVJhbmdlKTsKLSNkZWZp
bmUga0NNVGltZVJhbmdlSW52YWxpZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWVSYW5nZUludmFsaWQo
KQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKQEAgLTE2MywxOSArMTc3LDIxIEBAIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9u
R2V0TWVkaWFTdWJUeXBlCiAjZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1YlR5
cGUgc29mdExpbmtfQ29yZU1lZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1YlR5cGUK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERl
c2NyaXB0aW9uR2V0TWVkaWFUeXBlLCBDTU1lZGlhVHlwZSwgKENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlw
ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZQorCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRp
b25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCAo
dm9pZCksICgpKQogI2RlZmluZSBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENl
bnRlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9j
YWxDZW50ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9u
Q2VudGVyUmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2Fs
bGJhY2sgY2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2Jq
ZWN0LCBVSW50MzIgZmxhZ3MpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNh
dGlvbiwgb2JqZWN0LCBmbGFncykpCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlz
dGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVy
UmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sg
Y2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0KSwg
KGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCkpCiAjZGVm
aW5lIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlh
X0NNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwg
Qm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1h
a2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywg
Q01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJ
bmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMs
IGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91
dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVF
bnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQorCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIs
IEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBt
YWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0
RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMs
IENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5n
SW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVz
LCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZP
dXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxs
YmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMs
IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXpl
RW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVh
dGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYgKnNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwg
c2J1Ziwgc2J1ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVm
KiBzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
ckNyZWF0ZUNvcHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0
ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8g
KnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNvcHlPdXQpLCAoYWxs
b2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWlu
Z0FycmF5LCBzQnVmQ29weU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFs
U0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVU
aW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZDb3B5
T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBz
YW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZUNvcHlXaXRoTmV3VGltaW5nIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNy
ZWF0ZUNvcHlXaXRoTmV3VGltaW5nCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VC
dWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29u
c3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmICpz
QnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1w
bGVUaW1pbmcsIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVm
ZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0
IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1
Zk91dCksIChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxl
VGltaW5nLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJ
bWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdp
dGhJbWFnZUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBCb29sZWFu
IGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyog
c2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9j
YXRvciwgaW1hZ2VCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtl
RGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzYW1wbGVC
dWZmZXJPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyCkBAIC0x
OTMsMTkgKzIwOSwyMSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpbwogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFf
Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXksIENGQXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBC
b29sZWFuIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSkKICNk
ZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5IHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBD
TUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyAqdGltaW5n
QXJyYXlPdXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1
ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVz
TmVlZGVkT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2Ft
cGxlVGltaW5nSW5mbyogdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50KiB0aW1pbmdBcnJheUVu
dHJpZXNOZWVkZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91
dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUsIHNpemVfdCwg
KENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVy
R2V0VG90YWxTYW1wbGVTaXplIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFRv
dGFsU2FtcGxlU2l6ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmLCBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciksIChzYnVmLCBidWZmZXIpKQogI2Rl
ZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2Ft
cGxlQnVmZmVyU2V0RGF0YUJ1ZmZlcgorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01HZXRBdHRhY2htZW50LCBDRlR5cGVSZWYsIChDTUF0dGFjaG1lbnRC
ZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENNQXR0YWNobWVudE1vZGUqIGF0dGFj
aG1lbnRNb2RlT3V0KSwgKHRhcmdldCwga2V5LCBhdHRhY2htZW50TW9kZU91dCkpCiAjZGVmaW5l
IENNR2V0QXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01HZXRBdHRhY2htZW50CiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TZXRBdHRhY2htZW50
LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBD
RlR5cGVSZWYgdmFsdWUsIENNQXR0YWNobWVudE1vZGUgYXR0YWNobWVudE1vZGUpLCAodGFyZ2V0
LCBrZXksIHZhbHVlLCBhdHRhY2htZW50TW9kZSkpCiAjZGVmaW5lIENNU2V0QXR0YWNobWVudCBz
b2Z0TGlua19Db3JlTWVkaWFfQ01TZXRBdHRhY2htZW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01SZW1vdmVBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRh
Y2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5KSwgKHRhcmdldCwga2V5KSkK
ICNkZWZpbmUgQ01SZW1vdmVBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVJlbW92ZUF0
dGFjaG1lbnQKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiAqdGltZWJh
c2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQpKQorCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdp
dGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xv
Y2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwgKGFsbG9jYXRv
ciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKICNkZWZpbmUgQ01UaW1lYmFzZUNyZWF0ZVdp
dGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0
ZXJDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
VGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWVi
YXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdldFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGlt
ZWJhc2VHZXRUaW1lCkBAIC0yMjcsNyArMjQ1LDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG8K
ICNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVs
eSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0Zp
cmVJbW1lZGlhdGVseQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNVGltZUNvcHlBc0RpY3Rpb25hcnksIENGRGljdGlvbmFyeVJlZiwgKENNVGltZSB0aW1l
LCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAodGltZSwgYWxsb2NhdG9yKSkKICNkZWZpbmUg
Q01UaW1lQ29weUFzRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQ29weUFzRGlj
dGlvbmFyeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmICpvdXREZXNjKSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZm
ZXIsIG91dERlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1
cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZl
ciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgaW1h
Z2VCdWZmZXIsIG91dERlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zLCBDTVZp
ZGVvRGltZW5zaW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Rlc2MpLCAo
dmlkZW9EZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9u
cyBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9u
cwpAQCAtMjQ5LDIzICsyNjcsMjMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwgQ01JdGUKICNkZWZpbmUg
Q01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1
ZXVlR2V0QnVmZmVyQ291bnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGlt
ZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1
ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVm
ZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcAotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JV
bnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzICosICgpLCAoKSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1
ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNh
bGxiYWNrcyosICgpLCAoKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVu
c29ydGVkU2FtcGxlQnVmZmVycyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1l
U3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmlu
ZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxU
cmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVU
cmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdn
ZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJU
b2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBjb25kaXRp
b24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCkpCisjZGVmaW5lIENNQnVmZmVyUXVldWVJbnN0YWxs
VHJpZ2dlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2FsbGJh
Y2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIHRy
aWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVyUXVl
dWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxiYWNr
LCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0cmln
Z2VyVG9rZW5PdXQpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXJXaXRoSW50
ZWdlclRocmVzaG9sZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmln
Z2VyV2l0aEludGVnZXJUaHJlc2hvbGQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwgT1NTdGF0dXMsIChDTUJ1
ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZU1hcmtF
bmRPZkRhdGEgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkK
KyNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldER1cmF0aW9uIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1
ZmZlclF1ZXVlR2V0RHVyYXRpb24KIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBDRlN0cmlu
Z1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkgZ2V0X0Nv
cmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSgpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtl
eV9Ob3RTeW5jLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9O
b3RTeW5jIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jKCkKLVNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRh
Y2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTVNh
bXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5IGdldF9Db3JlTWVkaWFfa0NNU2Ft
cGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHkoKQotU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBl
bmRlZE9uQnlPdGhlcnMsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01TYW1wbGVBdHRhY2htZW50
S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQXR0YWNobWVu
dEtleV9Jc0RlcGVuZGVkT25CeU90aGVycygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9EaXNwbGF5RW1w
dHlNZWRpYUltbWVkaWF0ZWx5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudEtleV9EaXNwbGF5RW1wdHlNZWRpYUltbWVkaWF0ZWx5IGdldF9Db3JlTWVkaWFf
a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9EaXNwbGF5RW1wdHlNZWRpYUltbWVkaWF0ZWx5
KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1w
bGVCdWZmZXJBdHRhY2htZW50S2V5X0RyYWluQWZ0ZXJEZWNvZGluZywgQ0ZTdHJpbmdSZWYpCkBA
IC0yODAsMTAgKzI5OCwxMCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9TYW1wbAogI2RlZmluZSBrQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJlZmVyZW5jZUJ5dGVPZmZzZXQgZ2V0X0Nv
cmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJlZmVyZW5jZUJ5dGVP
ZmZzZXQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfU2FtcGxlUmVmZXJlbmNlVVJMLCBDRlN0cmluZ1Jl
ZikKICNkZWZpbmUga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9TYW1wbGVSZWZlcmVuY2VV
UkwgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJlZmVy
ZW5jZVVSTCgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
a0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIENGU3RyaW5nUmVm
KQotI2RlZmluZSBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCBn
ZXRfQ29yZU1lZGlhX2tDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2Vk
KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1l
YmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNVGlt
ZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWViYXNlTm90
aWZpY2F0aW9uX1RpbWVKdW1wZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBD
RlN0cmluZ1JlZikKKyNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRp
YXRlbHkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlh
dGVseSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NN
U2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycywgQ0ZTdHJpbmdSZWYpCisj
ZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMgZ2V0X0Nv
cmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzKCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVCdWZm
ZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgQ0ZTdHJpbmdSZWYpCiAjZGVm
aW5lIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkIGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29u
c3VtZWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIENG
U3RyaW5nUmVmKQpAQCAtMjkzLDcxICszMTEsNzQgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHUK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29yZU1l
ZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfVHJpbUR1cmF0aW9uQXRTdGFydCwgQ0ZT
dHJpbmdSZWYpCiAjZGVmaW5lIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVu
dEtleV9UcmltRHVyYXRpb25BdFN0YXJ0IGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0
YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0YXJ0KCkKIAorU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2
ZVJhdGVDaGFuZ2VkLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NNVGltZWJhc2VOb3RpZmljYXRp
b25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lYmFzZU5vdGlmaWNh
dGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZT
dHJpbmdSZWYpCisjZGVmaW5lIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQgZ2V0
X0NvcmVNZWRpYV9rQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkKCkKKworU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0
IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91dFNpemUsIGNv
bnN0IEF1ZGlvQ2hhbm5lbExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29raWVTaXplLCBj
b25zdCB2b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFzYmQsIGxheW91
dFNpemUsIGxheW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5zaW9ucywg
b3V0RGVzYykpCisjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IGRlc2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSkKICNkZWZpbmUgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChD
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25H
ZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAjZGVmaW5l
IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24gc29mdExp
bmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3Jp
cHRpb24KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBjb25zdCBBdWRp
b0Zvcm1hdExpc3RJdGVtKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRl
c2MpKQorI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxl
Rm9ybWF0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNo
ZXN0RGVjb2RhYmxlRm9ybWF0CisKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIHN0cnVjdHVyZUFsbG9jYXRvciwgdm9pZCogbWVtb3J5QmxvY2ssIHNp
emVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxvY2F0b3JSZWYgYmxvY2tBbGxvY2F0b3IsIGNvbnN0IENN
QmxvY2tCdWZmZXJDdXN0b21CbG9ja1NvdXJjZSogY3VzdG9tQmxvY2tTb3VyY2UsIHNpemVfdCBv
ZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBDTUJsb2NrQnVmZmVyRmxhZ3MgZmxhZ3Ms
IENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0KSwgKHN0cnVjdHVyZUFsbG9jYXRvciwg
bWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3RoLCBibG9ja0FsbG9jYXRvciwgY3VzdG9tQmxvY2tTb3Vy
Y2UsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKICNk
ZWZpbmUgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBzb2Z0TGlua19Db3JlTWVk
aWFfQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jawotU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJM
aXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpi
dWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZT
dHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQz
Ml90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZm
ZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZT
dHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91
dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0
dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QqIGJ1ZmZlckxpc3RTaXplTmVlZGVk
T3V0LCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0U2l6
ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1
Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2Nr
QnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0
LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRv
ciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRBdWRp
b0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01T
YW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcgogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0TnVtU2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNi
dWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMgc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3RE
ZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQotI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0CitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckFzc3VyZUJs
b2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1
ZmZlcikpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5CitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVy
LCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyLCBzaXplX3Qgb2Zmc2V0LCBz
aXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXplX3QqIHRvdGFsTGVuZ3RoT3V0LCBjaGFyKiog
ZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBvZmZzZXQsIGxlbmd0aEF0T2Zmc2V0T3V0LCB0
b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQpKQorI2RlZmluZSBDTUJsb2NrQnVmZmVyR2V0
RGF0YVBvaW50ZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRl
cgorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdlIHNhbXBsZVJhbmdl
LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNidWYsIHNhbXBsZVJh
bmdlLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9y
UmFuZ2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZv
clJhbmdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJS
ZWYgc2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlP
dXQsIENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVB
cnJheUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCkpCiAj
ZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5IHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheQogCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQ
YWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBD
TUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1
ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQgKm1h
a2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0
cmVhbVBhY2tldERlc2NyaXB0aW9uICpwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVy
UmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0
YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBu
dW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZm
ZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFk
eSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZv
cm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywg
Y29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBD
TVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFS
ZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVm
T3V0KSkKICNkZWZpbmUgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlw
dGlvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFj
a2V0RGVzY3JpcHRpb25zCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCwgT1NT
dGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0
QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBm
bGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYsIGJidWZTdHJ1
Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJMaXN0KSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxl
QnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBDTUZvcm1h
dERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVz
LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERl
c2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVC
dWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVt
U2FtcGxlcywgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNhbXBs
ZUJ1ZmZlck91dCkpCisjZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQ
YWNrZXREZXNjcmlwdGlvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVk
aW9CdWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2Nh
dG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxv
Y2F0b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3Qp
LCAoc2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3Ms
IGJ1ZmZlckxpc3QpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVk
aW9CdWZmZXJMaXN0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZm
ZXJGcm9tQXVkaW9CdWZmZXJMaXN0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRh
UmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5Ci1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwg
Y29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUs
IGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5
b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25z
LCBvdXREZXNjKSkKLSNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldE91dHB1
dFByZXNlbnRhdGlvblRpbWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBDTVRpbWUgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNidWYsIG91dHB1dFByZXNl
bnRhdGlvblRpbWVTdGFtcCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldE91dHB1
dFByZXNlbnRhdGlvblRpbWVTdGFtcAorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2b2lk
KSwgKCkpCi0jZGVmaW5lIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrICBzb2Z0TGlua19Db3JlTWVk
aWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sKKyNkZWZpbmUgQ01DbG9ja0dldEhvc3RUaW1lQ2xv
Y2sgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRIb3N0VGltZUNsb2NrCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldFRpbWUsIENNVGlt
ZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spKQotI2RlZmluZSBDTUNsb2NrR2V0VGltZSAg
c29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCisjZGVmaW5lIENNQ2xvY2tHZXRUaW1l
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0VGltZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVu
aXRzLCB1aW50NjRfdCwgKENNVGltZSBob3N0VGltZSksIChob3N0VGltZSkpCiAjZGVmaW5lIENN
Q2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUNs
b2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cwogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKiBDTVNBTVBMRUJV
RkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
ciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQgKnJlZmNvbiksIChzYnVm
LCBjYWxsYmFjaywgcmVmY29uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqQ01TQU1QTEVCVUZGRVJDQUxMX05PRVND
QVBFIGNhbGxiYWNrKShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50
IGluZGV4LCB2b2lkKiByZWZjb24pLCB2b2lkKiByZWZjb24pLCAoc2J1ZiwgY2FsbGJhY2ssIHJl
ZmNvbikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUgc29mdExpbmtf
Q29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0Zv
ckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMg
KF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVm
LCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2Ft
cGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICheQ01TQU1Q
TEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1D
b3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2Nr
Rm9yRWFjaFNhbXBsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tG
b3JFYWNoU2FtcGxlCiAKLSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKLQotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmKiBjbG9j
a091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSkKICNkZWZpbmUgQ01BdWRpb0Nsb2NrQ3JlYXRl
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvQ2xvY2tDcmVhdGUKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBDTVRpbWUsIChDTVRp
bWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQotI2RlZmluZSBDTVRpbWVN
YXhpbXVtIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNYXhpbXVtCi1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11bSwgQ01UaW1lLCAoQ01U
aW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKLSNkZWZpbmUgQ01UaW1l
TWluaW11bSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWluaW11bQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFpbnNUaW1lLCBC
b29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdlLCB0aW1lKSkK
LSNkZWZpbmUgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGlt
ZVJhbmdlQ29udGFpbnNUaW1lCiAKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQotI2RlZmluZSBrQ01UaW1lSW5k
ZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRlKCkKLQotI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFU
Rk9STShNQUMpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFs
bG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCkpCi0jZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9j
a0NyZWF0ZSAgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VD
bG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5n
UmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VV
SUQsIGNsb2NrT3V0KSkKKyNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwg
dm9pZCosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0KSkKLSNkZWZp
bmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UgUEFMOjpzb2Z0TGlua19Db3JlTWVkaWFf
Q01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UKKyNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVy
aXZlZFN0b3JhZ2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldERlcml2ZWRTdG9y
YWdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CYXNl
T2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01CYXNlT2JqZWN0UmVmIGJh
c2VPYmplY3QpLCAoYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9iamVjdEdldFZUYWJsZSBQ
QUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKKyNkZWZpbmUgQ01C
YXNlT2JqZWN0R2V0VlRhYmxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFi
bGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2
ZWRPYmplY3RDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25z
dCBDTUJhc2VWVGFibGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmpl
Y3RSZWYqIGJhc2VPYmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmpl
Y3QpKQotI2RlZmluZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgUEFMOjpzb2Z0TGlua19Db3JlTWVk
aWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCisjZGVmaW5lIENNRGVyaXZlZE9iamVjdENyZWF0ZSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCiAKICNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9U
b29sYm94U29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xi
b3hTb2Z0TGluay5jcHAKaW5kZXggZjUxY2JiYjE2NjYzYjgxZWNlMjAxZThhZDU3MjVjMjUxMjFm
NTZmYi4uNzJmNDExNGVlYWFkZjYyMGNlMzcwMjMwOTk0NzY2YjQ4Yzc5NWIxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAg
LTM0LDEzICszNCwxOSBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBWaWRlb1Rvb2xib3gsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBl
Y3RlZEZyYW1lUmF0ZSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFt
ZUludGVydmFsRHVyYXRpb24sIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRp
bWUsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRl
b1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsIENGU3Ry
aW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gs
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKIAog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVv
RW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rl
ciwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVv
VG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmlu
Z1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVs
X0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQz
Ml90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBl
bmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0
cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJl
c3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tS
ZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAo
YWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9u
LCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBv
dXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91
dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRD
b21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9u
U2Vzc2lvblJlZiBzZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVT
dGFtcCksIChzZXNzaW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNz
aW9uU2Vzc2lvbkVuY29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVm
IHNlc3Npb24sIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRp
b25UaW1lU3RhbXAsIENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVy
dGllcywgdm9pZCogc291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5mb0ZsYWdzKiBpbmZvRmxh
Z3NPdXQpLCAoc2Vzc2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVy
YXRpb24sIGZyYW1lUHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24sIGluZm9GbGFnc091dCkp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21w
cmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVz
c2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRh
dGUsIHZvaWQsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQog
CiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IFZpZGVvVG9vbGJveCwgVlRSZXN0cmljdFZpZGVvRGVjb2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRl
b0RlY29kZXJSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25GbGFncywgY29uc3QgQ01WaWRlb0NvZGVj
VHlwZSogYWxsb3dlZENvZGVjVHlwZUxpc3QsIENNSXRlbUNvdW50IGFsbG93ZWRDb2RlY1R5cGVD
b3VudCksIChyZXN0cmljdGlvbkZsYWdzLCBhbGxvd2VkQ29kZWNUeXBlTGlzdCwgYWxsb3dlZENv
ZGVjVHlwZUNvdW50KSwgUEFMX0VYUE9SVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCmluZGV4IGVjMGZmMDFjYzFmZTFhMjEwNmNjN2E3
ZjAyZThjODRiN2RkMGRhODQuLjYwYThmZjM3NDJkNDk2MTA3YjE0ZmFjN2M0MTM3M2FiYzZkNjk0
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29m
dExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRM
aW5rLmgKQEAgLTM3LDkgKzM3LDIwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtlCiAjZGVmaW5l
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uIGdl
dF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVy
dmFsRHVyYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rv
b2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQog
I2RlZmluZSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGdldF9WaWRlb1Rvb2xi
b3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSgpCitTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9BdmVyYWdlQml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfQXZlcmFnZUJpdFJhdGUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblBy
b3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZl
bCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmls
ZUxldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxl
TGV2ZWwoKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJv
eCwga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVk
VmlkZW9FbmNvZGVyLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9FbmNvZGVyU3BlY2lm
aWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyIGdldF9WaWRlb1Rv
b2xib3hfa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJh
dGVkVmlkZW9FbmNvZGVyKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlk
ZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3Ry
aW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwg
Z2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwo
KQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFBy
b2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga1ZU
UHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9m
aWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hF
QURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2
ZWwsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9M
ZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVs
KCkKKwogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwg
VlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBj
b2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9u
YXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJl
c3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxs
YmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVm
KiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2Rl
Y1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMs
IGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tS
ZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNz
aW9uQ3JlYXRlIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0
ZQpAQCAtNDksNiArNjAsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZp
ZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZQogI2RlZmluZSBWVENv
bXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXBy
ZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFt
ZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9u
KSkKICNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMgc29m
dExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJh
bWVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRD
b21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlLCB2b2lkLCAoVlRDb21wcmVzc2lvblNlc3Npb25S
ZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKKyNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25JbnZh
bGlkYXRlIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRh
dGUKIAogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rv
b2xib3gsIFZUUmVzdHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlkZW9EZWNvZGVy
UmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2RlY1R5cGUqIGFs
bG93ZWRDb2RlY1R5cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCAo
cmVzdHJpY3Rpb25GbGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRDb2RlY1R5cGVD
b3VudCkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFU
b29sYm94U29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRv
b2xib3hTb2Z0TGluay5jcHAKaW5kZXggNjc0ZTY0OTRhMGE4YjU5NjkwM2UzY2E1Y2ZiNmEyM2Rk
YWMzNjM4Yy4uZDQ0NDkzMWVmZDhhZTU1NjBiOGMxYjI3ZjIyYWQ5MmU3OTM0ODVlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGlu
ay5jcHAKQEAgLTQxLDYgKzQxLDEwIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91CiAKIFNPRlRf
TElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFU
b29sYm94LCBrTVRTdXBwb3J0Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQs
IENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lk
KiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0
U291cmNlQXVkaW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0
ZW1Db3VudCBudW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBN
VEF1ZGlvUHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5n
ZU91dCwgQ01JdGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZyYW1lcywg
YnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFj
a3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBN
VEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBm
bGFncywgdGFwT3V0KSwgUEFMX0VYUE9SVCkKKwogI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9S
RUFERVIpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
TWVkaWFUb29sYm94LCBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZT
dHJpbmdSZWYsIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKaW5kZXggYzdkZTAyY2U2M2MyYzMwMGQ5NjU0ZjY2
NzBiZmMxMjUwMjI5MzQ0ZS4uMjU1YTc2N2I1NWVlZjRlOGVlZDE5ZGVmMjk3MTc4NDkwYmU5M2Yx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hT
b2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94
U29mdExpbmsuaApAQCAtNDEsNiArNDEsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlM
X0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UX0dldFNob3VsZFBsYXlIRFJWaWQKIAog
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gs
IGtNVFN1cHBvcnROb3RpZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJp
bmdSZWYpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94
LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3Np
bmdUYXBSZWYgdGFwKSwgKHRhcCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3Rv
cmFnZSBzb2Z0TGlua19NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdl
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRp
b1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpi
dWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRp
bWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRh
cCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQs
IG51bWJlckZyYW1lc091dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNl
QXVkaW8gc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNl
QXVkaW8KK1NPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFU
b29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzKiBjYWxs
YmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1By
b2Nlc3NpbmdUYXBSZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRh
cE91dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlIHNvZnRMaW5rX01lZGlh
VG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZQorCiAjaWYgSEFWRShNVF9QTFVHSU5f
Rk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBNZWRp
YVRvb2xib3gsIGtNVFBsdWdpbkZvcm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmlu
Z1JlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDU1MjRlZWM1NTg3ZDFlOTE3MGVmOWYx
NDkyY2MwN2RlMjVjODBlYzcuLmM1NjJiZTc2MzVlYTZhMTU4NDA4MzNhYmMyZTE5MTAxMGNjMzE3
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzUwLDcgKzM1MCw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEb2N1bWVudCk7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFt
ZXNwYWNlIFdURjo6VW5pY29kZTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJl
Y3Vyc2lvbkRlcHRoID0gMjE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwCmluZGV4IDlmNTU2MDgwMmJhYzMyYmI0OTllYzk3YzliMGFlMzJlMTFjNjIxYzcuLjg1MGNk
ZTcyNzBmMGQ2MWRjMjU0NDljMWRhODlhNDlhMWFmNDM2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTENhbnZhc0VsZW1lbnQp
OwogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAog
Ly8gVGhlc2UgdmFsdWVzIGNvbWUgZnJvbSB0aGUgV2hhdFdHL1czQyBIVE1MIHNwZWMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwMDM1MjZmYzMxOWE5ZDFi
NmIwN2Q2OGIyYjQ2MmFjYTg1NDdmY2ZkLi43ZDNiMTMyMWU4YTcwZDBkMWU4ZGMzMTM1YTgxYWRj
YmU1ODAyNmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTE5MCw4ICsxOTAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChIVE1MTWVkaWFFbGVtZW50KTsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQog
c3RhdGljIGNvbnN0IFNlY29uZHMgU2Vla1JlcGVhdERlbGF5IHsgMTAwX21zIH07CiBzdGF0aWMg
Y29uc3QgZG91YmxlIFNlZWtUaW1lID0gMC4yOwogc3RhdGljIGNvbnN0IFNlY29uZHMgU2NhblJl
cGVhdERlbGF5IHsgMS41X3MgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcAppbmRleCBmZDNkM2Uw
M2EwM2YwODEwNTIxMjg2YmQwMjZhOTEwMTExZDNjYzg0Li41ZDU2YjllZTFhMGQzZDY3YTc5YzMw
NzYxZDEzODE1ZDdjMDY0NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCkBAIC0zNiwyNSAr
MzYsMTMgQEAKICNpbmNsdWRlICJBdWRpb0ZpbGVSZWFkZXIuaCIKICNpbmNsdWRlICJGbG9hdENv
bnZlcnNpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94
L0V4dGVuZGVkQXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5k
YXRpb24uaD4KKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNs
dWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0jaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19GUkFNRVdPUksoQXVk
aW9Ub29sYm94KQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xvc2UsIE9TU3Rh
dHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQotU09GVF9MSU5L
KEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9p
ZCAqaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxl
X1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1
bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQg
aW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRh
LCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywg
aW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBF
eHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlv
RmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRp
b0ZpbGVHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0Zp
bGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVy
dHlEYXRhU2l6ZSwgdm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblBy
b3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKLVNPRlRfTElO
SyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxl
UmVmIGluRXh0QXVkaW9GaWxlLCBVSW50MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxp
c3QgKmlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlvRGF0YSkpCi1T
T0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwgT1NTdGF0dXMs
IChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQg
aW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkICppblBy
b3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblByb3BlcnR5RGF0
YVNpemUsIGluUHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlv
RmlsZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9v
bGVhbiBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGlu
RmlsZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9U
b29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVmIGluVVJMLCBF
eHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0QXVkaW9GaWxl
KSkKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gQXVkaW9CdWZmZXJMaXN0KiB0cnlDcmVhdGVBdWRpb0J1ZmZlckxpc3Qoc2l6ZV90IG51
bWJlck9mQnVmZmVycykKQEAgLTEwMywyMiArOTEsMjIgQEAgQXVkaW9GaWxlUmVhZGVyOjpBdWRp
b0ZpbGVSZWFkZXIoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQogICAgIDogbV9k
YXRhKGRhdGEpCiAgICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewotICAgIGlmIChBdWRpb0Zp
bGVPcGVuV2l0aENhbGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAs
ICZtX2F1ZGlvRmlsZUlEKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpBdWRpb0ZpbGVPcGVuV2l0
aENhbGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAsICZtX2F1ZGlv
RmlsZUlEKSAhPSBub0VycikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEV4dEF1ZGlvRmls
ZVdyYXBBdWRpb0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0QXVkaW9GaWxlUmVm
KSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQobV9h
dWRpb0ZpbGVJRCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIpCiAgICAgICAg
IG1fZXh0QXVkaW9GaWxlUmVmID0gMDsKIH0KIAogQXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxl
UmVhZGVyKCkKIHsKICAgICBpZiAobV9leHRBdWRpb0ZpbGVSZWYpCi0gICAgICAgIEV4dEF1ZGlv
RmlsZURpc3Bvc2UobV9leHRBdWRpb0ZpbGVSZWYpOworICAgICAgICBQQUw6OkV4dEF1ZGlvRmls
ZURpc3Bvc2UobV9leHRBdWRpb0ZpbGVSZWYpOwogCiAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAw
OwogCiAgICAgaWYgKG1fYXVkaW9GaWxlSUQpCi0gICAgICAgIEF1ZGlvRmlsZUNsb3NlKG1fYXVk
aW9GaWxlSUQpOworICAgICAgICBQQUw6OkF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9GaWxlSUQpOwog
CiAgICAgbV9hdWRpb0ZpbGVJRCA9IDA7CiB9CkBAIC0xNTUsNyArMTQzLDcgQEAgUmVmUHRyPEF1
ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29s
IG1peFRvTW9ubykKIAogICAgIC8vIEdldCBmaWxlJ3MgZGF0YSBmb3JtYXQKICAgICBVSW50MzIg
c2l6ZSA9IHNpemVvZihtX2ZpbGVEYXRhRm9ybWF0KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0
UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlRGF0
YUZvcm1hdCwgJnNpemUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0VycikKKyAgICBpZiAoUEFM
OjpFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmls
ZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQpICE9IG5v
RXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHNpemVfdCBudW1iZXJPZkNoYW5u
ZWxzID0gbV9maWxlRGF0YUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKQEAgLTE2Myw3ICsxNTEs
NyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNh
bXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAgIC8vIE51bWJlciBvZiBmcmFtZXMKICAgICBT
SW50NjQgbnVtYmVyT2ZGcmFtZXM2NCA9IDA7CiAgICAgc2l6ZSA9IHNpemVvZihudW1iZXJPZkZy
YW1lczY0KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVS
ZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJl
ck9mRnJhbWVzNjQpICE9IG5vRXJyIHx8IG51bWJlck9mRnJhbWVzNjQgPD0gMCkKKyAgICBpZiAo
UEFMOjpFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlv
RmlsZVByb3BlcnR5X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkg
IT0gbm9FcnIgfHwgbnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIGRvdWJsZSBmaWxlU2FtcGxlUmF0ZSA9IG1fZmlsZURhdGFGb3JtYXQubVNhbXBs
ZVJhdGU7CkBAIC0xODUsNyArMTczLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFk
ZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKICAgICBpZiAo
c2FtcGxlUmF0ZSkKICAgICAgICAgbV9jbGllbnREYXRhRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2Ft
cGxlUmF0ZTsKIAotICAgIGlmIChFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmls
ZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikK
KyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwg
a0V4dEF1ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0VycikKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDaGFuZ2UgbnVtYmVyT2ZGcmFtZXM2NCB0byBk
ZXN0aW5hdGlvbiBzYW1wbGUtcmF0ZQpAQCAtMjQzLDcgKzIzMSw3IEBAIFJlZlB0cjxBdWRpb0J1
cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhU
b01vbm8pCiAKICAgICAvLyBSZWFkIGZyb20gdGhlIGZpbGUgKG9yIGluLW1lbW9yeSB2ZXJzaW9u
KQogICAgIFVJbnQzMiBmcmFtZXNUb1JlYWQgPSBudW1iZXJPZkZyYW1lczsKLSAgICBpZiAoRXh0
QXVkaW9GaWxlUmVhZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZyYW1lc1RvUmVhZCwgYnVmZmVyTGlz
dCkgIT0gbm9FcnIpIHsKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVkaW9G
aWxlUmVmLCAmZnJhbWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgewogICAgICAgICBk
ZXN0cm95QXVkaW9CdWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaAppbmRleCBiN2I5MTYzYjU2ZTI2YzI5Y2FiODRl
ZTI0NzY5ZTI5NzE0MTdhZmZjLi4wYmJiYmEyNzg1N2Q5NzllY2M2ODhmODdmMDMzOWY2NjVlZjQy
NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0ZpbGVSZWFkZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiAjaWYgRU5B
QkxFKFdFQl9BVURJTykKIAotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KLSNp
bmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KKyNpbmNsdWRlIDxDb3Jl
QXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK3VzaW5n
IEV4dEF1ZGlvRmlsZVJlZiA9IHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqOwordXNpbmcgQXVk
aW9GaWxlSUQgPSBzdHJ1Y3QgT3BhcXVlQXVkaW9GaWxlSUQqOworCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEF1ZGlvQnVzOwpAQCAtNTgsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGNv
bnN0IHZvaWQqIG1fZGF0YSA9IHsgbnVsbHB0ciB9OwogICAgIHNpemVfdCBtX2RhdGFTaXplID0g
eyAwIH07CiAKLSAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0geyAwIH07CisgICAgQXVk
aW9GaWxlSUQgbV9hdWRpb0ZpbGVJRCA9IHsgbnVsbHB0ciB9OwogICAgIEV4dEF1ZGlvRmlsZVJl
ZiBtX2V4dEF1ZGlvRmlsZVJlZiA9IHsgbnVsbHB0ciB9OwogCiAgICAgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uIG1fZmlsZURhdGFGb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3Bw
CmluZGV4IDQ3ODc1MDcyYTc4NmVkNjg2YzFkNDAxZTgyZTYyNTljYTIzYzU0YjYuLjE0OGIwNTVk
YmVjODk0M2VhNWFhYzY4ZTY4NThkZTdkMGI4MjMxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0
b3IuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCisjaW5j
bHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRp
b1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCkBAIC0zOSwxMiArNDEsMTIgQEAgQXVkaW9PdXRwdXRV
bml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVu
ZGVyZXIpCiBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcigp
CiB7CiAgICAgaWYgKG1fb3V0cHV0VW5pdCkKLSAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5j
ZURpc3Bvc2UobV9vdXRwdXRVbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3Rh
bmNlRGlzcG9zZShtX291dHB1dFVuaXQpOwogfQogCiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRB
ZGFwdG9yOjpzdGFydCgpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBBdWRpb091dHB1dFVuaXRTdGFy
dChtX291dHB1dFVuaXQpOworICAgIGF1dG8gcmVzdWx0ID0gUEFMOjpBdWRpb091dHB1dFVuaXRT
dGFydChtX291dHB1dFVuaXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCiAgICAgICAgIFdU
RkxvZ0Fsd2F5cygiRVJST1I6IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KCkgY2FsbCBmYWlsZWQgd2l0
aCBlcnJvciBjb2RlOiAlbGQiLCBzdGF0aWNfY2FzdDxsb25nPihyZXN1bHQpKTsKICAgICByZXR1
cm4gcmVzdWx0OwpAQCAtNTIsNyArNTQsNyBAQCBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFw
dG9yOjpzdGFydCgpCiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0b3AoKQog
ewotICAgIHJldHVybiBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7CisgICAgcmV0
dXJuIFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOwogfQogCiAvLyBEZWZh
dWx0T3V0cHV0VW5pdCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKaW5kZXggZmRm
Njc3NTdkMWI0Nzc2MDgwOGIxM2ZiNDM0ZTQwYjNkZmQzMGUwNC4uNGU5MDY0ZDBjNmU5MzA4OWFl
MGVhYTZmOTk4ZWNkNjUzNzM1ZDFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPEFjY2VsZXJh
dGUvQWNjZWxlcmF0ZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5o
PgorI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0
Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzIsNyArMjczLDcg
QEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1
ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKIAogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiBpbnB1dEZvcm1hdDsKICAgICBVSW50MzIgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihp
bnB1dEZvcm1hdCk7Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtB
dWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRh
U2l6ZSwgJmlucHV0Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
Y29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwg
JnByb3BlcnR5RGF0YVNpemUsICZpbnB1dEZvcm1hdCk7CiAgICAgQVNTRVJUKGZyYW1lQ291bnQg
PD0gc291cmNlLm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBpbnB1dEZvcm1hdC5tQnl0ZXNQ
ZXJQYWNrZXQpOwogCiAgICAgQXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ29udGV4dCBjb250ZXh0IHsg
c291cmNlLCBmcmFtZUNvdW50LCBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgfTsKQEAgLTI4
MCw3ICsyODEsNyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNv
bnN0IEF1ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2lmICFMT0dfRElTQUJMRUQK
ICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0Rm9ybWF0OwogICAgIHByb3Bl
cnR5RGF0YVNpemUgPSBzaXplb2Yob3V0cHV0Rm9ybWF0KTsKLSAgICBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURl
c2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7CisgICAgUEFMOjpB
dWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVu
dE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1h
dCk7CiAKICAgICBBU1NFUlQoQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG91dHB1dEZvcm1hdCku
bnVtYmVyT2ZDaGFubmVsU3RyZWFtcygpID09IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQoKSk7
CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IG1fYnVmZmVyTGlzdC0+YnVmZmVyQ291bnQo
KTsgKytpKSB7CkBAIC0yOTAsNyArMjkxLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJM
aXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNl
bmRpZgogCiAgICAgVUludDMyIHNhbXBsZXNDb252ZXJ0ZWQgPSBtX3NhbXBsZUNhcGFjaXR5Owot
ICAgIE9TU3RhdHVzIGVyciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIoY29udmVy
dGVyLCBhdWRpb0NvbnZlcnRlckZyb21BQkxDYWxsYmFjaywgJmNvbnRleHQsICZzYW1wbGVzQ29u
dmVydGVkLCBtX2J1ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0cik7CisgICAgT1NTdGF0dXMgZXJy
ID0gUEFMOjpBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRlciwgYXVkaW9D
b252ZXJ0ZXJGcm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZlcnRlZCwgbV9i
dWZmZXJMaXN0LT5saXN0KCksIG51bGxwdHIpOwogICAgIGlmICghZXJyIHx8IGVyciA9PSBrUmFu
T3V0T2ZJbnB1dERhdGFTdGF0dXMpIHsKICAgICAgICAgbV9zYW1wbGVDb3VudCA9IHNhbXBsZXND
b252ZXJ0ZWQ7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCmluZGV4
IGU1ZWM0Nzc3ODU4MWE3YWNmMGU3MjU1MzMzZjllMjY5NDFjNDcyZDEuLmQyYjVhYzQ1ZjMwZmQ0
YTNhZjUxYjQyMGRlMzc2NDliMTE1MWMyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KQEAg
LTQyLDcgKzQyLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogUmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gQXVkaW9TYW1wbGVEYXRhU291cmNl
OjpjcmVhdGUoc2l6ZV90IG1heGltdW1TYW1wbGVDb3VudCwgTG9nZ2VySGVscGVyJiBsb2dnZXJI
ZWxwZXIsIHNpemVfdCB3YWl0VG9TdGFydEZvclB1c2hDb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3Bw
CmluZGV4IDg5ZWNlZWQ2MWNiMTliZmQ3ZDQyMGM3NzhhYWExMjBhYzM1NmRiZmQuLjMwZGViMmU0
Yzc0MWRmNTQ4OGIzOGY1ZWQ1OWVlYmU1YTAyODliZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApA
QCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBXZWJBdWRpb0J1
ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGZvcm1hdCkKICAgICA6IG1fYnl0ZXNQZXJGcmFtZShmb3JtYXQuYnl0ZXNQZXJGcmFtZSgp
KQpAQCAtMTE2LDcgKzExNSw3IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZmZXJM
aXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBDCiAgICAgICAgIHJl
dHVybjsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAo
bm9FcnIgPT0gQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9j
a0J1ZmZlcihzYW1wbGVCdWZmZXIsIG51bGxwdHIsIG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9s
aXN0QnVmZmVyU2l6ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lz
dGVtRGVmYXVsdCwga0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZC
eXRlQWxpZ25tZW50LCAmYnVmZmVyKSkKKyAgICBpZiAobm9FcnIgPT0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZl
ciwgbnVsbHB0ciwgbV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZB
bGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1w
bGVCdWZmZXJGbGFnX0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZm
ZXIpKQogICAgICAgICBtX2Jsb2NrQnVmZmVyID0gYWRvcHRDRihidWZmZXIpOwogCiAgICAgcmVz
ZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRp
b091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAppbmRleCAyZTk2MzBmYjYwZjIyYjNl
ZTU2ZDI0MmQ3MzA0MzQ4NmI4N2I1NjJmLi5mODkxMDdmZmIxYzNmNTNiZTMxOWFhMzg2ODE0Nzc0
YmI0ZDI3YTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3Mv
QXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwCkBAIC0zMywxNSArMzMs
NyBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNp
bmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KLQot
U09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94
LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50
IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uICppbkRlc2MpLCAo
aW5Db21wb25lbnQsIGluRGVzYykpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBv
bmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBB
dWRpb0NvbXBvbmVudEluc3RhbmNlICpvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVudCwgb3V0SW5z
dGFuY2UpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0QWRkUHJvcGVydHlMaXN0
ZW5lciwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGlu
SUQsIEF1ZGlvVW5pdFByb3BlcnR5TGlzdGVuZXJQcm9jIGluUHJvYywgdm9pZCAqaW5Qcm9jVXNl
ckRhdGEpLCAoaW5Vbml0LCBpbklELCBpblByb2MsIGluUHJvY1VzZXJEYXRhKSkKLVNPRlRfTElO
SyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29w
ZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQgKm91dERhdGEsIFVJbnQzMiAqaW9E
YXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0RGF0YSwgaW9E
YXRhU2l6ZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBP
U1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQs
IEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29wZSwgQXVkaW9V
bml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQgKmluRGF0YSwgVUludDMyIGluRGF0YVNp
emUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwgaW5EYXRhU2l6
ZSkpCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNTgsMTUgKzUwLDE1IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRh
cHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVy
CiAgICAgZGVzYy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVy
X0FwcGxlOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50
RmxhZ3NNYXNrID0gMDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVz
Yyk7CisgICAgY29tcCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAK
ICAgICBBU1NFUlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9
IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAg
ICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBVSW50MzIgZmxhZyA9IDE7Ci0gICAgcmVzdWx0ID0g
QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LAorICAgIHJlc3VsdCA9IFBBTDo6QXVk
aW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LAogICAgICAgICBrQXVkaW9PdXRwdXRVbml0
UHJvcGVydHlfRW5hYmxlSU8sCiAgICAgICAgIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsCiAgICAg
ICAgIDAsCkBAIC03NCwyMCArNjYsMjAgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpj
b25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICAg
ICAgc2l6ZW9mKGZsYWcpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBB
dWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRp
b1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogICAg
IC8vIFNldCByZW5kZXIgY2FsbGJhY2sKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0
OwogICAgIGlucHV0LmlucHV0UHJvYyA9IGlucHV0UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NS
ZWZDb24gPSB0aGlzOwotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0
VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2Nv
cGVfSW5wdXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpB
dWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRS
ZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmaW5wdXQsIHNpemVvZihp
bnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCBzdHJlYW0gZm9ybWF0
CiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbUZvcm1hdDsKIAogICAgIFVJ
bnQzMiBzaXplID0gc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbik7Ci0gICAgcmVz
dWx0ID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVy
dHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVh
bUZvcm1hdCwgJnNpemUpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHko
bV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0
U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOwogICAgIEFTU0VS
VCghcmVzdWx0KTsKIAogICAgIGNvbnN0ZXhwciBpbnQgYnl0ZXNQZXJGbG9hdCA9IHNpemVvZihG
bG9hdDMyKTsKQEAgLTEwMSw3ICs5Myw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6
Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAg
c3RyZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsK
ICAgICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUgKiBieXRlc1Bl
ckZsb2F0OwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQs
IDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1
dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBBdWRpb1Nlc3Npb246OnNoYXJl
ZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtQcmVmZXJyZWRCdWZmZXJTaXplKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1
dFVuaXRBZGFwdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcAppbmRleCBjOGVkM2VmNzhjOGM2YTNiMWUwNzBj
YjQ0MDU5NjlhZGE0YWMzZGEyLi43MTRjY2U4ODYyNTc1MTg2MWQ1ZTJiODUxMzEzYTg5ZDA0MTJl
YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9P
dXRwdXRVbml0QWRhcHRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAK
ICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJl
Lmg+CisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDgsMjEgKzQ5LDIxIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRh
cHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVy
CiAgICAgZGVzYy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFudWZhY3R1cmVy
X0FwcGxlOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2MuY29tcG9uZW50
RmxhZ3NNYXNrID0gMDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVz
Yyk7CisgICAgY29tcCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAmZGVzYyk7CiAK
ICAgICBBU1NFUlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVzIHJlc3VsdCA9
IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKICAg
ICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1f
b3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0
cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgLy8gU2V0IHJlbmRlciBjYWxs
YmFjawogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQ
cm9jID0gaW5wdXRQcm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAg
cmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJv
cGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1
dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0
eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1
ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKICAgICBBU1NF
UlQoIXJlc3VsdCk7CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdApAQCAtNzksNyArODAsNyBA
QCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNh
bXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1hdC5tQ2hhbm5lbHNQZXJG
cmFtZSA9IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFtRm9ybWF0Lm1CaXRzUGVy
Q2hhbm5lbCA9IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAotICAgIHJlc3VsdCA9IEF1
ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVh
bUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwg
c2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAgIHJlc3VsdCA9IFBBTDo6
QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3Ry
ZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0
LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAgICAgQVNTRVJUKCFyZXN1
bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRp
YVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxp
dGllcy5jcHAKaW5kZXggYTUzMzMyY2Y3ZGJkNjQ2NmY0NGY1NzZkMWNkN2FkZTc2MTUwYWE0Zi4u
Nzg0NzRkOGU1YTVhYzA3MDM1MzM1OTkwY2RkZjhhZmNkODA1NjE5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMzMsMTMgKzMz
LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQog
UmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBt
YWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llKQogewogICAgIGF1dG8gYmFz
aWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
bio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CiAgICAg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3Ig
PSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFz
aWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwg
bnVsbHB0ciwgJmZvcm1hdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAs
IG51bGxwdHIsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIsICZmb3JtYXQp
OwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtNTUsMTQgKzUzLDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3Jl
YXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0g
bnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQ
YWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51
bGxwdHIsIG51bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIs
ICZzYW1wbGVCdWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZm
ZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxw
dHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0
aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAg
TE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlv
bnMgZmFpbGVkIC0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
ICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKIAotICAgIGVycm9yID0g
Q01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0
KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0
PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBlcnJvciA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCks
IGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdl
YkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAg
ICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBs
aXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmNwcAppbmRleCA1N2NmMjlkMGQ3N2U2Nzg4OWJkY2VmZDQwNTg1MTI5ZWQxMmE0NTU1Li42NGUz
MGJjMjkzY2E4ZjkzODg0ODhmMTQ4ODUwNmM1N2JlMGE1MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC00
MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCiB7CkBAIC05MCw3ICs4OSw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRp
YVNhbXBsZSYgc2FtcGxlCiB7CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5
cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7CiAKLSAgICBhdXRvIGlt
YWdlQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1T
YW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCku
c2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZTogQ01T
YW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlciByZXR1cm5lZCBudWxscHRyIik7CiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLm1tCmluZGV4IDk4MzliMzcwYTcxM2I3YzFkMjNkODQ3ZmE4NjUwNWQ1YWU5NzlhYjIu
LmRmZjRmYTRlZGYyNjRiNDUyYmY4ZGE3YWZhZWY0Y2JkN2EwMjdiMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTQ2LDIyICs0Niwx
MyBAQAogI2ltcG9ydCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjZW5kaWYKIAorI2ltcG9y
dCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1l
ZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5o
PgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKLVNPRlRfTElOS19GUkFNRVdP
UksoQXVkaW9Ub29sYm94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRl
ckNvbnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVk
aW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJM
aXN0KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVk
aW9Db252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0
YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMs
IChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlv
Q29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0
aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQotCi1TT0ZUX0xJTksoTWVkaWFUb29s
Ym94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nl
c3NpbmdUYXBSZWYgdGFwKSwgKHRhcCkpCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94LCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5n
VGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1
ZmZlckxpc3RJbk91dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGlt
ZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFw
LCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwg
bnVtYmVyRnJhbWVzT3V0KSkKLVNPRlRfTElOS19NQVlfRkFJTChNZWRpYVRvb2xib3gsIE1UQXVk
aW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MgKmNhbGxiYWNrcywgTVRBdWRp
b1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJl
ZiAqdGFwT3V0KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNpbXBv
cnQgPHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiBzdGF0aWMgY29uc3QgZG91YmxlIGtSaW5nQnVm
ZmVyRHVyYXRpb24gPSAxOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6VGFw
U3RvcmFnZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6VGFwU3RvcmFnZT4gewpAQCAtNzMsNyArNjQsNyBAQCBwdWJsaWM6CiAKIFJlZlB0
cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OmNyZWF0ZShBVlBsYXllckl0ZW0gKml0ZW0pCiB7Ci0gICAgaWYgKCFjYW5Mb2FkTVRBdWRpb1By
b2Nlc3NpbmdUYXBDcmVhdGUoKSkKKyAgICBpZiAoIVBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hf
TVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoaXRlbSkp
OwogfQpAQCAtMTUyLDcgKzE0Myw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgbV9y
ZWFkQ291bnQgKz0gZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAg
ICAgICBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgp
LCBmcmFtZXNUb1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAg
UEFMOjpBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgp
LCBmcmFtZXNUb1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKIH0KIAogdm9p
ZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlk
ZXJDbGllbnQqIGNsaWVudCkKQEAgLTIyNSw3ICsyMTYsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRlZCgpCiAgICAgfTsKIAogICAgIE1UQXVkaW9Q
cm9jZXNzaW5nVGFwUmVmIHRhcCA9IG51bGxwdHI7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRB
dWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywg
MSwgJnRhcCk7CisgICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKICAgICBp
ZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIGlmICh0YXApCiAgICAgICAgICAgICBDRlJl
bGVhc2UodGFwKTsKQEAgLTI1OCwxNCArMjQ5LDE0IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OmluaXRDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIHZvaWQq
CiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpmaW5hbGl6ZUNhbGxiYWNrKE1UQXVk
aW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9y
YWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNz
aW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3Rh
dGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdl
KHRhcCkpOwogICAgIHRhcFN0b3JhZ2UtPmRlcmVmKCk7CiB9CiAKIHZvaWQgQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0
YXAsIENNSXRlbUNvdW50IG1heEZyYW1lcywgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uICpwcm9jZXNzaW5nRm9ybWF0KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3Jh
Z2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3Np
bmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0
aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2Uo
dGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9OwogCkBAIC0y
NzYsNyArMjY3LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZUNh
bGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ00KIHZvaWQgQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVm
IHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0g
c3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0
YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFn
ZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgTG9j
a2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjg3LDcgKzI3OCw3IEBAIHZv
aWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Q
cm9jZXNzaW5nVGFwUmVmIHRhcCkKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnBy
b2Nlc3NDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51
bWJlckZyYW1lcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyBmbGFncywgQXVkaW9CdWZmZXJM
aXN0ICpidWZmZXJMaXN0SW5PdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQsIE1UQXVk
aW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0KQogewogICAgIEFTU0VSVCh0YXApOwotICAg
IFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRp
b1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3Jh
Z2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdl
dFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9
OwogCkBAIC0zMTcsNyArMzA4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cHJlcGFyZShDTUl0ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEKIAogICAgIGlm
ICgqbV90YXBEZXNjcmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBB
dWRpb0NvbnZlcnRlclJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0Nv
bnZlcnRlck5ldyhtX3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdl
dCgpLCAmb3V0Q29udmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlck5ldyhtX3Rh
cERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVy
dGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0z
NTcsNyArMzQ4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2VzcyhN
VEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW4KICAgICAKICAgICBDTUl0ZW1D
b3VudCBpdGVtQ291bnQgPSAwOwogICAgIENNVGltZVJhbmdlIHJhbmdlT3V0OwotICAgIE9TU3Rh
dHVzIHN0YXR1cyA9IE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1i
ZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNv
dW50KTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0
U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091
dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8ICFp
dGVtQ291bnQpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
MzA1YjNkMjdlMzQyZjk4NzIxMTJmMTE3NGMxNGZmNGYzYzYwODU1ZC4uNTMyOWYxZDlkM2FlYTdj
NTRkMzM2NmMzMmFkMWE2MDM4YTc5ZWIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0y
MzIsNyArMjMyLDYgQEAgc3RydWN0IExvZ0FyZ3VtZW50PEFWUGxheWVyVGltZUNvbnRyb2xTdGF0
dXM+IHsKIH07IC8vIG5hbWVzcGFjZSBXVEYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIE5TQXJyYXkgKmFzc2V0TWV0YWRhdGFLZXlOYW1lcygp
Owogc3RhdGljIE5TQXJyYXkgKml0ZW1LVk9Qcm9wZXJ0aWVzKCk7CkBAIC01NzIsNyArNTcxLDYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVDb250ZXh0
VmlkZW9SZW5kZXJlcigpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKQogewotICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAg
ICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAoIW1fYXZBc3NldCB8fCBtX2lt
YWdlR2VuZXJhdG9yKQpAQCAtNTgyLDggKzU4MCw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKQogCiAgICAgW21faW1hZ2VH
ZW5lcmF0b3IuZ2V0KCkgc2V0QXBlcnR1cmVNb2RlOkFWQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0
dXJlTW9kZUNsZWFuQXBlcnR1cmVdOwogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldEFw
cGxpZXNQcmVmZXJyZWRUcmFja1RyYW5zZm9ybTpZRVNdOwotICAgIFttX2ltYWdlR2VuZXJhdG9y
LmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZvcmU6a0NNVGltZVplcm9dOwotICAg
IFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VBZnRlcjpr
Q01UaW1lWmVyb107CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGlt
ZVRvbGVyYW5jZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKKyAgICBbbV9pbWFnZUdlbmVyYXRv
ci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01UaW1lWmVyb107
CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveUNv
bnRleHRWaWRlb1JlbmRlcmVyKCkKQEAgLTY3MSw3ICs2NjksNyBAQCBNZWRpYVRpbWUgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlKCkgY29uc3QKICAgICBp
ZiAoIWRhdGUpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CiAKLSAg
ICBkb3VibGUgY3VycmVudFRpbWUgPSBDTVRpbWVHZXRTZWNvbmRzKFttX2F2UGxheWVySXRlbSBj
dXJyZW50VGltZV0pICogMTAwMDsKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBQQUw6OkNNVGlt
ZUdldFNlY29uZHMoW21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAwOwogCiAgICAg
Ly8gUm91bmRpbmcgZHVlIHRvIHNlY29uZCBvZmZzZXQgZXJyb3Igd2hlbiBzdWJ0cmFjdGluZy4K
ICAgICByZXR1cm4gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKHJvdW5kKGRhdGUgLSBjdXJy
ZW50VGltZSkpOwpAQCAtMTA4OSw3ICsxMDg3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiAKICAgICBBU1NFUlQoIW1fY3VycmVu
dFRpbWVPYnNlcnZlcik7CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsK
LSAgICBtX2N1cnJlbnRUaW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRQZXJpb2RpY1RpbWVP
YnNlcnZlckZvckludGVydmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vha1RoaXNdIChDTVRpbWUgdGltZSkgeworICAgIG1f
Y3VycmVudFRpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVy
Rm9ySW50ZXJ2YWw6UEFMOjpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpIHVzaW5nQmxvY2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRpbWUpIHsKICAgICAgICAg
aWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPmN1cnJlbnRNZWRpYVRpbWVEaWRD
aGFuZ2UoUEFMOjp0b01lZGlhVGltZSh0aW1lKSk7CiAgICAgfV07CkBAIC0xNDIzLDcgKzE0MjEs
NyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3VycmVu
dE1lZGlhVGltZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7
CiAKICAgICBpZiAoIW1fd2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGltZSkKLSAgICAgICAgY3Vy
cmVudE1lZGlhVGltZURpZENoYW5nZSh0b01lZGlhVGltZShbbV9hdlBsYXllckl0ZW0uZ2V0KCkg
Y3VycmVudFRpbWVdKSk7CisgICAgICAgIGN1cnJlbnRNZWRpYVRpbWVEaWRDaGFuZ2UoUEFMOjp0
b01lZGlhVGltZShbbV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVdKSk7CiAgICAgQVNT
RVJUKG1fd2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGltZSk7CiAKICAgICBhdXRvIGl0ZW1UaW1l
ID0gbV9jYWNoZWRDdXJyZW50TWVkaWFUaW1lOwpAQCAtMTQ2OCw4ICsxNDY2LDggQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZWVrVG9UaW1lKGNvbnN0IE1lZGlh
VGltZSYgdGltZSwgY29uc3QKICAgICBDTVRpbWUgY21BZnRlciA9IFBBTDo6dG9DTVRpbWUocG9z
aXRpdmVUb2xlcmFuY2UpOwogCiAgICAgLy8gW0FWUGxheWVySXRlbSBzZWVrVG9UaW1lXSB3aWxs
IHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0b2xlcmFuY2VCZWZvcmUgaXMgbmVnYXRpdmUuCi0gICAg
aWYgKENNVGltZUNvbXBhcmUoY21CZWZvcmUsIGtDTVRpbWVaZXJvKSA8IDApCi0gICAgICAgIGNt
QmVmb3JlID0ga0NNVGltZVplcm87CisgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShjbUJlZm9y
ZSwgUEFMOjprQ01UaW1lWmVybykgPCAwKQorICAgICAgICBjbUJlZm9yZSA9IFBBTDo6a0NNVGlt
ZVplcm87CiAgICAgCiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKIApA
QCAtMTU4Niw2ICsxNTg0LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpzZXRQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0oTWVkaWFQbGF5ZXIKIAogc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMoKSBjb25zdAogeworICAgIHVzaW5nIG5h
bWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAgIGF1dG8gdGlt
ZVJhbmdlcyA9IG1ha2VVbmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwogCiAgICAgaWYgKCFt
X2F2UGxheWVySXRlbSkKQEAgLTE1OTQsMTMgKzE1OTQsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxh
dGZvcm0KICAgICBmb3IgKE5TVmFsdWUgKnRoaXNSYW5nZVZhbHVlIGluIG1fY2FjaGVkTG9hZGVk
UmFuZ2VzLmdldCgpKSB7CiAgICAgICAgIENNVGltZVJhbmdlIHRpbWVSYW5nZSA9IFt0aGlzUmFu
Z2VWYWx1ZSBDTVRpbWVSYW5nZVZhbHVlXTsKICAgICAgICAgaWYgKENNVElNRVJBTkdFX0lTX1ZB
TElEKHRpbWVSYW5nZSkgJiYgIUNNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5nZSkpCi0gICAg
ICAgICAgICB0aW1lUmFuZ2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQp
LCBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKKyAgICAg
ICAgICAgIHRpbWVSYW5nZXMtPmFkZChQQUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCks
IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CiAg
ICAgfQogICAgIHJldHVybiB0aW1lUmFuZ2VzOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAog
eworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4K
KwogICAgIGlmICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyB8fCAhW21fY2FjaGVkU2Vla2FibGVS
YW5nZXMgY291bnRdKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCkBA
IC0xNjIxLDYgKzE2MjMsOCBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUo
KSBjb25zdAogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9J
U19FTVBUWS4KKwogICAgIGlmICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcykKICAgICAgICAgbV9j
YWNoZWRTZWVrYWJsZVJhbmdlcyA9IFttX2F2UGxheWVySXRlbSBzZWVrYWJsZVRpbWVSYW5nZXNd
OwogCkBAIC0xNjMzLDcgKzE2MzcsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAogICAgICAgICBp
ZiAoIUNNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1Q
VFkodGltZVJhbmdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAg
TWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5k
KHRpbWVSYW5nZSkpOworICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRp
YVRpbWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1h
eFRpbWVTZWVrYWJsZSA8IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBtYXhUaW1lU2Vla2FibGUg
PSBlbmRPZlJhbmdlOwogICAgIH0KQEAgLTE2NDIsNiArMTY0Niw4IEBAIE1lZGlhVGltZSBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgp
IGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpw
bGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7
IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAgIGlmICghbV9jYWNoZWRMb2FkZWRS
YW5nZXMpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKQEAgLTE2NTEs
NyArMTY1Nyw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgICAgICBpZiAoIUNNVElNRVJBTkdF
X0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVkaWFUaW1lIGVuZE9m
UmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpOwor
ICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRp
bWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRpbWVMb2FkZWQgPCBl
bmRPZlJhbmdlKQogICAgICAgICAgICAgbWF4VGltZUxvYWRlZCA9IGVuZE9mUmFuZ2U7CiAgICAg
fQpAQCAtMTgwMyw3ICsxODA5LDcgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmUKICAgICBNb25v
dG9uaWNUaW1lIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBbbV9pbWFnZUdl
bmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5zaXplKCkpXTsKLSAgICBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2ltYWdlR2VuZXJhdG9y
LmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDAp
IGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBy
YXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRp
bWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxUaW1lOm5pbCBl
cnJvcjpuaWxdKTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBhZG9wdENGKENH
SW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCksIHNSR0JDb2xvclNw
YWNlUmVmKCkpKTsKIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjcmVhdGluZyBpbWFn
ZSB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkpOwpAQCAt
MTk4OSw3ICsxOTk1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpkaWRTdG9wTG9hZGluZ1JlcXVlc3QoQVZBc3NldFJlc291cmNlTG8KIAogYm9vbCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjppc0F2YWlsYWJsZSgpCiB7Ci0gICAgcmV0dXJu
IFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBpc0NvcmVNZWRpYUZy
YW1ld29ya0F2YWlsYWJsZSgpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3
b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOwog
fQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWVkaWFU
aW1lRm9yVGltZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVlKSBjb25zdApAQCAtMjkw
MSw3ICsyOTA3LDcgQEAgc3RhdGljIE5TU3RyaW5nICpleGVybmFsRGV2aWNlRGlzcGxheU5hbWVG
b3JQbGF5ZXIoQVZQbGF5ZXIgKnBsYXllcikKICAgICBpZiAoIVBBTDo6aXNBVkZvdW5kYXRpb25G
cmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIGlmIChhdXRv
IGNvbnRleHQgPSBPdXRwdXRDb250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENv
bnRleHQoKSkKKyAgICBpZiAoYXV0byBjb250ZXh0ID0gUEFMOjpPdXRwdXRDb250ZXh0OjpzaGFy
ZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIGNvbnRl
eHQtPmRldmljZU5hbWUoKTsKIAogICAgIGlmIChwbGF5ZXIuZXh0ZXJuYWxQbGF5YmFja1R5cGUg
IT0gQVZQbGF5ZXJFeHRlcm5hbFBsYXliYWNrVHlwZUFpclBsYXkpCkBAIC0zMjM1LDkgKzMyNDEs
OSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhR3Jv
dXBEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPAogICAgICAgICBmb3IgKEFWTWV0YWRhdGFJdGVt
ICppdGVtIGluIGdyb3VwLml0ZW1zKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8QVZNdXRhYmxl
TWV0YWRhdGFJdGVtPiBpdGVtQ29weSA9IGFkb3B0TlMoW2l0ZW0gbXV0YWJsZUNvcHldKTsKICAg
ICAgICAgICAgIGlmICghQ01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgpLnRpbWUpKQotICAg
ICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLnRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHMo
Z3JvdXBTdGFydFRpbWUsIE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7CisgICAgICAgICAg
ICAgICAgaXRlbUNvcHkuZ2V0KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGdy
b3VwU3RhcnRUaW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwogICAgICAgICAgICAg
aWYgKCFDTVRJTUVfSVNfVkFMSUQoaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24pKQotICAgICAgICAg
ICAgICAgIGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7
CisgICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24gPSBQQUw6OnRvQ01UaW1l
KGdyb3VwRHVyYXRpb24pOwogICAgICAgICAgICAgW2dyb3VwQ29weSBhZGRPYmplY3Q6aXRlbUNv
cHkuZ2V0KCldOwogICAgICAgICB9CiAKQEAgLTMyNzksNyArMzI4NSw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUoY29uc3QgUmV0
YWluUHRyPE5TQXJyCiAKICAgICAgICAgTWVkaWFUaW1lIGVuZCA9IE1lZGlhVGltZTo6cG9zaXRp
dmVJbmZpbml0ZVRpbWUoKTsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGl0ZW0uZHVyYXRpb247
Ci0gICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIENNVGltZUdldFNlY29u
ZHMoZHVyYXRpb24pID4gMC4wMDEpCisgICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRp
b24pICYmIFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkKICAgICAgICAg
ICAgIGVuZCA9IHN0YXJ0ICsgUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7CiAKICAgICAgICAg
QXRvbVN0cmluZyB0eXBlID0gbnVsbEF0b20oKTsKQEAgLTM0NTgsNyArMzQ2NCw3IEBAIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGlt
ZShXVEY6OkZ1bmN0aW9uPHZvCiAgICAgaWYgKG1fdGltZU9ic2VydmVyKQogICAgICAgICBbbV9h
dlBsYXllciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV90aW1lT2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAg
bV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRp
bWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAgbV90aW1lT2JzZXJ2ZXIg
PSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUg
dmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7CiAgICAgfV07CiAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNWE2OWFhNjc5
NTE4OWNiNGUwNzZkMzE5NDY5Zjk5NjUwNGZmOTQ2Yy4uNzNhZGViOWJiNzNhNzgyOGRmNWEzZjQ4
NGM1ZjkwZTMzM2QyNDFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNjYsNyAr
NjYsNiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KE5T
VVJMICopc3RvcmFnZURpcmVjdG9yeTsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNp
bmcgbmFtZXNwYWNlIFBBTDsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0YXRlIGVudW1lcmF0aW9u
VmFsdWUpCiB7CkBAIC0xMTYsMTUgKzExNSwxNSBAQCBzdGF0aWMgdm9pZCBDTVRpbWViYXNlRWZm
ZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgY29ucwog
CiB2b2lkIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3AoQ01UaW1lYmFzZVJlZiB0
aW1lYmFzZSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IENNTm90aWZpY2F0
aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50
ZXJSZW1vdmVMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVDaGFuZ2Vk
Q2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0
aW1lYmFzZSk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZp
Y2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFMOjpDTU5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0
ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVS
YXRlQ2hhbmdlZCwgdGltZWJhc2UpOwogfQogCiBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVy
OjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQyYgY2xpZW50LCBDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAgIDogbV9jbGll
bnQobWFrZVdlYWtQdHIoY2xpZW50KSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBu
YyA9IENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01O
b3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2
ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJh
dGVDaGFuZ2VkLCB0aW1lYmFzZSwgMCk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMg
PSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAg
UEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNl
RWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlv
bl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwogfQogCiBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQyhNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMTU3LDcgKzE1Niw3IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDKE1lZGlhCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hyb25pemVyIGZp
cmVkIGZvciAiLCB0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywg
IiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CisgICAgICAgIERFQlVHX0xPRyhsb2dT
aXRlSWRlbnRpZmllciwgInN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFMOjp0b01lZGlhVGlt
ZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9w
ZW5kaW5nU2Vlayk7CiAKICAgICAgICAgaWYgKG1fc2Vla2luZyAmJiAhbV9wZW5kaW5nU2Vlaykg
ewogICAgICAgICAgICAgbV9zZWVraW5nID0gZmFsc2U7CkBAIC0yMzgsMTEgKzIzNywxMSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKICAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlv
bkZyYW1ld29ya0F2YWlsYWJsZSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZh
aWxhYmxlKCkKLSAgICAgICAgJiYgZ2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKQotICAgICAg
ICAmJiBnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCi0gICAgICAgICYmIGdl
dEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQotICAgICAgICAmJiBjbGFz
c19nZXRJbnN0YW5jZU1ldGhvZChnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygp
LCBAc2VsZWN0b3Ioc2V0TXV0ZWQ6KSk7CisgICAgICAgICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFt
ZXdvcmtBdmFpbGFibGUoKQorICAgICAgICAmJiBQQUw6OmdldEFWU3RyZWFtRGF0YVBhcnNlckNs
YXNzKCkKKyAgICAgICAgJiYgUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFz
cygpCisgICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJvbml6ZXJD
bGFzcygpCisgICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFBBTDo6Z2V0QVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11dGVkOikpOwogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKQpA
QCAtNDE3LDcgKzQxNiw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OmR1cmF0aW9uTWVkaWFUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiB7
Ci0gICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGlt
ZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBNZWRpYVRpbWUg
c3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNlR2V0VGlt
ZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUg
PCBNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9U
aW1lKCk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBtX2xhc3RTZWVrVGltZSkKQEAgLTQz
MCw3ICs0MjksNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
c2V0Q3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhNZWRpYQogICAgIG1fY3VycmVudFRpbWVE
aWRDaGFuZ2VDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAgICAgaWYgKG1fY3VycmVu
dFRpbWVEaWRDaGFuZ2VDYWxsYmFjaykgewotICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIg
PSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpDTVRp
bWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6
XihDTVRpbWUgdGltZSkgeworICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIgPSBbbV9zeW5j
aHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1h
a2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENN
VGltZSB0aW1lKSB7CiAgICAgICAgICAgICBpZiAobV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxi
YWNrKQogICAgICAgICAgICAgICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhDTVRJ
TUVfSVNfTlVNRVJJQyh0aW1lKSA/IFBBTDo6dG9NZWRpYVRpbWUodGltZSkgOiBNZWRpYVRpbWU6
Onplcm9UaW1lKCkpOwogICAgICAgICB9XTsKQEAgLTQ4Miw3ICs0ODEsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFsKCkKICAgICBpZiAo
bV9sYXN0U2Vla1RpbWUuaGFzRG91YmxlVmFsdWUoKSkKICAgICAgICAgbV9sYXN0U2Vla1RpbWUg
PSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUobV9sYXN0U2Vla1RpbWUudG9Eb3VibGUoKSwg
TWVkaWFUaW1lOjpEZWZhdWx0VGltZVNjYWxlKTsKIAotICAgIE1lZGlhVGltZSBzeW5jaHJvbml6
ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6
ZXIgdGltZWJhc2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNl
XSkpOwogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJzZWVrVGltZSA9ICIsIG1fbGFzdFNl
ZWtUaW1lLCAiLCBzeW5jaHJvbml6ZXJUaW1lID0gIiwgc3luY2hyb25pemVyVGltZSk7CiAKICAg
ICBib29sIGRvZXNOb3RSZXF1aXJlU2VlayA9IHN5bmNocm9uaXplclRpbWUgPT0gbV9sYXN0U2Vl
a1RpbWU7CkBAIC01OTksNyArNTk4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAgaWYgKG1fdmlkZW9PdXRw
dXQpIHsKICAgICAgICAgQ01UaW1lIG91dHB1dFRpbWU7CiAgICAgICAgIGlmIChhdXRvIHBpeGVs
QnVmZmVyID0gYWRvcHRDRihbbV92aWRlb091dHB1dCBjb3B5UGl4ZWxCdWZmZXJGb3JTb3VyY2VU
aW1lOnRvQ01UaW1lKGN1cnJlbnRNZWRpYVRpbWUoKSkgc291cmNlVGltZUZvckRpc3BsYXk6Jm91
dHB1dFRpbWVdKSkgewotICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIm5ldyBw
aXhlbGJ1ZmZlciBmb3VuZCBmb3IgdGltZSAiLCB0b01lZGlhVGltZShvdXRwdXRUaW1lKSk7Cisg
ICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVmZmVyIGZvdW5k
IGZvciB0aW1lICIsIFBBTDo6dG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOwogICAgICAgICAgICAg
bV9sYXN0UGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CkBAIC04MDksNyArODA4LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigpCiAgICAgaWYgKCFtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ01UaW1lIGN1
cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7
CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5j
aHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3ZlUmVuZGVyZXI6
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhD
b21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAg
LTEwMTgsNyArMTAxNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpmbHVzaFBlbmRpbmdTaXplQ2hhbmdlcygpCiAjaWYgSEFWRShBVlNUUkVBTVNFU1NJT04p
CiBBVlN0cmVhbVNlc3Npb24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
c3RyZWFtU2Vzc2lvbigpCiB7Ci0gICAgaWYgKCFnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIHx8
ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVj
dG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkKKyAgICBpZiAo
IVBBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0QVZTdHJlYW1TZXNz
aW9uQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhT
dG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBpZiAo
IW1fc3RyZWFtU2Vzc2lvbikgewpAQCAtMTIxNyw3ICsxMjE2LDcgQEAgQUxMT1dfTkVXX0FQSV9X
SVRIT1VUX0dVQVJEU19FTkQKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGltZSBjdXJyZW50VGlt
ZSA9IENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOworICAgIENN
VGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVy
IHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRlcmVyOmF1ZGlvUmVu
ZGVyZXIgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewog
ICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAgLTEzMDEsNyArMTMwMCw3IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1l
KFdURjo6RnVuY3Rpb248CiAgICAgaWYgKG1fcGVyZm9ybVRhc2tPYnNlcnZlcikKICAgICAgICAg
W21fc3luY2hyb25pemVyIHJlbW92ZVRpbWVPYnNlcnZlcjptX3BlcmZvcm1UYXNrT2JzZXJ2ZXIu
Z2V0KCldOwogCi0gICAgbV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFk
ZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6
dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxv
Y2s6XnsKKyAgICBtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkQm91
bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTpQQUw6
OnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Js
b2NrOl57CiAgICAgICAgIHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGUxYWQxMDJiYjk4MWJmMzc0ZTZiZDkzN2MwYzZl
MmE4N2Y0MGYxNWYuLjU1YjUwMGM1N2U5M2ViYmE0OTZhZTc0MTZmZDVkZjc4ZDdiOTQ1OGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJMb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXIuaCIKICNpbXBv
cnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2
YXRlLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCkBAIC0xMjEsNyArMTIy
LDYgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGgg
b2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMKQEAgLTIxMCw3ICsyMTAsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBpc0FWRm91bmRhdGlvbkZy
YW1ld29ya0F2YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYg
Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpOworICAgIHJldHVybiBQQUw6Omlz
QVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1l
d29ya0F2YWlsYWJsZSgpICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFz
cygpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0
U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4m
IHR5cGVzKQpAQCAtMjMwLDcgKzIzMCw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uCiBzdGF0
aWMgaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3JtYXRpb25NYXRyaXgoTWVk
aWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIg
PSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXI7Ci0gICAgQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+
KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIpKTsKICAgICBzaXpl
X3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwogICAgIHNpemVf
dCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKICAgICBpZiAo
IXdpZHRoIHx8ICFoZWlnaHQpCkBAIC05NjAsNyArOTYwLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCkKICAgICBp
ZiAoIW1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQogICAgICAgICByZXR1cm47
CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4o
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+
cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVs
QnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldEltYWdlQnVmZmVyKG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBs
ZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIG1faW1hZ2VQYWludGVyLmNnSW1hZ2Ug
PSBOYXRpdmVJbWFnZTo6Y3JlYXRlKG1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVy
LT5jcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXggMmY0OTgzODc2NWQz
Yzk0NDFiNjliYjk1MThiM2IxZjlhODc5NTA5Yi4uYzBmMTNkNmVhNWM5NzU3NjdjZThmNjJhYjY4
NDJkN2Q2ZjBmYmI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZG
T2JqQy5tbQpAQCAtMzYsOSArMzYsMTIgQEAKICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgi
CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKLQotV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBF
cXVpdmFsZW50IHRvIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOwor
Ly8gTmVlZGVkIGR1ZSB0byByZXF1aXJlbWVudCBvZiBzcGVjaWZ5aW5nIHRoZSBQQUwgbmFtZXNw
YWNlLgordGVtcGxhdGUgPD4KK3N0cnVjdCBXVEY6OkNGVHlwZVRyYWl0PENNU2FtcGxlQnVmZmVy
UmVmPiB7CisgICAgc3RhdGljIGlubGluZSBDRlR5cGVJRCB0eXBlSUQodm9pZCkgeyByZXR1cm4g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCgpOyB9Cit9OwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTY3LDM1ICs3MCwzNSBAQCBSZWZQdHI8TWVkaWFTYW1wbGVBVkZPYmpDPiBNZWRp
YVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFBpeGVsQnVmZmVyJiYgcAogICAgIEFT
U0VSVF9VTlVTRUQoc3RhdHVzLCAhc3RhdHVzKTsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvblJhdyA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0gQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uUmF3KTsKKyAgICBz
dGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVy
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlw
dGlvblJhdyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8gZm9ybWF0RGVzY3JpcHRp
b24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0aW9uUmF3KTsKIAotICAgIENNU2FtcGxlVGltaW5n
SW5mbyBzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiA9IHsga0NNVGltZUludmFsaWQsIGtDTVRpbWVJ
bnZhbGlkLCBrQ01UaW1lSW52YWxpZCB9OworICAgIENNU2FtcGxlVGltaW5nSW5mbyBzYW1wbGVU
aW1pbmdJbmZvcm1hdGlvbiA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjprQ01UaW1lSW52
YWxpZCwgUEFMOjprQ01UaW1lSW52YWxpZCB9OwogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZUJ1ZmZlclJhdyA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdl
dCgpLCBmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9ybWF0aW9uLCAm
c2FtcGxlQnVmZmVyUmF3KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRl
UmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5n
ZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiwg
JnNhbXBsZUJ1ZmZlclJhdyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8gc2FtcGxl
QnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXJSYXcpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRh
Y2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNh
bXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVm
ZmVyLmdldCgpLCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0gQ0ZBcnJh
eUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBD
Rk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0
YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJh
eSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2Ft
cGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKKyAg
ICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0
YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiAg
ICAgcmV0dXJuIGNyZWF0ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOwogfQogCiBNZWRpYVRpbWUgTWVk
aWFTYW1wbGVBVkZPYmpDOjpwcmVzZW50YXRpb25UaW1lKCkgY29uc3QKIHsKLSAgICBhdXRvIHRp
bWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1f
c2FtcGxlLmdldCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChD
TVRJTUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQotICAgICAgICB0aW1lU3RhbXAgPSBDTVNhbXBs
ZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAgICAg
IHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
bV9zYW1wbGUuZ2V0KCkpOwogICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCk7
CiB9CiAKIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUoKSBjb25zdAog
ewotICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAo
bV9zYW1wbGUuZ2V0KCkpOworICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldERlY29kZVRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKENNVElNRV9JU19J
TlZBTElEKHRpbWVTdGFtcCkpCiAgICAgICAgIHJldHVybiBwcmVzZW50YXRpb25UaW1lKCk7CiAg
ICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUodGltZVN0YW1wKTsKQEAgLTEwMywxNSArMTA2LDE1
IEBAIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUoKSBjb25zdAogCiBN
ZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkdXJhdGlvbigpIGNvbnN0CiB7Ci0gICAgYXV0
byBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24obV9zYW1wbGUuZ2V0
KCkpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVy
YXRpb24obV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRChkdXJhdGlv
bikpCi0gICAgICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3NhbXBs
ZS5nZXQoKSk7CisgICAgICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0
aW9uKG1fc2FtcGxlLmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZShkdXJhdGlv
bik7CiB9CiAKIHNpemVfdCBNZWRpYVNhbXBsZUFWRk9iakM6OnNpemVJbkJ5dGVzKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUobV9zYW1wbGUu
Z2V0KCkpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXpl
KG1fc2FtcGxlLmdldCgpKTsKIH0KIAogUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1wbGVBVkZPYmpD
OjpwbGF0Zm9ybVNhbXBsZSgpCkBAIC0xMjIsMjMgKzEyNSwyMyBAQCBQbGF0Zm9ybVNhbXBsZSBN
ZWRpYVNhbXBsZUFWRk9iakM6OnBsYXRmb3JtU2FtcGxlKCkKIAogdWludDMyX3QgTWVkaWFTYW1w
bGVBVkZPYmpDOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKIHsKLSAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNf
Y2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIo
bV9zYW1wbGUuZ2V0KCkpKTsKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0
VHlwZShwaXhlbEJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJBdHRh
Y2htZW50UmFuZG9tQWNjZXNzKENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCkKIHsKLSAg
ICByZXR1cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBrQ01TYW1w
bGVBdHRhY2htZW50S2V5X05vdFN5bmMpOworICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5Q29udGFp
bnNLZXkoYXR0YWNobWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5j
KTsKIH0KIAogc3RhdGljIGJvb2wgZG9lc0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZSkKIHsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRTYW1w
bGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIHJldHVybiBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKIH0KIAog
c3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGUpCiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVm
IGF0dGFjaG1lbnRzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJy
YXkoc2FtcGxlLCBmYWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgCkBAIC0xNTEsMTIgKzE1NCwxMiBAQCBzdGF0aWMgYm9vbCBpc0NNU2FtcGxl
QnVmZmVyUmFuZG9tQWNjZXNzKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIAogc3RhdGljIGJv
b2wgaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKENGRGljdGlvbmFyeVJl
ZiBhdHRhY2htZW50RGljdCkKIHsKLSAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXko
YXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKKyAg
ICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIFBBTDo6a0NN
U2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NN
U2FtcGxlQnVmZmVyTm9uRGlzcGxheWluZyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiB7Ci0g
ICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxz
ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApA
QCAtMTg2LDExICsxODksMTEgQEAgTWVkaWFTYW1wbGU6OlNhbXBsZUZsYWdzIE1lZGlhU2FtcGxl
QVZGT2JqQzo6ZmxhZ3MoKSBjb25zdAogCiBGbG9hdFNpemUgTWVkaWFTYW1wbGVBVkZPYmpDOjpw
cmVzZW50YXRpb25TaXplKCkgY29uc3QKIHsKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZv
cm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3Nh
bXBsZS5nZXQoKSk7Ci0gICAgaWYgKENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9y
bWF0RGVzY3JpcHRpb24pICE9IGtDTU1lZGlhVHlwZV9WaWRlbykKKyAgICBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICBpZiAoUEFMOjpDTUZvcm1hdERlc2Ny
aXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVfVmlk
ZW8pCiAgICAgICAgIHJldHVybiBGbG9hdFNpemUoKTsKICAgICAKLSAgICByZXR1cm4gRmxvYXRT
aXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9y
bWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKFBBTDo6
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXRE
ZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwogfQogCiB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6
ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdApAQCAtMjAxLDEyICsyMDQsMTIgQEAgdm9pZCBN
ZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHZvaWQgTWVk
aWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZz
ZXQpCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBpZiAobm9FcnIgIT0g
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAs
IG51bGxwdHIsICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAm
aXRlbUNvdW50KSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFZlY3RvcjxDTVNhbXBsZVRp
bWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVt
Q291bnQpOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgp
LCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJy
YXkuZGF0YSgpLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGZvciAoYXV0
byYgdGltaW5nIDogdGltaW5nSW5mb0FycmF5KSB7CkBAIC0yMTUsNyArMjE4LDcgQEAgdm9pZCBN
ZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmIG9m
ZnNldCkKICAgICB9CiAgICAgCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3U2FtcGxlOwotICAg
IGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJh
eS5kYXRhKCksICZuZXdTYW1wbGUpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUu
Z2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCiAg
ICAgICAgIHJldHVybjsKICAgICAKICAgICBtX3NhbXBsZSA9IGFkb3B0Q0YobmV3U2FtcGxlKTsK
QEAgLTIyNCwxMiArMjI3LDEyIEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRUaW1l
c3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiB2b2lkIE1lZGlhU2FtcGxlQVZGT2Jq
Qzo6c2V0VGltZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0
YW1wLCBjb25zdCBXVEY6Ok1lZGlhVGltZSAmZGVjb2RlVGltZXN0YW1wKQogewogICAgIENNSXRl
bUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCAmaXRlbUNv
dW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCiAgICAg
ICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJ
bmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBpZiAo
bm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUu
Z2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAg
aWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
bV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0
cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWluZyA6IHRpbWlu
Z0luZm9BcnJheSkgewpAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpD
OjpzZXRUaW1lc3RhbXBzKGNvbnN0IFdURjo6TWVkaWFUaW1lICZwcmVzZW50YXRpb25UaW1lc3Rh
CiAgICAgfQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBpZiAo
bm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0
YSgpLCAmbmV3U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgp
LCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBAIC0y
NDYsMTAgKzI0OSwxMCBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyhj
b25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogCiBib29sIE1lZGlhU2Ft
cGxlQVZGT2JqQzo6aXNEaXZpc2FibGUoKSBjb25zdAogewotICAgIGlmIChDTVNhbXBsZUJ1ZmZl
ckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpID09IDEpCisgICAgaWYgKFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAxKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkobV9z
YW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09IGtDTVNhbXBsZUJ1ZmZlckVycm9y
X0J1ZmZlckhhc05vU2FtcGxlU2l6ZXMpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVTaXplQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09IGtD
TVNhbXBsZUJ1ZmZlckVycm9yX0J1ZmZlckhhc05vU2FtcGxlU2l6ZXMpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtMjYyLDE3ICsyNjUsMTcgQEAgc3RkOjpw
YWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2FtcGxl
QVZGT2JqQzo6ZGl2aWRlKGMKIAogICAgIENGSW5kZXggc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlv
blRpbWUgPSAwOwogCi0gICAgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1f
c2FtcGxlLmdldCgpLCBbJl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVt
Q291bnQpIC0+IE9TU3RhdHVzIHsKLSAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1
ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOworICAgIFBB
TDo6Q01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2FtcGxlLmdldCgpLCBb
Jl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQpIC0+IE9TU3Rh
dHVzIHsKKyAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0
cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CiAgICAgICAgIGlmIChDTVRJ
TUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQotICAgICAgICAgICAgdGltZVN0YW1wID0gQ01TYW1w
bGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICAgICAg
ICAgIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3Rh
bXAoc2FtcGxlQnVmZmVyKTsKIAogICAgICAgICBpZiAodXNlRW5kVGltZSA9PSBVc2VFbmRUaW1l
OjpVc2UpIHsKLSAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldE91
dHB1dER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CiAgICAg
ICAgICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAgICAgICAgICAgICAg
IGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOworICAg
ICAgICAgICAgICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNh
bXBsZUJ1ZmZlcik7CiAKLSAgICAgICAgICAgIGlmIChQQUw6OnRvTWVkaWFUaW1lKENNVGltZUFk
ZCh0aW1lU3RhbXAsIGR1cmF0aW9uKSkgPiBwcmVzZW50YXRpb25UaW1lKQorICAgICAgICAgICAg
aWYgKFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVBZGQodGltZVN0YW1wLCBkdXJhdGlvbikp
ID4gcHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAg
fSBlbHNlIGlmIChQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCkgPj0gcHJlc2VudGF0aW9uVGlt
ZSkKICAgICAgICAgICAgIHJldHVybiAxOwpAQCAtMjgzLDE5ICsyODYsMTkgQEAgc3RkOjpwYWly
PFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlhU2FtcGxlQVZG
T2JqQzo6ZGl2aWRlKGMKICAgICBpZiAoIXNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lKQog
ICAgICAgICByZXR1cm4geyBudWxscHRyLCB0aGlzIH07CiAKLSAgICBDTUl0ZW1Db3VudCBzYW1w
bGVDb3VudCA9IENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSk7Cisg
ICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0TnVtU2Ft
cGxlcyhtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25U
aW1lID49IHNhbXBsZUNvdW50KQogICAgICAgICByZXR1cm4geyB0aGlzLCBudWxscHRyIH07CiAK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVCZWZvcmUgPSBudWxscHRyOwogICAgIENG
UmFuZ2UgcmFuZ2VCZWZvcmUgPSBDRlJhbmdlTWFrZSgwLCBzYW1wbGVzQmVmb3JlUHJlc2VudGF0
aW9uVGltZSk7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9yZSwgJnJhd1Nh
bXBsZUJlZm9yZSkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5U2Ft
cGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJh
bmdlQmVmb3JlLCAmcmF3U2FtcGxlQmVmb3JlKSAhPSBub0VycikKICAgICAgICAgcmV0dXJuIHsg
bnVsbHB0ciwgbnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2Ft
cGxlQmVmb3JlID0gYWRvcHRDRihyYXdTYW1wbGVCZWZvcmUpOwogCiAgICAgQ01TYW1wbGVCdWZm
ZXJSZWYgcmF3U2FtcGxlQWZ0ZXIgPSBudWxscHRyOwogICAgIENGUmFuZ2UgcmFuZ2VBZnRlciA9
IENGUmFuZ2VNYWtlKHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lLCBzYW1wbGVDb3VudCAt
IHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lKTsKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJD
b3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0
KCksIHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6
Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIp
CiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IHNhbXBsZUFmdGVyID0gYWRvcHRDRihyYXdTYW1wbGVBZnRlcik7CiAK
QEAgLTMwNSwxMyArMzA4LDEzIEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1wbGU+LCBSZWZQ
dHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZShjCiBSZWY8TWVkaWFT
YW1wbGU+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlTm9uRGlzcGxheWluZ0NvcHkoKSBjb25z
dAogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlciA9IDA7Ci0gICAgQ01T
YW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgp
LCAmbmV3U2FtcGxlQnVmZmVyKTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7CiAg
ICAgQVNTRVJUKG5ld1NhbXBsZUJ1ZmZlcik7CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRz
QXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxl
QnVmZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShuZXdTYW1wbGVCdWZmZXIsIHRy
dWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3VudChhdHRhY2ht
ZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0YWNo
bWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgIENGRGljdGlvbmFy
eVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxh
eSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2ht
ZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwga0NGQm9vbGVh
blRydWUpOwogICAgIH0KIAogICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShh
ZG9wdENGKG5ld1NhbXBsZUJ1ZmZlcikuZ2V0KCksIG1faWQpOwpAQCAtMzI2LDcgKzMyOSw3IEBA
IFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9iakM6OmdldFJH
QkFJbWFnZURhdGEoKSBjb25zdAogICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGNvbmZvcm1lck9w
dGlvbnMuZ2V0KCksIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBpbWFnZUZvcm1h
dE51bWJlci5nZXQoKSk7CiAgICAgUGl4ZWxCdWZmZXJDb25mb3JtZXJDViBwaXhlbEJ1ZmZlckNv
bmZvcm1lcihjb25mb3JtZXJPcHRpb25zLmdldCgpKTsKIAotICAgIGF1dG8gcGl4ZWxCdWZmZXIg
PSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVm
ZmVyKG1fc2FtcGxlLmdldCgpKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0
PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3Nh
bXBsZS5nZXQoKSkpOwogICAgIGF1dG8gcmdiYVBpeGVsQnVmZmVyID0gcGl4ZWxCdWZmZXJDb25m
b3JtZXIuY29udmVydChwaXhlbEJ1ZmZlcik7CiAgICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVm
ZmVyTG9ja0Jhc2VBZGRyZXNzKHJnYmFQaXhlbEJ1ZmZlci5nZXQoKSwga0NWUGl4ZWxCdWZmZXJM
b2NrX1JlYWRPbmx5KTsKICAgICBBU1NFUlQoc3RhdHVzID09IG5vRXJyKTsKQEAgLTM0MywxMCAr
MzQ2LDEwIEBAIFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9i
akM6OmdldFJHQkFJbWFnZURhdGEoKSBjb25zdAogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0U2Ft
cGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVm
ZmVyKQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENGQXJy
YXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAw
OyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsKICAgICAgICAg
Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11
dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJy
YXksIGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNh
bXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7Cisg
ICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0
dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQog
fQogCkBAIC0zNTcsNyArMzYwLDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldEFzRGlz
cGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAKIGJvb2wgTWVkaWFTYW1wbGVB
VkZPYmpDOjppc0hvbW9nZW5lb3VzKCkgY29uc3QKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1w
bGUuZ2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0
cnVlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CkBAIC0zODUsNyArMzg4LDcgQEAgVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PiBNZWRp
YVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMKIHsKICAgICB1c2lu
ZyBTYW1wbGVWZWN0b3IgPSBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+OwogCi0gICAg
Q0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFj
aG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJh
eShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQogICAg
ICAgICByZXR1cm4gU2FtcGxlVmVjdG9yOjpmcm9tKG1ha2VSZWYoKnRoaXMpKTsKIApAQCAtNDE4
LDcgKzQyMSw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiAgICAgc2FtcGxlcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHJhbmdlcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgcmFuZ2UgOiBy
YW5nZXMpIHsKICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlID0gbnVsbHB0cjsK
LSAgICAgICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1NhbXBsZSkgIT0gbm9F
cnIgfHwgIXJhd1NhbXBsZSkKKyAgICAgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5U2Ft
cGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJh
bmdlLCAmcmF3U2FtcGxlKSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQogICAgICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICAgICAgc2FtcGxlcy51bmNoZWNrZWRBcHBlbmQoTWVkaWFTYW1wbGVBVkZP
YmpDOjpjcmVhdGUoYWRvcHRDRihyYXdTYW1wbGUpLmdldCgpLCBtX2lkKSk7CiAgICAgfQpAQCAt
NDMyLDI0ICs0MzUsMjQgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBNZWRpYVNhbXBs
ZUFWRk9iakM6OmNsb25lU2FtcGxlQnVmZmVyQW5kU2V0QXNEaXNwbGEKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb24gPSBudWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIs
ICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBp
eGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIGF1dG8gcmV0YWluZWRGb3JtYXREZXNjcmlwdGlvbiA9IGFk
b3B0Q0YoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0g
MDsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShz
YW1wbGUsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAmaXRl
bUNvdW50KTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJ
bmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXku
ZGF0YSgpLCBudWxscHRyKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0
YSgpLCBudWxscHRyKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlcjsKLSAgICBzdGF0dXMgPSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgJm5ld1NhbXBsZUJ1ZmZlcik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVy
LCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZUJ1
ZmZlcik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0K
aW5kZXggMGI5YmI2NDg1ZjNlOWUyNTM0NWFhZDRmNGU0NzA5MmM0MjlhNWNjOC4uMDIxOTIxNmQ3
YzJkODhlZjU3NzUyNmQ4ODIzMGMzZTUwM2ZkOGNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTI1OCw3ICsyNTgs
NiBAQCAtICh2b2lkKWF1ZGlvUmVuZGVyZXJXYXNBdXRvbWF0aWNhbGx5Rmx1c2hlZDooTlNOb3Rp
ZmljYXRpb24qKW5vdGUKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQwpAQCAtMjc3LDcgKzI3Niw3IEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0TWFwSUQo
KQogCiBzdGF0aWMgdm9pZCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKENNTm90aWZpY2F0aW9u
Q2VudGVyUmVmLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9u
TmFtZSwgY29uc3Qgdm9pZCosIENGVHlwZVJlZikKIHsKLSAgICBpZiAoIUNGRXF1YWwoa0NNU2Ft
cGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG5vdGlmaWNhdGlv
bk5hbWUpKQorICAgIGlmICghQ0ZFcXVhbChQQUw6OmtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90
aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewpAQCAtMzE2LDcgKzMxNSw3IEBAIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRp
YVNvdXJjZVByaXZhdGVBVkZPYmpDCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAog
ICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3Rh
bmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVyb2xsRGVjb2RlV2l0aENvbXBsZXRp
b25IYW5kbGVyOildKQotICAgICAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKENN
Tm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KG1fbWFwSUQpLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVC
dWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7Cisg
ICAgICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihQQUw6OkNNTm90aWZp
Y2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KG1fbWFwSUQpLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBQQUw6OmtDTVNhbXBsZUJ1
ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyLCAwKTsKIAog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIG1fcGFyc2VyLT5zZXRMb2dnZXIobV9sb2dn
ZXIuZ2V0KCksIG1fbG9nSWRlbnRpZmllcik7CkBAIC0zNTQsNyArMzUzLDcgQEAgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6On5Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQygpCiAgICAgY2xl
YXJUcmFja3MoKTsKIAogICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVyb2xsRGVj
b2RlV2l0aENvbXBsZXRpb25IYW5kbGVyOildKQotICAgICAgICBDTU5vdGlmaWNhdGlvbkNlbnRl
clJlbW92ZUxpc3RlbmVyKENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVy
KCksIHRoaXMsIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIGtDTVNhbXBsZUJ1ZmZlckNvbnN1
bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyKTsKKyAgICAgICAgUEFMOjpD
TU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKFBBTDo6Q01Ob3RpZmljYXRpb25DZW50
ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFj
aywgUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1l
ZCwgbnVsbHB0cik7CiAKICAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKQogICAgICAgICBt
X2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25hbCgpOwpAQCAtOTkzLDcgKzk5Miw3IEBAIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyCiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJl
bmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
ICpyZW5kZXJlciwgY29uc3QgQ01UaW1lJiB0aW1lKQogewotICAgIGF1dG8gbWVkaWFUaW1lID0g
dG9NZWRpYVRpbWUodGltZSk7CisgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFUaW1l
KHRpbWUpOwogICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYVRpbWUpOwogICAgIEF0
b21TdHJpbmcgdHJhY2tJZDsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2F1ZGlvUmVuZGVyZXJz
KSB7CkBAIC0xMTAxLDEzICsxMTAwLDEzIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKICAgICBh
dXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKICAgICBERUJVR19MT0cobG9n
U2l0ZUlkZW50aWZpZXIsICJ0cmFjayBJRCA9ICIsIHRyYWNrSUQsICIsIHNhbXBsZSA9ICIsIHNh
bXBsZS5nZXQoKSk7CiAKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5z
YW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0
RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxh
dGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBBU1NFUlQoZm9ybWF0RGVz
Y3JpcHRpb24pOwogICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAgRVJST1Jf
TE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiUmVjZWl2ZWQgc2FtcGxlIHdpdGggYSBudWxsIGZvcm1h
dERlc2NyaXB0aW9uLiBCYWlsaW5nLiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGF1
dG8gbWVkaWFUeXBlID0gQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShmb3JtYXREZXNj
cmlwdGlvbik7CisgICAgYXV0byBtZWRpYVR5cGUgPSBQQUw6OkNNRm9ybWF0RGVzY3JpcHRpb25H
ZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgaWYgKHRyYWNrSUQgPT0gbV9l
bmFibGVkVmlkZW9UcmFja0lEKSB7CiAgICAgICAgIC8vIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyIHdpbGwgdGhyb3cgYW4gdW4tZG9jdW1lbnRlZCBleGNlcHRpb24gaWYgcGFzc2VkIGEgc2Ft
cGxlCkBAIC0xMTIwLDcgKzExMTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAgICAgICAg
IH0KIAogICAgICAgICBhdXRvIHBsYXllciA9IHRoaXMtPnBsYXllcigpOwotICAgICAgICBGbG9h
dFNpemUgZm9ybWF0U2l6ZSA9IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQ
cmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7Cisg
ICAgICAgIEZsb2F0U2l6ZSBmb3JtYXRTaXplID0gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwg
dHJ1ZSwgdHJ1ZSkpOwogICAgICAgICBpZiAoIW1fY2FjaGVkU2l6ZSB8fCBmb3JtYXRTaXplICE9
IG1fY2FjaGVkU2l6ZS52YWx1ZSgpKSB7CiAgICAgICAgICAgICBERUJVR19MT0cobG9nU2l0ZUlk
ZW50aWZpZXIsICJzaXplIGNoYW5nZWQgdG8gIiwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICBi
b29sIHNpemVXYXNOdWxsID0gIW1fY2FjaGVkU2l6ZTsKQEAgLTExNDYsOSArMTE0NSw5IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2Ft
cGxlPiYmIHNhbXBsZSwgY29uc3QKIAogICAgICAgICAgICAgaWYgKCFoYXZlUHJlcm9sbERlY29k
ZVdpdGhDb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVy
UmVmIHJhd1NhbXBsZUNvcHk7Ci0gICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1
ZmZlciwgJnJhd1NhbXBsZUNvcHkpOworICAgICAgICAgICAgICAgIFBBTDo6Q01TYW1wbGVCdWZm
ZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlciwgJnJhd1NhbXBsZUNvcHkpOwogICAgICAgICAgICAgICAgIGF1dG8gc2Ft
cGxlQ29weSA9IGFkb3B0Q0YocmF3U2FtcGxlQ29weSk7Ci0gICAgICAgICAgICAgICAgQ01TZXRB
dHRhY2htZW50KHNhbXBsZUNvcHkuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlf
UG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilA
eyAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3RO
b3RpZmljYXRpb25XaGVuQ29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3Vs
ZE5vdFByb3BhZ2F0ZSk7CisgICAgICAgICAgICAgICAgUEFMOjpDTVNldEF0dGFjaG1lbnQoc2Ft
cGxlQ29weS5nZXQoKSwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3Rp
ZmljYXRpb25XaGVuQ29uc3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsgKF9fYnJp
ZGdlIE5TU3RyaW5nICopUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bvc3ROb3Rp
ZmljYXRpb25XaGVuQ29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZE5v
dFByb3BhZ2F0ZSk7CiAgICAgICAgICAgICAgICAgW21fZGlzcGxheUxheWVyIGVucXVldWVTYW1w
bGVCdWZmZXI6c2FtcGxlQ29weS5nZXQoKV07CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICAgICAgICAgICAgICBwbGF5ZXItPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUodHJ1ZSk7CkBA
IC0xMjk4LDE0ICsxMjk3LDE0IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5v
dGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21TCiBib29sIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25U
aW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPHVpbnQ2NF90Pih0cmFja0lEU3RyaW5n
KS52YWx1ZV9vcigwKSA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQKLSAgICAgICAgJiYgW2dldEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9u
VGltZTopXTsKKyAgICAgICAgJiYgW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJD
bGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBlY3RNaW5pbXVt
VXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOildOwogfQogCiB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1l
KGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcsIGNvbnN0IE1lZGlhVGltZSYgcHJlc2Vu
dGF0aW9uVGltZSkKIHsKICAgICBBU1NFUlQoY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0
aW9uVGltZSh0cmFja0lEU3RyaW5nKSk7CiAgICAgaWYgKGNhblNldE1pbmltdW1VcGNvbWluZ1By
ZXNlbnRhdGlvblRpbWUodHJhY2tJRFN0cmluZykpCi0gICAgICAgIFttX2Rpc3BsYXlMYXllciBl
eHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOnRvQ01UaW1l
KHByZXNlbnRhdGlvblRpbWUpXTsKKyAgICAgICAgW21fZGlzcGxheUxheWVyIGV4cGVjdE1pbmlt
dW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6UEFMOjp0b0NNVGltZShwcmVz
ZW50YXRpb25UaW1lKV07CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNs
ZWFyTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiB0cmFj
a0lEU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCBmNDY2NDEy
NzhlOWVkNGI2ODNhNDg0ZDc1NzQ3ZDg2M2Y2ZWQ4NjZkLi4zYjEwMmFiOGVmMzlmMzhkZjQ3MDYw
NWZhOGQ3YmZkMjRjMDBlZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApA
QCAtMjU4LDggKzI1OCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlN0YXRlPiB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5u
ZWwoKSB7IHJldHVybiBMb2dNZWRpYTsgfQogc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFt
ZSgpIHsgcmV0dXJuICJTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIjsgfQogCkBAIC0xMDY2LDcgKzEw
NjQsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25GcmFtZShjb25z
dCBGcmFtZU1ldGFkYXRhJiBtZXRhZGF0YSwgUmVhZAogICAgICAgICByZXR1cm4gU2tpcChyZWFk
ZXIsIGJ5dGVzUmVtYWluaW5nKTsKICAgICB9CiAKLSAgICByZXR1cm4gdHJhY2tEYXRhLT5jb25z
dW1lRnJhbWVEYXRhKCpyZWFkZXIsIG1ldGFkYXRhLCBieXRlc1JlbWFpbmluZywgQ01UaW1lTWFr
ZShibG9jay0+dGltZWNvZGUgKyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUpLCBibG9j
ay0+bnVtX2ZyYW1lcyk7CisgICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZyYW1lRGF0YSgq
cmVhZGVyLCBtZXRhZGF0YSwgYnl0ZXNSZW1haW5pbmcsIFBBTDo6Q01UaW1lTWFrZShibG9jay0+
dGltZWNvZGUgKyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUpLCBibG9jay0+bnVtX2Zy
YW1lcyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6cHJvdmlkZU1lZGlhRGF0
YShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlciwgdWludDY0X3QgdHJh
Y2tJRCwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGJ5dGVSYW5nZU9mZnNldCkKQEAgLTEwOTAsNyAr
MTA4OCw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNr
RGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgQ01CbG9ja0J1ZmZlclJlZiBy
YXdCbG9ja0J1ZmZlciA9IG51bGxwdHI7CiAKICAgICBpZiAoIW1fY3VycmVudEJsb2NrQnVmZmVy
KSB7Ci0gICAgICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9j
ayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXplLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBudWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3QmxvY2tCdWZmZXIp
OworICAgICAgICBhdXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlC
bG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXplLCBrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3QmxvY2tCdWZm
ZXIpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lG
X1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZhaWxlZCB3aXRo
IGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVt
YWluaW5nKTsKQEAgLTEwOTksNyArMTA5Nyw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAg
ICAgICAgIG1fY3VycmVudEJsb2NrQnVmZmVyID0gYWRvcHRDRihyYXdCbG9ja0J1ZmZlcik7CiAg
ICAgICAgIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24gPSAwOwogCi0gICAgICAgIGVyciA9
IENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQo
KSk7CisgICAgICAgIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5KG1f
Y3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAg
ICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAg
ICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTExMCw3ICsx
MTA4LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tE
YXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICB3aGlsZSAoYnl0ZXNUb1JlYWQp
IHsKICAgICAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9IDA7CiAgICAgICAgIHVp
bnQ4X3QqIGJsb2NrQnVmZmVyRGF0YSA9IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gZXJyID0gQ01C
bG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCBtX2N1
cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRy
LCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOworICAgICAgICBhdXRvIGVyciA9IFBBTDo6Q01C
bG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpLCBtX2N1
cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRy
LCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAg
ICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0RGF0YVBv
aW50ZXIgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICAgICAgcmV0dXJuIFNraXAo
JnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTE0NCw3ICsxMTQyLDcgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNv
bnN0IENNVGltZSYgcHIKICNpZiBFTkFCTEUoVlA5KQogICAgIHVpbnQ4X3QqIGJsb2NrQnVmZmVy
RGF0YSA9IG51bGxwdHI7CiAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9IDA7Ci0g
ICAgYXV0byBlcnIgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJyZW50QmxvY2tC
dWZmZXIuZ2V0KCksIDAsICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFyKiop
JmJsb2NrQnVmZmVyRGF0YSk7CisgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXRE
YXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgMCwgJnNlZ21lbnRTaXplQXRQ
b3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKICAgICBpZiAoZXJy
KSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJH
ZXREYXRhUG9pbnRlciBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgIHJldHVybjsK
QEAgLTExODgsOSArMTE4Niw5IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9U
cmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAgICAgICAgIGR1
cmF0aW9uID0gdHJhY2suZGVmYXVsdF9kdXJhdGlvbi52YWx1ZSgpICogcHJlc2VudGF0aW9uVGlt
ZS50aW1lc2NhbGUgLyAxMDAwMDAwMDAwOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2Ft
cGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBzaXplX3QgZnJhbWVTaXplID0gQ01CbG9ja0J1ZmZl
ckdldERhdGFMZW5ndGgobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOwotICAgIENNU2FtcGxl
VGltaW5nSW5mbyB0aW1pbmcgPSB7IENNVGltZU1ha2UoZHVyYXRpb24sIHByZXNlbnRhdGlvblRp
bWUudGltZXNjYWxlKSwgcHJlc2VudGF0aW9uVGltZSwgcHJlc2VudGF0aW9uVGltZSB9OwotICAg
IGVyciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9j
dXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCks
IHNhbXBsZUNvdW50LCAxLCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2FtcGxlQnVmZmVy
KTsKKyAgICBzaXplX3QgZnJhbWVTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0
aChtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSk7CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRp
bWluZyA9IHsgUEFMOjpDTVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1lLnRpbWVz
Y2FsZSksIHByZXNlbnRhdGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKKyAgICBlcnIgPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9jdXJy
ZW50QmxvY2tCdWZmZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0KCksIHNh
bXBsZUNvdW50LCAxLCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2FtcGxlQnVmZmVyKTsK
ICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNN
U2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAg
ICByZXR1cm47CkBAIC0xMjAwLDcgKzExOTgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldl
Yk06OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgog
ICAgIG1fY3VycmVudEJsb2NrQnVmZmVyID0gbnVsbHB0cjsKICAgICBtX2N1cnJlbnRCbG9ja0J1
ZmZlclBvc2l0aW9uID0gMDsKIAotICAgIGF1dG8gYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUp
OworICAgIGF1dG8gYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1w
bGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CiAgICAgQVNTRVJU
KGF0dGFjaG1lbnRzQXJyYXkpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkgewogICAgICAg
ICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0
dGFjaG1lbnRzQXJyYXkgcmV0dXJuZWQgTlVMTCIpOwpAQCAtMTIxMCw3ICsxMjA4LDcgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVm
ZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICBpZiAoIWlzS2V5KSB7CiAgICAgICAgIGZvciAoQ0ZJ
bmRleCBpID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7IGkg
PCBjb3VudDsgKytpKSB7CiAgICAgICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFj
aG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlH
ZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICAgICAgQ0ZEaWN0
aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3lu
Yywga0NGQm9vbGVhblRydWUpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0
YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBrQ0ZCb29sZWFu
VHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEyOTUsMTIgKzEyOTMsMTIgQEAgd2VibTo6
U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1lRnJh
bWVEYXRhKHdlYm06OlJlYWQKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVz
UmVtYWluaW5nKTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gc3RyZWFtRGVzY3JpcHRpb24g
PSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1h
dERlc2NyaXB0aW9uLmdldCgpKTsKKyAgICAgICAgYXV0byBzdHJlYW1EZXNjcmlwdGlvbiA9IFBB
TDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3Jt
YXREZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgICAgIGlmICghc3RyZWFtRGVzY3JpcHRpb24pIHsK
ICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24gZmFpbGVkIik7CiAgICAgICAgICAg
ICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CiAgICAgICAgIH0KLSAgICAg
ICAgbV9wYWNrZXREdXJhdGlvbiA9IENNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRpb24tPm1GcmFt
ZXNQZXJQYWNrZXQsIHN0cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7CisgICAgICAgIG1f
cGFja2V0RHVyYXRpb24gPSBQQUw6OkNNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRpb24tPm1GcmFt
ZXNQZXJQYWNrZXQsIHN0cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7CiAKICAgICAgICAg
c2V0Rm9ybWF0RGVzY3JpcHRpb24oV1RGTW92ZShmb3JtYXREZXNjcmlwdGlvbikpOwogICAgIH0g
ZWxzZSBpZiAoY29kZWMoKSA9PSBDb2RlY1R5cGU6Ok9wdXMpIHsKQEAgLTEzMjIsNyArMTMyMCw3
IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6
Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgbV9jdXJyZW50UGFja2V0Qnl0ZU9mZnNl
dCA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2N1cnJlbnRQYWNrZXRTaXplID0gc3RkOjpudWxsb3B0
OwogCi0gICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9IENNVGltZUdldFNlY29uZHMoQ01UaW1lU3Vi
dHJhY3QocHJlc2VudGF0aW9uVGltZSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1lKSkgKyBDTVRp
bWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7CisgICAgYXV0byBz
YW1wbGVEdXJhdGlvbiA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhQQUw6OkNNVGltZVN1YnRyYWN0
KHByZXNlbnRhdGlvblRpbWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgUEFMOjpDTVRp
bWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7CiAgICAgaWYgKHNh
bXBsZUR1cmF0aW9uID49IG1fbWluaW11bVNhbXBsZUR1cmF0aW9uKQogICAgICAgICBjcmVhdGVT
YW1wbGVCdWZmZXIobWV0YWRhdGEucG9zaXRpb24pOwogCkBAIC0xMzM5LDIxICsxMzM3LDIxIEBA
IHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBs
ZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPHNpCiAgICAgYXV0byBmdWxsUGFja2V0Qnl0ZXNSZWFkID0g
bV9wYWNrZXRCeXRlc1JlYWQgLSBtX3BhcnRpYWxCeXRlc1JlYWQ7CiAKICAgICBDTUJsb2NrQnVm
ZmVyUmVmIGJsb2NrQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZnVs
bFBhY2tldEJ5dGVzUmVhZCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgMCwgZnVsbFBh
Y2tldEJ5dGVzUmVhZCwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tC
dWZmZXIpOworICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZ1bGxQYWNrZXRCeXRlc1JlYWQs
IGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIGZ1bGxQYWNrZXRCeXRlc1JlYWQsIGtD
TUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKTsKICAgICBpZiAo
ZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihibG9ja0J1ZmZlcik7CiAK
LSAgICBlcnIgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhtX3BhY2tldERhdGEuZGF0
YSgpLCBidWZmZXIuZ2V0KCksIDAsIGZ1bGxQYWNrZXRCeXRlc1JlYWQpOworICAgIGVyciA9IFBB
TDo6Q01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMobV9wYWNrZXREYXRhLmRhdGEoKSwgYnVm
ZmVyLmdldCgpLCAwLCBmdWxsUGFja2V0Qnl0ZXNSZWFkKTsKICAgICBpZiAoZXJyKSB7CiAgICAg
ICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0
YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgZXJy
ID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uKCkuZ2V0
KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1l
LCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOworICAgIGVy
ciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0
aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9u
KCkuZ2V0KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50YXRp
b25UaW1lLCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIpOwog
ICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGgg
JWQiLCBlcnIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCmluZGV4IGU5
Zjg2ZGVhNDM4ZTg5NWU2M2RiZGUwN2M0ZDk1ZjliNWFlZjE4Y2MuLmFhNzM2Y2YxNDlhNDc0YmEy
NjNjYWFjZDY2NDJkZTc4Zjc3ODg3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCkBAIC00Nyw3
ICs0Nyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsK
IHVzaW5nIG5hbWVzcGFjZSB3ZWJtOwogCiBWUDlUZXN0aW5nT3ZlcnJpZGVzJiBWUDlUZXN0aW5n
T3ZlcnJpZGVzOjpzaW5nbGV0b24oKQpAQCAtMzYyLDExICszNjEsMTEgQEAgc3RhdGljIENGU3Ry
aW5nUmVmIGNvbnZlcnRUb0NNQ29sb3JQcmltYXJpZXModWludDhfdCBwcmltYXJpZXMpCiAgICAg
Y2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfU1RfMjQwOgogICAgICAg
ICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJDb2xvclByaW1hcmllc19TTVBURV9DOwogICAgIGNhc2Ug
VlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX1JQXzQzMV8yOgotICAgICAgICBy
ZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7CisgICAgICAg
IHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzOwog
ICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX0VHXzQzMl8xOgot
ICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjU7
CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
UDNfRDY1OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OkJUXzIwMjBf
Tm9uY29uc3RhbnRfTHVtaW5hbmNlOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRp
b25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CiAgICAgfQogCiAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC00MjAsMTggKzQxOSwxOCBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29u
dmVydFRvQ01UcmFuc2ZlckZ1bmN0aW9uKHVpbnQ4X3QgY2hhcmFjdGVyaXN0aWNzKQogICAgIGNh
c2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OlNNUFRFX1NUXzI0MDoK
ICAgICAgICAgcmV0dXJuIGtDVkltYWdlQnVmZmVyVHJhbnNmZXJGdW5jdGlvbl9TTVBURV8yNDBN
XzE5OTU7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6
U01QVEVfU1RfMjA4NDoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BROworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUTsKICAgICBjYXNl
IFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpCVF8yMDIwXzEwYml0Ogog
ICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBf
MTJiaXQ6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjA7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFu
c2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfNDI4XzE6Ci0gICAgICAgIHJldHVybiBrQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzE7CisgICAgICAg
IHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9T
VF80MjhfMTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNz
OjpCVF8yMTAwX0hMRzoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRzsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHOwogICAgIGNhc2UgVlBD
b25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OklFQ182MTk2Nl8yXzE6Ci0gICAg
ICAgIHJldHVybiBjYW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fc1JHQigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgOiBudWxscHRyOworICAgICAgICByZXR1cm4gUEFMOjpj
YW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JH
QigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9zUkdCKCkgOiBudWxscHRyOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJD
aGFyYWN0ZXJpc3RpY3M6OkxpbmVhcjoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CiAgICAgfQogCiAgICAgcmV0dXJu
IG51bGxwdHI7CkBAIC00NjcsNyArNDY2LDcgQEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZlcnRU
b0NNWUNiQ1JNYXRyaXgodWludDhfdCBjb2VmZmljaWVudHMpCiB7CiAgICAgc3dpdGNoIChjb2Vm
ZmljaWVudHMpIHsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6
QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXRE
ZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtD
TUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKICAgICBjYXNlIFZQQ29u
ZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNDcwXzdfQkc6CiAgICAgY2FzZSBWUENv
bmZpZ3VyYXRpb25NYXRyaXhDb2VmZmljaWVudHM6OkJUXzYwMV83OgogICAgICAgICByZXR1cm4g
a0NWSW1hZ2VCdWZmZXJZQ2JDck1hdHJpeF9JVFVfUl82MDFfNDsKQEAgLTU0MywxMSArNTQyLDEx
IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlRm9ybWF0
RGVzY3JpcHRpb25Gcm9tVlBDb2RlY0NvbmZpCiAgICAgQ0ZUeXBlUmVmIGNvbmZpZ3VyYXRpb25W
YWx1ZXNbXSA9IHsgZGF0YS5nZXQoKSB9OwogICAgIGF1dG8gY29uZmlndXJhdGlvbkRpY3QgPSBh
ZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb25maWd1cmF0
aW9uS2V5cywgY29uZmlndXJhdGlvblZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChjb25maWd1cmF0
aW9uS2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9u
YXJ5VmFsdWVDYWxsQmFja3MpKTsKIAotICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNL
ZXlzIHsga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRl
bnNpb25BdG9tcyB9OworICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNLZXlzIHsgUEFM
OjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lv
bkF0b21zIH07CiAgICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc1ZhbHVlcyA9IHsgY29u
ZmlndXJhdGlvbkRpY3QuZ2V0KCkgfTsKIAogICAgIGlmIChyZWNvcmQudmlkZW9GdWxsUmFuZ2VG
bGFnID09IFZQQ29uZmlndXJhdGlvblJhbmdlOjpGdWxsUmFuZ2UpIHsKLSAgICAgICAgZXh0ZW5z
aW9uc0tleXMuYXBwZW5kKGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZp
ZGVvKTsKKyAgICAgICAgZXh0ZW5zaW9uc0tleXMuYXBwZW5kKFBBTDo6a0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOwogICAgICAgICBleHRlbnNpb25zVmFsdWVz
LmFwcGVuZChrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24u
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb24ubW0KaW5kZXggY2VhMTU2YWUyZmJlMjVhZGEwMDc2NjhlOTFkNTBlNTYx
YzY0MmU0ZS4uOGVlZjNiMmVhNjA0YmQxOTgzZDc3ZDM4YmY1MjFhOGQyMWYyMGVkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQpAQCAtNDMsOSArNDMsMTIgQEAK
ICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJWaWRlb1Rvb2xib3hTb2Z0
TGluay5oIgogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCi1XVEZfREVDTEFSRV9DRl9UWVBFX1RS
QUlUKENNU2FtcGxlQnVmZmVyKTsKKy8vIEVxdWl2YWxlbnQgdG8gV1RGX0RFQ0xBUkVfQ0ZfVFlQ
RV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBOZWVkZWQgZHVlIHRvIHJlcXVpcmVtZW50IG9m
IHNwZWNpZnlpbmcgdGhlIFBBTCBuYW1lc3BhY2UuCit0ZW1wbGF0ZSA8Pgorc3RydWN0IFdURjo6
Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJSZWY+IHsKKyAgICBzdGF0aWMgaW5saW5lIENGVHlw
ZUlEIHR5cGVJRCh2b2lkKSB7IHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VHlwZUlEKCk7
IH0KK307CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzIsNyArNzUsNyBAQCB2b2lkIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c2V0VGltZWJhc2UoQ01UaW1lYmFzZVJlZiB0aW1l
YmFzZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENN
VGltZWJhc2VSZW1vdmVUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGlt
ZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VSZW1vdmVUaW1lckRpc3Bh
dGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAg
bV90aW1lYmFzZSA9IHRpbWViYXNlOwogCkBAIC04NCw3ICs4Nyw3IEBAIHZvaWQgV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZShDTVRpbWViYXNlUmVmIHRpbWViYXNlKQog
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBkaXNwYXRjaF9hY3RpdmF0ZShtX3RpbWVyU291
cmNlLmdldCgpKTsKICAgICAgICAgfQotICAgICAgICBDTVRpbWViYXNlQWRkVGltZXJEaXNwYXRj
aFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAg
UEFMOjpDTVRpbWViYXNlQWRkVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBt
X3RpbWVyU291cmNlLmdldCgpKTsKICAgICB9CiB9CiAKQEAgLTEwNCwxMiArMTA3LDEyIEBAIHZv
aWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjptYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1l
ZGlhRGF0YSgpCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBs
ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGJvb2wgZGlzcGxheWluZykKIHsKICAg
ICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIDAsIG51bGxwdHIsICZp
dGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0lu
Zm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIGlmIChu
b0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZm
ZXIsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCisgICAgaWYg
KG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2Ft
cGxlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBDTUJ1ZmZlckNhbGxiYWNrcyBjb250YWlucyA2NC1i
aXQgcG9pbnRlcnMgdGhhdCBhcmVuJ3QgOC1ieXRlIGFsaWduZWQuIFRvIHN1cHByZXNzIHRoZSBs
aW5rZXIKQEAgLTEzNCw3ICsxMzcsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6ZW5xdWV1ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsCiAgICAgICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKGNhbGxiYWNrcy5jYWxsYmFja3MudmVyc2lvbikgPT0gc2l6
ZW9mKHVpbnQzMl90KSwgIlZlcnNpb24gZmllbGQgbXVzdCBiZSA0IGJ5dGVzIik7CiAgICAgICAg
IHN0YXRpY19hc3NlcnQoYWxpZ25vZihCdWZmZXJDYWxsYmFja3MpID09IDQsICJDTUJ1ZmZlckNh
bGxiYWNrcyBzdHJ1Y3QgbXVzdCBoYXZlIDQgYnl0ZSBhbGlnbm1lbnQiKTsKIAotICAgICAgICBD
TUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHks
ICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOworICAgICAgICBQQUw6OkNNQnVmZmVy
UXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxi
YWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fcHJvZHVjZXJRdWV1ZSA9IGFk
b3B0Q0Yob3V0UXVldWUpOwogICAgIH0KIApAQCAtMTU2LDcgKzE1OSw3IEBAIHZvaWQgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlciwKICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoY2FsbGJhY2tzLmNhbGxi
YWNrcy52ZXJzaW9uKSA9PSBzaXplb2YodWludDMyX3QpLCAiVmVyc2lvbiBmaWVsZCBtdXN0IGJl
IDQgYnl0ZXMiKTsKICAgICAgICAgc3RhdGljX2Fzc2VydChhbGlnbm9mKEJ1ZmZlckNhbGxiYWNr
cykgPT0gNCwgIkNNQnVmZmVyQ2FsbGJhY2tzIHN0cnVjdCBhbGlnbm1lbnQgbXVzdCBiZSA0Iik7
CiAKLSAgICAgICAgQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4
aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKKyAgICAgICAg
UEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2Fw
YWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOwogICAgICAgICBtX2NvbnN1
bWVyUXVldWUgPSBhZG9wdENGKG91dFF1ZXVlKTsKICAgICB9CiAKQEAgLTE3NywyMCArMTgwLDIw
IEBAIGJvb2wgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBiCiAgICAgaWYgKCFtX3RpbWViYXNlKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gY3VycmVudFRpbWUgPSBDTVRpbWViYXNlR2V0VGlt
ZShtX3RpbWViYXNlLmdldCgpKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IENN
U2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7Ci0gICAgYXV0byBk
dXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKLSAgICBhdXRvIHBy
ZXNlbnRhdGlvbkVuZFRpbWUgPSBDTVRpbWVBZGQocHJlc2VudGF0aW9uU3RhcnRUaW1lLCBkdXJh
dGlvbik7Ci0gICAgaWYgKENNVGltZUNvbXBhcmUocHJlc2VudGF0aW9uRW5kVGltZSwgY3VycmVu
dFRpbWUpID49IDApCisgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRp
bWUobV90aW1lYmFzZS5nZXQoKSk7CisgICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7CisgICAg
YXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOwor
ICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IFBBTDo6Q01UaW1lQWRkKHByZXNlbnRhdGlv
blN0YXJ0VGltZSwgZHVyYXRpb24pOworICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUocHJlc2Vu
dGF0aW9uRW5kVGltZSwgY3VycmVudFRpbWUpID49IDApCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0
YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRz
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBm
YWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICBmb3IgKENGSW5kZXggaW5kZXggPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRhY2ht
ZW50cyk7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVm
IGF0dGFjaG1lbnREaWN0ID0gKENGRGljdGlvbmFyeVJlZilDRkFycmF5R2V0VmFsdWVBdEluZGV4
KGF0dGFjaG1lbnRzLCBpbmRleCk7Ci0gICAgICAgIENGQm9vbGVhblJlZiBkZXBlbmRlZE9uID0g
KENGQm9vbGVhblJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShhdHRhY2htZW50RGljdCwga0NNU2Ft
cGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycyk7CisgICAgICAgIENGQm9vbGVh
blJlZiBkZXBlbmRlZE9uID0gKENGQm9vbGVhblJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShhdHRh
Y2htZW50RGljdCwgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3Ro
ZXJzKTsKICAgICAgICAgaWYgKGRlcGVuZGVkT24gJiYgIUNGQm9vbGVhbkdldFZhbHVlKGRlcGVu
ZGVkT24pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIwMywxNCArMjA2
LDE0IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNvbXByZXNz
aW9uU2Vzc2lvbkZvclNhbXBsZShDTVNhbXBsZUJ1CiAgICAgaWYgKGlzSW52YWxpZGF0ZWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVv
Rm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNh
bXBsZSk7CisgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3Jp
cHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsK
ICAgICBpZiAobV9kZWNvbXByZXNzaW9uU2Vzc2lvbiAmJiAhVlREZWNvbXByZXNzaW9uU2Vzc2lv
bkNhbkFjY2VwdEZvcm1hdERlc2NyaXB0aW9uKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCks
IHZpZGVvRm9ybWF0RGVzY3JpcHRpb24pKSB7CiAgICAgICAgIFZURGVjb21wcmVzc2lvblNlc3Np
b25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCkp
OwogICAgICAgICBtX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKICAgICB9CiAKICAg
ICBpZiAoIW1fZGVjb21wcmVzc2lvblNlc3Npb24pIHsKLSAgICAgICAgQ01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKHNhbXBsZSk7CisgICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKHNhbXBsZSk7CiAgICAgICAgIGF1dG8gdmlkZW9EZWNvZGVyU3BlY2lmaWNh
dGlvbiA9IEB7IChfX2JyaWRnZSBOU1N0cmluZyAqKWtWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRp
b25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlcjogQCggbV9oYXJkd2FyZURl
Y29kZXJFbmFibGVkICkgfTsKIAogICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXM7CkBA
IC0yNTYsNyArMjU5LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmRlY29k
ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGJvb2wgZGkKIAogICAgIE1vbm90b25p
Y1RpbWUgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgVlREZWNvbXByZXNz
aW9uU2Vzc2lvbkRlY29kZUZyYW1lV2l0aE91dHB1dEhhbmRsZXIobV9kZWNvbXByZXNzaW9uU2Vz
c2lvbi5nZXQoKSwgc2FtcGxlLCBmbGFncywgbnVsbHB0ciwgW3RoaXMsIGRpc3BsYXlpbmcsIHN0
YXJ0VGltZV0oT1NTdGF0dXMgc3RhdHVzLCBWVERlY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsIENW
SW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAs
IENNVGltZSBwcmVzZW50YXRpb25EdXJhdGlvbikgewotICAgICAgICBkb3VibGUgZGVsdGFSYXRp
byA9IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkuc2Vjb25kcygpIC8gQ01UaW1l
R2V0U2Vjb25kcyhwcmVzZW50YXRpb25EdXJhdGlvbik7CisgICAgICAgIGRvdWJsZSBkZWx0YVJh
dGlvID0gKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5zZWNvbmRzKCkgLyBQQUw6
OkNNVGltZUdldFNlY29uZHMocHJlc2VudGF0aW9uRHVyYXRpb24pOwogCiAgICAgICAgIHVwZGF0
ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyhkZWx0YVJhdGlvKTsKICAgICAgICAgaGFuZGxl
RGVjb21wcmVzc2lvbk91dHB1dChkaXNwbGF5aW5nLCBzdGF0dXMsIGluZm9GbGFncywgaW1hZ2VC
dWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcHJlc2VudGF0aW9uRHVyYXRpb24pOwpAQCAt
Mjg5LDcgKzI5Miw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpoYW5kbGVE
ZWNvbXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAgICAgICAgICsrbV9kcm9w
cGVkVmlkZW9GcmFtZXM7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgcmF3SW1h
Z2VCdWZmZXJEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgaWYgKHN0YXR1cyAhPSBub0VyciB8
fCBub0VyciAhPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgJnJhd0ltYWdlQnVmZmVyRGVzY3Jp
cHRpb24pKSB7CisgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCBub0VyciAhPSBQQUw6OkNNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHJhd0ltYWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbikpIHsKICAgICAg
ICAgKyttX2NvcnJ1cHRlZFZpZGVvRnJhbWVzOwogICAgICAgICAtLW1fZnJhbWVzQmVpbmdEZWNv
ZGVkOwogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzA0
LDcgKzMwNyw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpoYW5kbGVEZWNv
bXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAgICAgfTsKIAogICAgIENNU2Ft
cGxlQnVmZmVyUmVmIHJhd0ltYWdlU2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9F
cnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJEZXNjcmlwdGlvbi5nZXQoKSwg
JmltYWdlQnVmZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVCdWZmZXIpKSB7CisgICAgaWYgKG5v
RXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJEZXNjcmlwdGlvbi5n
ZXQoKSwgJmltYWdlQnVmZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVCdWZmZXIpKSB7CiAgICAg
ICAgICsrbV9jb3JydXB0ZWRWaWRlb0ZyYW1lczsKICAgICAgICAgLS1tX2ZyYW1lc0JlaW5nRGVj
b2RlZDsKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTMx
OCwxMSArMzIxLDExIEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpoYW5kbGVE
ZWNvbXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAKIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0VmlkZW9G
cmFtZSgpCiB7Ci0gICAgaWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgQ01CdWZmZXJRdWV1ZUlzRW1w
dHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkKKyAgICBpZiAoIW1fcHJvZHVjZXJRdWV1ZSB8fCBQ
QUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJy
ZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENN
QnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKLSAg
ICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZl
clJlZilDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOwor
ICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0Yo
Y2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1
ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CiAgICAgQVNTRVJU
KENGR2V0VHlwZUlEKGltYWdlQnVmZmVyLmdldCgpKSA9PSBDVlBpeGVsQnVmZmVyR2V0VHlwZUlE
KCkpOwogCiAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTMzNSwy
NSArMzM4LDI1IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNE
ZXF1ZXVlKCkKICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1
dG8gdGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5n
ZXQoKSkpOworICAgIGF1dG8gdGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWViYXNl
R2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHB1cmdpbmcgYWxsIHNhbXBs
ZXMgYmVmb3JlIHRpbWUoJXMpIiwgdGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSk7
CiAKICAgICBNZWRpYVRpbWUgbmV4dEZpcmVUaW1lID0gTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmlu
aXRlVGltZSgpOwogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSBmYWxzZTsKIAotICAg
IHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxD
TVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdl
dCgpKSkpIHsKLSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6
dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RT
YW1wbGUpKTsKLSAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShD
TVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CisgICAgd2hpbGUgKENNU2Ft
cGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVy
UmVmPihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7
CisgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFU
aW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1w
bGUpKTsKKyAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKICAgICAgICAgTWVkaWFU
aW1lIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlvblRpbWVzdGFtcCArIGR1
cmF0aW9uOwogICAgICAgICBpZiAodGltZSA+IHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCkgewot
ICAgICAgICAgICAgQ0ZSZWxlYXNlKENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgQ0ZSZWxlYXNlKFBBTDo6Q01CdWZmZXJR
dWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAg
ICByZWxlYXNlZEltYWdlQnVmZmVycyA9IHRydWU7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0
b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9w
cm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGlt
ZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOworICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNN
QnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpKTsKKyAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZm
ZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KTsKICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRv
bWF0aWNEZXF1ZXVlKCVwKSAtIHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKGJlZ2lu
KS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAK
QEAgLTM2NSw3ICszNjgsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0
b21hdGljRGVxdWV1ZSgpCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRh
KCk7CiAKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9t
YXRpY0RlcXVldWUoJXApIC0gcXVldWUgZW1wdHkiLCB0aGlzKTsKLSAgICBDTVRpbWViYXNlU2V0
VGltZXJEaXNwYXRjaFNvdXJjZU5leHRGaXJlVGltZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVy
U291cmNlLmdldCgpLCBQQUw6OnRvQ01UaW1lKG5leHRGaXJlVGltZSksIDApOworICAgIFBBTDo6
Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUobV90aW1lYmFzZS5n
ZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0b0NNVGltZShuZXh0RmlyZVRpbWUpLCAw
KTsKIH0KIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVk
U2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYm9vbCBkaXNwbGF5aW5nKQpAQCAtMzgz
LDE3ICszODYsMTcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVE
ZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKICAgICBib29sIHNob3VsZE5v
dGlmeSA9IHRydWU7CiAKICAgICBpZiAoZGlzcGxheWluZyAmJiBtX3RpbWViYXNlKSB7Ci0gICAg
ICAgIGF1dG8gY3VycmVudFJhdGUgPSBDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgp
KTsKLSAgICAgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFz
ZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOwotICAgICAgICBhdXRvIHByZXNlbnRhdGlvblN0
YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25U
aW1lU3RhbXAoc2FtcGxlKSk7Ci0gICAgICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IHBy
ZXNlbnRhdGlvblN0YXJ0VGltZSArIFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRE
dXJhdGlvbihzYW1wbGUpKTsKKyAgICAgICAgYXV0byBjdXJyZW50UmF0ZSA9IFBBTDo6Q01UaW1l
YmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7CisgICAgICAgIGF1dG8gY3VycmVudFRpbWUg
PSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQo
KSkpOworICAgICAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRp
bWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsK
KyAgICAgICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJlc2VudGF0aW9uU3RhcnRUaW1l
ICsgUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxl
KSk7CiAgICAgICAgIGlmIChjdXJyZW50VGltZSA8IHByZXNlbnRhdGlvblN0YXJ0VGltZSB8fCBj
dXJyZW50VGltZSA+PSBwcmVzZW50YXRpb25FbmRUaW1lKQogICAgICAgICAgICAgc2hvdWxkTm90
aWZ5ID0gZmFsc2U7CiAKICAgICAgICAgaWYgKGN1cnJlbnRSYXRlID4gMCAmJiBwcmVzZW50YXRp
b25FbmRUaW1lIDwgY3VycmVudFRpbWUpIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgICAg
ICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVz
ZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgICAgICAgICBh
dXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIGF1dG8gYmVn
aW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0
aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgYXV0byBl
bmQgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIExPRyhNZWRp
YSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoJXAp
IC0gZHJvcHBpbmcgZnJhbWUgbGF0ZSBieSAlcywgZnJhbWVzQmVpbmdEZWNvZGVkKCVkKSwgcHJv
ZHVjZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhwcmVzZW50YXRpb25FbmRUaW1l
IC0gY3VycmVudFRpbWUpLnV0ZjgoKS5kYXRhKCksIG1fZnJhbWVzQmVpbmdEZWNvZGVkLCB0b1N0
cmluZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsK
ICNlbmRpZgogICAgICAgICAgICAgKyttX2Ryb3BwZWRWaWRlb0ZyYW1lczsKQEAgLTQwMSwxNyAr
NDA0LDE3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2Rl
ZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX3Byb2R1Y2VyUXVldWUuZ2V0KCksIHNhbXBsZSk7Cisg
ICAgUEFMOjpDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX3Byb2R1Y2VyUXVldWUuZ2V0KCksIHNhbXBs
ZSk7CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRp
bWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSkpOwotICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1
ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwot
ICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZm
ZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7CisgICAgYXV0byBiZWdpbiA9IFBB
TDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1l
U3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVk
aWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2Ft
cGxlKSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1
ZXVlRGVjb2RlZFNhbXBsZSglcCkgLSBwcmVzZW50YXRpb25UaW1lKCVzKSwgZnJhbWVzQmVpbmdE
ZWNvZGVkKCVkKSwgcHJvZHVjZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhwcmVz
ZW50YXRpb25UaW1lKS51dGY4KCkuZGF0YSgpLCBtX2ZyYW1lc0JlaW5nRGVjb2RlZCwgdG9TdHJp
bmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAj
ZW5kaWYKIAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJE
aXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJT
b3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291
cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQo
KSk7CiAKICAgICBpZiAoIW1faGFzQXZhaWxhYmxlRnJhbWVDYWxsYmFjaykKICAgICAgICAgcmV0
dXJuOwpAQCAtNDI2LDcgKzQyOSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAKIGJvb2wg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpIGNv
bnN0CiB7Ci0gICAgQ01JdGVtQ291bnQgcHJvZHVjZXJDb3VudCA9IG1fcHJvZHVjZXJRdWV1ZSA/
IENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpIDogMDsK
KyAgICBDTUl0ZW1Db3VudCBwcm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVlID8gUEFMOjpD
TUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSA6IDA7CiAg
ICAgcmV0dXJuIG1fZnJhbWVzQmVpbmdEZWNvZGVkICsgcHJvZHVjZXJDb3VudCA8PSBrSGlnaFdh
dGVyTWFyazsKIH0KIApAQCAtNDUyLDcgKzQ1NSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjpzdG9wUmVxdWVzdGluZ01lZGlhRGF0YSgpCiAKIHZvaWQgV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uOjpub3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFtZShzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gY2FsbGJhY2spCiB7Ci0gICAgaWYgKGNhbGxiYWNrICYmIG1fcHJvZHVj
ZXJRdWV1ZSAmJiAhQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkg
eworICAgIGlmIChjYWxsYmFjayAmJiBtX3Byb2R1Y2VyUXVldWUgJiYgIVBBTDo6Q01CdWZmZXJR
dWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgewogICAgICAgICBSdW5Mb29wOjpt
YWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrXSB7CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAg
ICAgICB9KTsKQEAgLTQ2Myw3ICs0NjYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6bm90aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoc3RkOjpmdW5jdGlvbgogCiBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpp
bWFnZUZvclRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBJbWFnZUZvclRpbWVGbGFncyBmbGFn
cykKIHsKLSAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSkgeworICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjppbWFnZUZvclRpbWUoJXApIC0gdGltZSglcyksIHF1ZXVlIGVtcHR5IiwgdGhpcywgdG9TdHJp
bmcodGltZSkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
QEAgLTQ3MSw5ICs0NzQsOSBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQogICAgIGJvb2wgYWxs
b3dFYXJsaWVyID0gZmxhZ3MgPT0gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpBbGxvd0Vh
cmxpZXI7CiAgICAgYm9vbCBhbGxvd0xhdGVyID0gZmxhZ3MgPT0gV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjpBbGxvd0xhdGVyOwogCi0gICAgTWVkaWFUaW1lIHN0YXJ0VGltZSA9IFBBTDo6
dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIE1lZGlhVGltZSBzdGFydFRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1w
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogI2lmICFMT0dfRElTQUJMRUQKLSAgICBNZWRpYVRp
bWUgZW5kVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRh
dGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBNZWRpYVRpbWUgZW5k
VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0
aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogI2VuZGlmCiAgICAgaWYgKCFh
bGxvd0xhdGVyICYmIHRpbWUgPCBzdGFydFRpbWUpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoJXApIC0gdGltZSglcykgdG9v
IGVhcmx5IGZvciBxdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCku
ZGF0YSgpLCB0b1N0cmluZyhzdGFydFRpbWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZFRp
bWUpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtNDgyLDI0ICs0ODUsMjQgQEAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNv
bnN0IE1lZGkKIAogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSBmYWxzZTsKIAotICAg
IHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxD
TVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdl
dCgpKSkpIHsKLSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6
dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RT
YW1wbGUpKTsKLSAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShD
TVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CisgICAgd2hpbGUgKENNU2Ft
cGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVy
UmVmPihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKSB7
CisgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRvTWVkaWFU
aW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoZmlyc3RTYW1w
bGUpKTsKKyAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlhVGltZShQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKICAgICAgICAgTWVkaWFU
aW1lIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlvblRpbWVzdGFtcCArIGR1
cmF0aW9uOwogICAgICAgICBpZiAoIWFsbG93TGF0ZXIgJiYgcHJlc2VudGF0aW9uVGltZXN0YW1w
ID4gdGltZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAoIWFsbG93
RWFybGllciAmJiBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPCB0aW1lKSB7Ci0gICAgICAgICAg
ICBDRlJlbGVhc2UoQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVl
LmdldCgpKSk7CisgICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1
ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIHJlbGVhc2Vk
SW1hZ2VCdWZmZXJzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
LSAgICAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRv
cHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVEZXF1
ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKLSAgICAgICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpQ01TYW1w
bGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKKyAgICAgICAgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2Vk
X2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRS
ZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOworICAgICAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CiAgICAgICAgIEFTU0VS
VChDRkdldFR5cGVJRChpbWFnZUJ1ZmZlci5nZXQoKSkgPT0gQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJ
RCgpKTsKIAogICAgICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgICAgIENNVGltZWJhc2VT
ZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwg
bV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgICAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1l
ckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1l
clNvdXJjZS5nZXQoKSk7CiAKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURh
dGEoKTsKIApAQCAtNTA4LDcgKzUxMSw3IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiAgICAg
fQogCiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3Bh
dGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJj
ZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VU
b0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsK
IAogICAgIGlmIChyZWxlYXNlZEltYWdlQnVmZmVycykKICAgICAgICAgbWF5YmVCZWNvbWVSZWFk
eUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTUyMCw5ICs1MjMsOSBAQCBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29u
c3QgTWVkaQogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmZsdXNoKCkKIHsKICAg
ICBtX2RlY29tcHJlc3Npb25RdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldKCkgbXV0YWJsZSB7Ci0gICAgICAgIENNQnVmZmVyUXVldWVSZXNl
dChwcm90ZWN0ZWRUaGlzLT5tX3Byb2R1Y2VyUXVldWUuZ2V0KCkpOworICAgICAgICBQQUw6OkNN
QnVmZmVyUXVldWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX3Byb2R1Y2VyUXVldWUuZ2V0KCkpOwog
ICAgICAgICBtX2VucXVlaW5nUXVldWUtPmRpc3BhdGNoU3luYyhbcHJvdGVjdGVkVGhpcyA9IFdU
Rk1vdmUocHJvdGVjdGVkVGhpcyldIHsKLSAgICAgICAgICAgIENNQnVmZmVyUXVldWVSZXNldChw
cm90ZWN0ZWRUaGlzLT5tX2NvbnN1bWVyUXVldWUuZ2V0KCkpOworICAgICAgICAgICAgUEFMOjpD
TUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25zdW1lclF1ZXVlLmdldCgpKTsK
ICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fZnJhbWVzU2luY2VMYXN0UW9zQ2hlY2sgPSAw
OwogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jdXJyZW50UW9zVGllciA9IDA7CiAgICAg
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yZXNldFFvc1RpZXIoKTsKQEAgLTUzMywyNCArNTM2LDI0
IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCgpCiBDTVRpbWUgV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKENNQnVmZmVyUmVmIGJ1Ziwg
dm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0
PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldERl
Y29kZVRpbWVTdGFtcChzYW1wbGUpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
RGVjb2RlVGltZVN0YW1wKHNhbXBsZSk7CiB9CiAKIENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OmdldFByZXNlbnRhdGlvblRpbWUoQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikKIHsK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVC
dWZmZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9u
VGltZVN0YW1wKHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKIH0KIAogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6Z2V0RHVyYXRpb24oQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikKIHsKICAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJS
ZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsK
KyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CiB9CiAK
IENGQ29tcGFyaXNvblJlc3VsdCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmNvbXBhcmVC
dWZmZXJzKENNQnVmZmVyUmVmIGJ1ZjEsIENNQnVmZmVyUmVmIGJ1ZjIsIHZvaWQqIHJlZmNvbikK
IHsKLSAgICByZXR1cm4gKENGQ29tcGFyaXNvblJlc3VsdClDTVRpbWVDb21wYXJlKGdldFByZXNl
bnRhdGlvblRpbWUoYnVmMSwgcmVmY29uKSwgZ2V0UHJlc2VudGF0aW9uVGltZShidWYyLCByZWZj
b24pKTsKKyAgICByZXR1cm4gKENGQ29tcGFyaXNvblJlc3VsdClQQUw6OkNNVGltZUNvbXBhcmUo
Z2V0UHJlc2VudGF0aW9uVGltZShidWYxLCByZWZjb24pLCBnZXRQcmVzZW50YXRpb25UaW1lKGJ1
ZjIsIHJlZmNvbikpOwogfQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6cmVz
ZXRRb3NUaWVyKCkKQEAgLTYwMiw3ICs2MDUsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6dXBkYXRlUW9zV2l0aERlY29kZVRpbWVTdGF0aXN0aWNzKGRvdWJsZSByYXRpbwog
ICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZG91YmxlIHJhdGUg
PSBDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKKyAgICBkb3VibGUgcmF0ZSA9
IFBBTDo6Q01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7CiAgICAgaWYgKCFyYXRl
KQogICAgICAgICByYXRlID0gMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KaW5kZXggZTNm
MDkyNzAzNDhlN2E1YWVmNzI2NmViNDcyZGRiYWU3M2JjMzQwNy4uZjMxNjlhYmMwMjc3MDgyZjBj
ZmNlNDcyNjc5ZTExMDc5N2M4YzlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCkBAIC00
Miw3ICs0Miw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBD
RlN0cmluZ1JlZiBjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkKIHsKQEAgLTEzOCw3ICsxMzcsNyBA
QCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29u
dmVydFBpeGVsQnVmZmVyKENWUGl4ZWxCdQogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZmZXIoQ01TYW1wbGVCdWZmZXJS
ZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBjb252
ZXJ0UGl4ZWxCdWZmZXIoQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIp
LCBzaXplKTsKKyAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpLCBzaXplKTsKIH0KIAogUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVC
dWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXpl
KQpAQCAtMTQ2LDkgKzE0NSw5IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgaWYgKCFz
b3VyY2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBkZXNjcmlw
dGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc291cmNlQnVmZmVyKTsK
LSAgICBhdXRvIHNvdXJjZVNpemUgPSBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
R2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwotICAg
IGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOworICAgIGF1dG8gZGVzY3JpcHRp
b24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc291cmNlQnVmZmVy
KTsKKyAgICBhdXRvIHNvdXJjZVNpemUgPSBGbG9hdFNpemUoUEFMOjpDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGRlc2NyaXB0aW9uLCB0cnVlLCB0cnVl
KSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+
KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpKTsKICAgICBp
ZiAoc2l6ZSA9PSBleHBhbmRlZEludFNpemUoc291cmNlU2l6ZSkgJiYgbV9waXhlbEZvcm1hdCA9
PSBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSkKICAgICAgICAg
cmV0dXJuIHJldGFpblB0cihzb3VyY2VCdWZmZXIpOwogCkBAIC0xNjAsNyArMTU5LDcgQEAgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0
Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBDTUl0
ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIGF1dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCAxLCBudWxscHRyLCAmaXRlbUNv
dW50KTsKKyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCAxLCBudWxscHRyLCAmaXRlbUNvdW50KTsKICAgICBp
ZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZVRpbWluZ0luZm9BcnJheSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRp
Y19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTY5LDcg
KzE2OCw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgQ01TYW1wbGVUaW1pbmdJbmZv
KiB0aW1laW5nSW5mb1B0ciA9IG51bGxwdHI7CiAgICAgaWYgKGl0ZW1Db3VudCkgewogICAgICAg
ICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgICAgICBzdGF0dXMgPSBDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIGl0ZW1Db3Vu
dCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CisgICAgICAgIHN0YXR1cyA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCBp
dGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOwogICAgICAgICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01TYW1wbGVCdWZmZXJH
ZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0
aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0x
NzgsMTQgKzE3NywxNCBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIH0KIAogICAgIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0g
ICAgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXRE
ZXNjcmlwdGlvbik7CisgICAgc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1
ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJy
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJ
bWFnZUJ1ZmZlciByZXR1cm5lZDogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByZXNp
emVkU2FtcGxlQnVmZmVyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlX
aXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIu
Z2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCB0aW1laW5nSW5mb1B0ciwgJnJlc2l6ZWRTYW1wbGVC
dWZmZXIpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQo
KSwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWVpbmdJbmZvUHRyLCAmcmVzaXplZFNhbXBsZUJ1ZmZl
cik7CiAgICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzICE9
IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBmYWlsZWQgdG8gY3JlYXRlIENNU2FtcGxlQnVm
ZmVyIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpAQCAt
MjM3LDE2ICsyMzYsMTYgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihDVlBpeGUKICAgICB9CiAKICAgICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwot
ICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VC
dWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIu
Z2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRp
b24pOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6IGZhaWxlZCB0byBpbml0aWFs
aXplIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbiB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGlj
X2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1dG8gY21UaW1lID0gdG9D
TVRpbWUoc2FtcGxlVGltZSk7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7
IGtDTVRpbWVJbnZhbGlkLCBjbVRpbWUsIGNtVGltZSB9OwotICAgIHN0YXR1cyA9IENNU2FtcGxl
QnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENW
SW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCAmdGlt
aW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7CisgICAgYXV0byBjbVRpbWUgPSBQQUw6OnRvQ01UaW1l
KHNhbXBsZVRpbWUpOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBQQUw6
OmtDTVRpbWVJbnZhbGlkLCBjbVRpbWUsIGNtVGltZSB9OworICAgIHN0YXR1cyA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24s
ICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3Jp
cHRpb24pOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6IGZhaWxlZCB0byBpbml0
aWFsaXplIENNU2FtcGxlQnVmZmVyIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxp
bnQ+KHN0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IGUwZGFhYzg1Yjg3M2Fk
NmFhOWI0YWIyZGI3YTAwOWNjMzdkNDc4OTUuLjMyYTA0NDk2Y2ZmN2Q4NDExMTIwZmNkMTMzZTZk
Njc0MjU0YTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KQEAgLTQ3LDcgKzQ3LDYgQEAg
U09GVExJTktfQVZLSVRfRlJBTUVXT1JLKCkKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVktp
dCwgQVZWYWx1ZVRpbWluZykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKIAogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OlBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZUFWS2l0KFBsYXliYWNrU2Vzc2lvbk1vZGVsJiBtb2RlbCkKICAgICA6IG1fcGxheWVy
Q29udHJvbGxlcihhZG9wdE5TKFtbV2ViQVZQbGF5ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0XSkp
CkBAIC0xNDUsNyArMTQ0LDcgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6
c2Vla2FibGVSYW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMmIHRpbWUKICAgICAgICAgZG91
YmxlIHN0YXJ0ID0gdGltZVJhbmdlcy5zdGFydChpKS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAg
ICAgICAgZG91YmxlIGVuZCA9IHRpbWVSYW5nZXMuZW5kKGkpLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OwogCi0gICAgICAgIENNVGltZVJhbmdlIHJhbmdlID0gQ01UaW1lUmFuZ2VNYWtlKENNVGltZU1h
a2VXaXRoU2Vjb25kcyhzdGFydCwgMTAwMCksIENNVGltZU1ha2VXaXRoU2Vjb25kcyhlbmQtc3Rh
cnQsIDEwMDApKTsKKyAgICAgICAgQ01UaW1lUmFuZ2UgcmFuZ2UgPSBQQUw6OkNNVGltZVJhbmdl
TWFrZShQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhzdGFydCwgMTAwMCksIFBBTDo6Q01UaW1l
TWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOwogICAgICAgICBbc2Vla2FibGVSYW5n
ZXMgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENNVGltZVJhbmdlOnJhbmdlXV07CiAgICAg
fQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCmluZGV4IGVhNDIzYzcxN2M3YWU5MWJkNGVlOTkw
ODdlMDdjNGU1YzM3ZTRjM2YuLjVkZjM0OWZjNmZjZGZjZmFlYTc1NTYzMjBmM2FlNmU2Njc2MzRl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQpAQCAtMzczLDcgKzM3Myw2IEBAIC0gKHZvaWQpcGlw
QWN0aW9uU3RvcDooUElQVmlld0NvbnRyb2xsZXIgKilwaXAKIEBlbmQKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
TWFjOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMoUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
TWFjJiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgOiBtX3BsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbC5jcHAKaW5kZXggODg0MDk0Mjk3OTI2YzhhZWJkZWY2ZjNlOTU3ODQyZjgz
NDI4Yjg5Mi4uZDQxOWUwZTE5MjU1NWQ3MzYwODU4NTFmNTRjYTAwNDBkNDZiNjYzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtNDIsNyArNDIsNiBAQAog
I2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShNZWRp
YVN0cmVhbVByaXZhdGUmIHN0cmVhbSwgY29uc3QgTWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25z
JiBvcHRpb25zKQogewpAQCAtODgsMTIgKzg3LDEyIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlQnVmZmVy
CiB7CiAgICAgaWYgKHNob3VsZE11dGVWaWRlbygpKSB7CiAgICAgICAgIGlmICghbV9ibGFja0Zy
YW1lKSB7Ci0gICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVm
ZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKTsKLSAgICAgICAgICAgIGF1dG8gZGltZW5zaW9ucyA9IENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVzY3JpcHRpb24u
Z2V0KCkpOworICAgICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxl
KCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgIGF1dG8gZGltZW5zaW9ucyA9
IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhtX2JsYWNrRnJhbWVE
ZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgICAgICAgICBtX2JsYWNrRnJhbWUgPSBjcmVhdGVCbGFj
a1BpeGVsQnVmZmVyKGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0KTsKIAogICAg
ICAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0g
bnVsbHB0cjsKLSAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9ibGFja0ZyYW1l
LmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgICAgICAgICAgYXV0byBzdGF0dXMgPSBQ
QUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9j
YXRvckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAg
ICAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1w
bGVBdmFpbGFibGUgOjp1bmFibGUgdG8gY3JlYXRlIGEgYmxhY2sgZnJhbWUgZGVzY3JpcHRpb246
ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgICAgICAgICBtX2JsYWNr
RnJhbWUgPSBudWxscHRyOwpAQCAtMTAzLDggKzEwMiw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlQnVm
ZmVyCiAgICAgICAgIH0KIAogICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBudWxs
cHRyOwotICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyB7IGtDTVRpbWVJbnZh
bGlkLCB0b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0aW9uVGltZSgpKSwgdG9DTVRpbWUo
c2FtcGxlQnVmZmVyLmRlY29kZVRpbWUoKSkgfTsKLSAgICAgICAgYXV0byBzdGF0dXMgPSBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQs
IChDVkltYWdlQnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0ZyYW1lRGVzY3Jp
cHRpb24uZ2V0KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKKyAgICAgICAgQ01TYW1wbGVUaW1p
bmdJbmZvIHRpbWluZ0luZm8geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OnRvQ01UaW1lKHNh
bXBsZUJ1ZmZlci5wcmVzZW50YXRpb25UaW1lKCkpLCBQQUw6OnRvQ01UaW1lKHNhbXBsZUJ1ZmZl
ci5kZWNvZGVUaW1lKCkpIH07CisgICAgICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVklt
YWdlQnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24u
Z2V0KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKIAogICAgICAgICBpZiAoc3RhdHVzICE9IG5v
RXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUgLSB1bmFibGUgdG8g
Y3JlYXRlIGEgYmxhY2sgZnJhbWU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNTFh
M2UxOGEyY2VkZDNjZDVkYTkzZjM0ZWJmMzcxMWUwMjBmOGI2Mi4uNWUxMTBlY2Q3ZGUzODQ2MWI0
MjkwNGEwZWI0ODgzNDE4NDNlNzVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAgLTM2LDEzICszNiwxMiBAQAogI2luY2x1ZGUgPHd0Zi9T
Y29wZS5oPgogCiAjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KKyNpbXBv
cnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiAjZGVmaW5lIExPV19XQVRFUl9USU1F
X0lOX1NFQ09ORFMgMC4xCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKLQogc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxs
YmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgYXV0byBjb21wcmVz
c29yID0gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4obmV3IEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpKTsKQEAgLTUyLDE1ICs1MSwxNSBAQCBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmNyZWF0ZQogfQogCiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCi0gICAgOiBtX3NlcmlhbERpc3BhdGNoUXVldWUgeyBX
b3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciIp
IH0KLSAgICAsIG1fbG93V2F0ZXJUaW1lIHsgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKExPV19XQVRF
Ul9USU1FX0lOX1NFQ09ORFMsIDEwMDApIH0KKyAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciIp
KQorICAgICwgbV9sb3dXYXRlclRpbWUoUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dB
VEVSX1RJTUVfSU5fU0VDT05EUywgMTAwMCkpCiB7CiB9CiAKIEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgaWYgKG1fY29u
dmVydGVyKSB7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7Cisg
ICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKICAgICAgICAg
bV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0KIH0KQEAgLTY4LDE5ICs2NywxOSBAQCBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQog
Ym9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1
ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAg
Q01CdWZmZXJRdWV1ZVJlZiBpbnB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVycm9yID0g
Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVl
R2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZpbnB1dEJ1ZmZlclF1ZXVl
KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29y
dGVkU2FtcGxlQnVmZmVycygpLCAmaW5wdXRCdWZmZXJRdWV1ZSkpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01C
dWZmZXJRdWV1ZUNyZWF0ZSBmb3IgbV9pbnB1dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1faW5wdXRCdWZmZXJR
dWV1ZSA9IGFkb3B0Q0YoaW5wdXRCdWZmZXJRdWV1ZSk7CiAKICAgICBDTUJ1ZmZlclF1ZXVlUmVm
IG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9y
VW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICBpZiAo
YXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZl
cnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlQ3Jl
YXRlIGZvciBtX291dHB1dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1fb3V0cHV0QnVmZmVyUXVldWUgPSBhZG9w
dENGKG91dHB1dEJ1ZmZlclF1ZXVlKTsKLSAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIo
bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01C
dWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVaZXJvLCBOVUxM
KTsKKyAgICBQQUw6OkNNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1
ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dl
cl9XaGVuRGF0YUJlY29tZXNSZWFkeSwgUEFMOjprQ01UaW1lWmVybywgTlVMTCk7CiAKICAgICBt
X2lzRW5jb2RpbmcgPSB0cnVlOwogICAgIHJldHVybiB0cnVlOwpAQCAtODksOCArODgsOCBAQCBi
b29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVl
VHJpZ2dlckNhbGxiYWNrIGNhbGxiYQogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmZpbmlzaCgpCiB7CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3Ro
aXNdIHsKLSAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShrQ01U
aW1lSW52YWxpZCk7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9m
RGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKKyAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1
ZmZlcnNVbnRpbExvd1dhdGVyVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0
byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJR
dWV1ZS5nZXQoKSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0
cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9m
RGF0YSBmYWlsZWQgJWQiLCBlcnJvcik7CiAgICAgICAgIG1faXNFbmNvZGluZyA9IGZhbHNlOwog
ICAgIH0pOwpAQCAtMTEyLDcgKzExMSw3IEBAIFVJbnQzMiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmRlZmF1bHRPdXRwdXRCaXRSYXRlKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNECiAKIGJv
b2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3Vy
Y2VGb3JtYXREZXNjcmlwdGlvbihDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uLCBBdWRpb0Zvcm1hdElEIG91dHB1dEZvcm1hdElEKQogewotICAgIGNvbnN0IGF1dG8gKmF1
ZGlvRm9ybWF0TGlzdEl0ZW0gPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVj
b2RhYmxlRm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBhdXRvICphdWRpb0Zv
cm1hdExpc3RJdGVtID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVj
b2RhYmxlRm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBtX3NvdXJjZUZvcm1hdCA9IGF1
ZGlvRm9ybWF0TGlzdEl0ZW0tPm1BU0JEOwogCiAgICAgbWVtc2V0KCZtX2Rlc3RpbmF0aW9uRm9y
bWF0LCAwLCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CkBAIC0xMjEsMzQg
KzEyMCwzNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29u
dmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIG1fZGVzdGluYXRpb25Gb3Jt
YXQubUNoYW5uZWxzUGVyRnJhbWUgPSBtX3NvdXJjZUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsK
IAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOwotICAgIGlm
IChhdXRvIGVycm9yID0gQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9wZXJ0
eV9Gb3JtYXRJbmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7Cisg
ICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvRm9ybWF0R2V0UHJvcGVydHkoa0F1ZGlvRm9y
bWF0UHJvcGVydHlfRm9ybWF0SW5mbywgMCwgTlVMTCwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9y
bWF0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0Zvcm1hdEdldFByb3BlcnR5IGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgQXVkaW9Db252
ZXJ0ZXJSZWYgY29udmVydGVyOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJO
ZXcoJm1fc291cmNlRm9ybWF0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZlcnRlcikpIHsK
KyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcoJm1fc291cmNlRm9y
bWF0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZlcnRlcikpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQXVk
aW9Db252ZXJ0ZXJOZXcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAgICAgbV9jb252ZXJ0ZXIgPSBjb252ZXJ0ZXI7CiAKICAgICBhdXRvIGNs
ZWFudXBJbkNhc2VPZkVycm9yID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAgICBBdWRpb0Nv
bnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVy
RGlzcG9zZShtX2NvbnZlcnRlcik7CiAgICAgICAgIG1fY29udmVydGVyID0gbnVsbHB0cjsKICAg
ICB9KTsKIAogICAgIHNpemVfdCBjb29raWVTaXplID0gMDsKLSAgICBjb25zdCB2b2lkICpjb29r
aWUgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3JtYXREZXNjcmlw
dGlvbiwgJmNvb2tpZVNpemUpOworICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IFBBTDo6Q01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRpb24sICZjb29r
aWVTaXplKTsKICAgICBpZiAoY29va2llU2l6ZSkgewotICAgICAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckRl
Y29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUpKSB7Cisg
ICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1f
Y29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUsIChVSW50
MzIpY29va2llU2l6ZSwgY29va2llKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9D
b252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBzaXpl
ID0gc2l6ZW9mKG1fc291cmNlRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1
dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBr
QXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX3Nv
dXJjZUZvcm1hdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50
SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE1OSw3ICsxNTgsNyBAQCBib29sIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24oQwogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7
Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVy
dGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXpl
LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVk
aW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVu
dE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURl
c2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQpAQCAtMTY3LDE0ICsxNjYsMTQgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAg
ICBpZiAobV9kZXN0aW5hdGlvbkZvcm1hdC5tRm9ybWF0SUQgPT0ga0F1ZGlvRm9ybWF0TVBFRzRB
QUMpIHsKICAgICAgICAgYm9vbCBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSA9IHRydWU7
CiAgICAgICAgIGlmIChtX291dHB1dEJpdFJhdGUpIHsKLSAgICAgICAgICAgIGF1dG8gZXJyb3Ig
PSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJF
bmNvZGVCaXRSYXRlLCBzaXplb2YoKm1fb3V0cHV0Qml0UmF0ZSksICZtX291dHB1dEJpdFJhdGUu
dmFsdWUoKSk7CisgICAgICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNl
dFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXpl
b2YoKm1fb3V0cHV0Qml0UmF0ZSksICZtX291dHB1dEJpdFJhdGUudmFsdWUoKSk7CiAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgc2hvdWxkU2V0RGVmYXVsdE91dHB1
dEJpdFJhdGUgPSAhIWVycm9yOwogICAgICAgICB9CiAgICAgICAgIGlmIChzaG91bGRTZXREZWZh
dWx0T3V0cHV0Qml0UmF0ZSkgewogICAgICAgICAgICAgYXV0byBvdXRwdXRCaXRSYXRlID0gZGVm
YXVsdE91dHB1dEJpdFJhdGUobV9kZXN0aW5hdGlvbkZvcm1hdCk7CiAgICAgICAgICAgICBzaXpl
ID0gc2l6ZW9mKG91dHB1dEJpdFJhdGUpOwotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBB
dWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNv
ZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCisgICAgICAgICAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlv
Q29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZSwgJm91dHB1dEJpdFJhdGUpKQogICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIHNldHRpbmcgZGVmYXVsdCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTgzLDcgKzE4Miw3
IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJG
b3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgICAgIC8vIElmIHRoZSBkZXN0aW5hdGlv
biBmb3JtYXQgaXMgVkJSLCB3ZSBuZWVkIHRvIGdldCBtYXggc2l6ZSBwZXIgcGFja2V0IGZyb20g
dGhlIGNvbnZlcnRlci4KICAgICAgICAgc2l6ZSA9IHNpemVvZihtX21heE91dHB1dFBhY2tldFNp
emUpOwogCi0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0
eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0
U2l6ZSwgJnNpemUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7CisgICAgICAgIGlmIChhdXRv
IGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4
T3V0cHV0UGFja2V0U2l6ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
U3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVy
dGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMjExLDYgKzIxMCw4
IEBAIHNpemVfdCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNvbXB1dGVCdWZmZXJTaXpl
Rm9yQXVkaW9Gb3JtYXQoQXVkaW9TdHJlYW1CCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZChDTVNhbXBsZUJ1ZmZlclJlZiBidWZm
ZXIpCiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGlmIChDTVRJTUVfSVNfSU5W
QUxJRChtX3JlbWFpbmluZ1ByaW1lRHVyYXRpb24pKSB7CiAgICAgICAgIEF1ZGlvQ29udmVydGVy
UHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKICAgICAgICAgVUludDMyIHNpemUgPSBzaXpl
b2YocHJpbWVJbmZvKTsKQEAgLTIzNiwyNSArMjM3LDI1IEBAIFJldGFpblB0cjxOU051bWJlcj4g
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2RlclJlZnJlc2hDb3VudCgp
CiB7CiAgICAgVUludDMyIGRlbGF5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7CiAgICAgdWludDMy
X3Qgb3JpZ2luYWxEZWxheU1vZGUgPSAwOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9k
ZSwgJmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgeworICAgIGlmIChhdXRvIGVycm9y
ID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2Rl
Y1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICB1aW50MzJf
dCBvcHRpbWFsRGVsYXlNb2RlID0ga0F1ZGlvQ29kZWNEZWxheU1vZGVfT3B0aW1hbDsKLSAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtB
dWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxEZWxheU1vZGUp
KSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9w
dGltYWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0
eURlbGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsK
ICAgICB9CiAKICAgICBVSW50MzIgcHJpbWVTaXplID0gc2l6ZW9mKEF1ZGlvQ29kZWNQcmltZUlu
Zm8pOwogICAgIEF1ZGlvQ29kZWNQcmltZUluZm8gcHJpbWVJbmZvIHsgMCwgMCB9OwotICAgIGlm
IChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1
ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5mbykpIHsKKyAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5m
bykpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJbmZvIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAotICAg
IGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwg
a0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1v
ZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwg
Jm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJv
cGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBu
aWw7CiAgICAgfQpAQCAtMjY3LDE4ICsyNjgsMTggQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIK
ICAgICBpZiAoIW1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikgewogICAgICAgICBVSW50
MzIgY29va2llU2l6ZSA9IDA7CiAKLSAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1h
Z2ljQ29va2llLCAmY29va2llU2l6ZSwgTlVMTCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBQQUw6
OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0
ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgTlVMTCk7CiAgICAgICAgIGlm
ICgoZXJyb3IgPT0gbm9FcnIpICYmICEhY29va2llU2l6ZSkgewogICAgICAgICAgICAgY29va2ll
LnJlc2l6ZShjb29raWVTaXplKTsKIAotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRp
b0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVz
c2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsKKyAgICAgICAg
ICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29u
dmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6
ZSwgY29va2llLmRhdGEoKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0Nv
bnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAg
ICAgICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlv
bjsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEwsIGNv
b2tpZVNpemUsIGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0
aW9uKSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAw
LCBOVUxMLCBjb29raWVTaXplLCBjb29raWUuZGF0YSgpLCBOVUxMLCAmZGVzdGluYXRpb25Gb3Jt
YXREZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBuaWw7
CiAgICAgICAgIH0KQEAgLTI5MCwyNiArMjkxLDI2IEBAIENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tldHMoVUludDMy
CiAgICAgc2l6ZV90IGRhdGFTaXplID0gZmlsbEJ1ZmZlckxpc3QubUJ1ZmZlcnNbMF0ubURhdGFC
eXRlU2l6ZTsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXI7Ci0gICAgaWYgKGF1
dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIE5VTEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBk
YXRhU2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIp
KSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVt
b3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZGF0YVNpemUsIGtDRkFsbG9jYXRv
ckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXplLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5v
d0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFT
dHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlckNyZWF0ZVdp
dGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5p
bDsKICAgICB9CiAgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKGJsb2NrQnVmZmVyKTsKIAotICAg
IGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMoZGF0YSwgYnVm
ZmVyLmdldCgpLCAwLCBkYXRhU2l6ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01C
bG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMoZGF0YSwgYnVmZmVyLmdldCgpLCAwLCBkYXRhU2l6
ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxl
QnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBi
dWZmZXIuZ2V0KCksIHRydWUsIE5VTEwsIE5VTEwsIG1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlw
dGlvbi5nZXQoKSwgbnVtUGFja2V0cywgbV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0
YW1wLCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnNhbXBsZUJ1ZmZl
cik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQ
YWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCB0cnVl
LCBOVUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksIG51bVBh
Y2tldHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCwgbV9kZXN0aW5hdGlv
blBhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIpOwogICAgIGlmIChlcnJv
cikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3NvciBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2Ny
aXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAg
ICB9CiAKICAgICBpZiAoW21fZ2RyQ291bnROdW0gaW50VmFsdWVdKQotICAgICAgICBDTVNldEF0
dGFjaG1lbnQoc2FtcGxlQnVmZmVyLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1
YWxEZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgp
LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOworICAgICAgICBQQUw6OkNNU2V0
QXR0YWNobWVudChzYW1wbGVCdWZmZXIsIFBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtl
eV9HcmFkdWFsRGVjb2RlclJlZnJlc2gsIChfX2JyaWRnZSBDRlR5cGVSZWYpbV9nZHJDb3VudE51
bS5nZXQoKSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKIAogICAgIHJldHVy
biBzYW1wbGVCdWZmZXI7CiB9CkBAIC0zNDEsMjQgKzM0MiwyNCBAQCBPU1N0YXR1cyBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyhV
SW50MzIqCiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsK
ICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAoQ01CdWZmZXJRdWV1ZUlz
RW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKKyAgICAgICAgICAgICAgICBpZiAoUEFM
OjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVmZmVy
ID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVy
UXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7Ci0gICAg
ICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1
ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVm
ZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6
Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkp
KTsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgICAgICBp
ZiAoIW1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01TYW1w
bGVCdWZmZXJHZXREYXRhQnVmZmVyIGZhaWxlZCIpOwogICAgICAgICAgICAgICAgICAgICBtX3Nh
bXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudE9m
ZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZl
clNpemUgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdl
dCgpKTsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IFBBTDo6Q01C
bG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSk7CiAgICAg
ICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAg
ICAgICAgICAgICAgc2l6ZV90IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1p
bihudW1CeXRlc1RvQ29weSwgKG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplIC0gbV9jdXJyZW50T2Zm
c2V0SW5TYW1wbGVCbG9ja0J1ZmZlcikpOwotICAgICAgICAgICAgICAgIGlmIChhdXRvIGVycm9y
ID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwg
bV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2Ft
cGxlQmJ1ZiwgKG1fc291cmNlQnVmZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1
ZmZlcikpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tC
dWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9m
ZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsICht
X3NvdXJjZUJ1ZmZlci5kYXRhKCkgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgewog
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAg
ICAgICAgICAgICAgIH0KQEAgLTM5MywyOCArMzk0LDI4IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQz
MioKICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVm
ZmVyUXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1w
dHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgICAgICBicmVhazsKIAot
ICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJl
ZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1
dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIg
PSBhZG9wdENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihD
TVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkpKSk7CisgICAg
ICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShj
b25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5w
dXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVy
ID0gYWRvcHRDRigoQ01CbG9ja0J1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ0ZSZXRhaW4o
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkpKSk7
CiAgICAgICAgICAgICBpZiAoIW1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIgZmFpbGVkIik7CiAgICAgICAgICAgICAg
ICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgICAgIG1fY3VycmVu
dE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBD
TUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7
CisgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IFBBTDo6Q01CbG9ja0J1ZmZl
ckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSkgLyAyOwogICAgICAgICAg
ICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgc2l6ZV90IG51
bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1pbihudW1CeXRlc1RvQ29weSwgKG1f
c2FtcGxlQmxvY2tCdWZmZXJTaXplIC0gbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
cikpOwotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURhdGFC
eXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJs
b2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoZmlyc3RDaGFubmVsICsg
Y3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVy
cm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVy
LmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29w
eUZyb21TYW1wbGVCYnVmLCAoZmlyc3RDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVm
ZmVyKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
IkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyBm
aXJzdCBjaGFubmVsIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBlcnJvcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0g
Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9j
dXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXpl
LCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25kQ2hhbm5lbCArIGN1cnJlbnRP
ZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBB
TDo6Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwg
bV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2FtcGxlQmxvY2tCdWZmZXJT
aXplLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25kQ2hhbm5lbCArIGN1cnJl
bnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1
ZmZlckNvcHlEYXRhQnl0ZXMgc2Vjb25kIGNoYW5uZWwgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICAgICAgfQpAQCAtNDM4LDYg
KzQzOSw4IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNv
dXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1l
IGxvd1dhdGVyVGltZSkKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1F
X0NPTVBBUkVfSU5MSU5FCisKICAgICBpZiAoIW1fY29udmVydGVyKSB7CiAgICAgICAgIGlmIChD
TUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtNTAxLDcgKzUwNCw3IEBAIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENNVGltZSBsCiAK
IHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKENN
U2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKLSAgICBhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1
ZUVucXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOworICAgIGF1dG8gZXJy
b3IgPSBQQUw6OkNNQnVmZmVyUXVldWVFbnF1ZXVlKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSwg
YnVmZmVyKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAKICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJU
aW1lKG1fbG93V2F0ZXJUaW1lKTsKQEAgLTUyMCwxMiArNTIzLDEyIEBAIHZvaWQgQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVm
ZmVyKQogCiBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6Omdl
dE91dHB1dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZiko
Y29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1
ZS5nZXQoKSkpKTsKKyAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZv
aWQqPihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkp
KSk7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gYWRvcHRD
RigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1
ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgIHJldHVybiBh
ZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZl
clF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKIH0K
IAogdW5zaWduZWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpiaXRSYXRlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgK
aW5kZXggZjVmODU1ODcxZmM3MDg1NjZmN2VmOGI5YTE2MWUyN2I4ZTVkODllZC4uYjc1NThkMjgw
YzJlZjc5NjA2OGNhYzBjYzk2YjUwMzNkYzM3MDk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2Nv
YS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKQEAgLTEyNyw4ICsxMjcsOCBAQCBw
cml2YXRlOgogICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX3ZpZGVvRm9y
bWF0RGVzY3JpcHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcj4gbV92aWRlb0NvbXByZXNzb3I7CiAgICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXJJ
bnB1dD4gbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQ7Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJl
c2VudGF0aW9uVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07Ci0gICAgQ01UaW1lIG1fbGFzdFZpZGVv
RGVjb2RpbmdUaW1lIHsga0NNVGltZUludmFsaWQgfTsKKyAgICBDTVRpbWUgbV9sYXN0VmlkZW9Q
cmVzZW50YXRpb25UaW1lOworICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5nVGltZTsKICAg
ICBib29sIG1faGFzRW5jb2RlZFZpZGVvU2FtcGxlcyB7IGZhbHNlIH07CiAKICAgICBSZXRhaW5Q
dHI8V2ViQVZBc3NldFdyaXRlckRlbGVnYXRlPiBtX3dyaXRlckRlbGVnYXRlOwpAQCAtMTM5LDkg
KzEzOSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFN0b3BBZnRlckZsdXNoaW5nU2Ft
cGxlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ZpcnN0VmlkZW9GcmFtZSB7IGZhbHNlIH07CiAg
ICAgc3RkOjpvcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gbV92aWRlb1RyYW5zZm9ybTsKLSAg
ICBDTVRpbWUgbV9yZXN1bWVkVmlkZW9UaW1lIHsga0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUg
bV9jdXJyZW50VmlkZW9EdXJhdGlvbiB7IGtDTVRpbWVaZXJvIH07Ci0gICAgQ01UaW1lIG1fY3Vy
cmVudEF1ZGlvU2FtcGxlVGltZSB7IGtDTVRpbWVaZXJvIH07CisgICAgQ01UaW1lIG1fcmVzdW1l
ZFZpZGVvVGltZTsKKyAgICBDTVRpbWUgbV9jdXJyZW50VmlkZW9EdXJhdGlvbjsKKyAgICBDTVRp
bWUgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lOwogICAgIGRvdWJsZSBtX3RpbWVDb2RlIHsgMCB9
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLm1tCmluZGV4IDYzYmQ2NTk4ZDAyYTVjNzAwNmRhOTI5ZmM5NGYxZjVmNjZhNzE2ZGEu
LjZhZDIwYmU4Y2I1NzkyM2EwZTc4NDJlMzcwMWQzM2E2YWEwM2FiNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KQEAgLTkzLDgg
KzkzLDYgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7Ci0KIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBjb25zdCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgYXV0byB3cml0ZXIg
PSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKGhhc0F1ZGlvLCBoYXNW
aWRlbykpOwpAQCAtMTIyLDYgKzEyMCwxMSBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjpjb21wcmVzc2VkQXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFjayh2b2lkICptZWRpYQogTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKGJvb2wg
aGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8pCiAgICAgOiBtX2hhc0F1ZGlvKGhhc0F1ZGlvKQogICAg
ICwgbV9oYXNWaWRlbyhoYXNWaWRlbykKKyAgICAsIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGlt
ZShQQUw6OmtDTVRpbWVJbnZhbGlkKQorICAgICwgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUoUEFM
OjprQ01UaW1lSW52YWxpZCkKKyAgICAsIG1fcmVzdW1lZFZpZGVvVGltZShQQUw6OmtDTVRpbWVa
ZXJvKQorICAgICwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbihQQUw6OmtDTVRpbWVaZXJvKQorICAg
ICwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKFBBTDo6a0NNVGltZVplcm8pCiB7CiB9CiAKQEAg
LTE3OSw3ICsxODIsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNz
TmV3Q29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycygpCiB7CiAgICAgQVNTRVJUKG1faGFzVmlk
ZW8pOwogICAgIGlmICghbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uKSB7Ci0gICAgICAgIG1fdmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24o
bV92aWRlb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKKyAgICAgICAgbV92
aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2Ny
aXB0aW9uKG1fdmlkZW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CiAKICAg
ICAgICAgaWYgKG1faGFzQXVkaW8gJiYgIW1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbikKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTE5Niw3ICsxOTksNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29tcHJlc3NlZEF1ZGlvU2FtcGxlQnVmZmVycygpCiB7CiAg
ICAgQVNTRVJUKG1faGFzQXVkaW8pOwogICAgIGlmICghbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9u
KSB7Ci0gICAgICAgIG1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0
Rm9ybWF0RGVzY3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZl
cigpKTsKKyAgICAgICAgbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1fYXVkaW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1w
bGVCdWZmZXIoKSk7CiAgICAgICAgIGlmIChtX2hhc1ZpZGVvICYmICFtX3ZpZGVvRm9ybWF0RGVz
Y3JpcHRpb24pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTIzOCw3ICsyNDEsNyBAQCB2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3JpdGVyKCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNlc3Npb25BdFNvdXJj
ZVRpbWU6a0NNVGltZVplcm9dOworICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNlc3Npb25BdFNv
dXJjZVRpbWU6UEFMOjprQ01UaW1lWmVyb107CiAKICAgICBhcHBlbmRDb21wcmVzc2VkU2FtcGxl
QnVmZmVycygpOwogCkBAIC0zMDAsOCArMzAzLDggQEAgYm9vbCBNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVySWZQb3NzaWJsZSgpCiB2
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1w
bGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogewogICAgIEFTU0VSVChbbV92aWRl
b0Fzc2V0V3JpdGVySW5wdXQgaXNSZWFkeUZvck1vcmVNZWRpYURhdGFdKTsKLSAgICBtX2xhc3RW
aWRlb1ByZXNlbnRhdGlvblRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVT
dGFtcChidWZmZXIpOwotICAgIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lID0gQ01TYW1wbGVCdWZm
ZXJHZXREZWNvZGVUaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBtX2xhc3RWaWRlb1ByZXNlbnRhdGlv
blRpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZl
cik7CisgICAgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
RGVjb2RlVGltZVN0YW1wKGJ1ZmZlcik7CiAgICAgbV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzID0g
dHJ1ZTsKIAogICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKSBhcHBlbmRTYW1wbGVC
dWZmZXI6YnVmZmVyXTsKQEAgLTMxNCwxNyArMzE3LDE3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCkKIAogc3RhdGljIGlu
bGluZSB2b2lkIGFwcGVuZEVuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uTWFya2VyKEFWQXNzZXRX
cml0ZXJJbnB1dCAqYXNzZXRXcml0ZXJJbnB1dCwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFt
cCwgQ01UaW1lIGRlY29kaW5nVGltZVN0YW1wKQogewotICAgIENNU2FtcGxlVGltaW5nSW5mbyB0
aW1pbmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkZWNv
ZGluZ1RpbWVTdGFtcH07CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IFBB
TDo6a0NNVGltZUludmFsaWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZGVjb2RpbmdUaW1lU3Rh
bXB9OwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyID0gTlVMTDsKLSAgICBhdXRvIGVy
cm9yID0gQ01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgdHJ1
ZSwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5VTEwsICZidWZmZXIp
OworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIE5VTEwsIHRydWUsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEsICZ0aW1pbmdJbmZv
LCAwLCBOVUxMLCAmYnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBhcHBlbmRF
bmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlciBmYWlsZWQgQ01TYW1wbGVCdWZmZXJDcmVh
dGUgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHNh
bXBsZUJ1ZmZlciA9IGFkb3B0Q0YoYnVmZmVyKTsKIAotICAgIENNU2V0QXR0YWNobWVudChzYW1w
bGVCdWZmZXIuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3Vz
U2FtcGxlRHVyYXRpb24sIGtDRkJvb2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQ
cm9wYWdhdGUpOworICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlci5nZXQoKSwg
UEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0
aW9uLCBrQ0ZCb29sZWFuVHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsK
ICAgICBpZiAoIVthc3NldFdyaXRlcklucHV0IGFwcGVuZFNhbXBsZUJ1ZmZlcjpzYW1wbGVCdWZm
ZXIuZ2V0KCldKQogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZFNhbXBsZUJ1ZmZlciB0byB3cml0ZXIgaW5wdXQg
ZmFpbGVkIik7CiB9CkBAIC0zODIsMTggKzM4NSwxOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjpmbHVzaENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKEZ1bmN0aW9uPHZvaWQoKT4m
Jgogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNvcHlTYW1wbGVC
dWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcChDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbEJ1ZmZl
ciwgQ01UaW1lIHN0YXJ0VGltZSkKIHsKICAgICBDTUl0ZW1Db3VudCBjb3VudCA9IDA7Ci0gICAg
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIsIDAs
IG5pbCwgJmNvdW50KTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5KG9yaWdpbmFsQnVmZmVyLCAwLCBuaWwsICZjb3VudCk7CiAKICAgICBWZWN0b3I8Q01T
YW1wbGVUaW1pbmdJbmZvPiB0aW1lSW5mbyhjb3VudCk7Ci0gICAgQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIsIGNvdW50LCB0aW1lSW5mby5kYXRh
KCksICZjb3VudCk7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9B
cnJheShvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50KTsKIAog
ICAgIGZvciAoYXV0byBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgdGltZUluZm9b
aV0uZGVjb2RlVGltZVN0YW1wID0ga0NNVGltZUludmFsaWQ7CisgICAgICAgIHRpbWVJbmZvW2ld
LmRlY29kZVRpbWVTdGFtcCA9IFBBTDo6a0NNVGltZUludmFsaWQ7CiAgICAgICAgIHRpbWVJbmZv
W2ldLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IHN0YXJ0VGltZTsKICAgICB9CiAKICAgICBDTVNh
bXBsZUJ1ZmZlclJlZiBuZXdCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChhdXRvIGVycm9yID0g
Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1ZmZlcikpIHsK
KyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5l
d1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJ
bmZvLmRhdGEoKSwgJm5ld0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZUNvcHlXaXRoTmV3VGltaW5nIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CkBAIC00MDQsNyArNDA3LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBs
ZSkKIHsKICAgICBpZiAoIW1fZmlyc3RWaWRlb0ZyYW1lKSB7CiAgICAgICAgIG1fZmlyc3RWaWRl
b0ZyYW1lID0gdHJ1ZTsKLSAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gQ01DbG9ja0dldFRp
bWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CisgICAgICAgIG1fcmVzdW1lZFZpZGVvVGlt
ZSA9IFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKTsK
ICAgICAgICAgaWYgKHNhbXBsZS52aWRlb1JvdGF0aW9uKCkgIT0gTWVkaWFTYW1wbGU6OlZpZGVv
Um90YXRpb246Ok5vbmUgfHwgc2FtcGxlLnZpZGVvTWlycm9yZWQoKSkgewogICAgICAgICAgICAg
bV92aWRlb1RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVJvdGF0aW9uKHN0YXRpY19j
YXN0PGludD4oc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgKiBNX1BJIC8gMTgwKTsKICAgICAgICAg
ICAgIGlmIChzYW1wbGUudmlkZW9NaXJyb3JlZCgpKQpAQCAtNDEyLDggKzQxNSw4IEBAIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlh
U2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvIHNhbXBsZVRpbWUg
PSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygp
KSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICBzYW1wbGVUaW1lID0gQ01UaW1lQWRkKHNhbXBs
ZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOworICAgIGF1dG8gc2FtcGxlVGltZSA9IFBB
TDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0
VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgIHNhbXBsZVRpbWUgPSBQQUw6
OkNNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKICAgICBpZiAo
YXV0byBidWZmZXJXaXRoQ3VycmVudFRpbWUgPSBjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRU
aW1lU3RhbXAoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCBz
YW1wbGVUaW1lKSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihi
dWZmZXJXaXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQpAQCAtNDIyLDcgKzQyNSw3IEBAIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRl
QXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxl
VGltZSwgc2FtcGxlQ291bnQpKQogICAgICAgICBtX2F1ZGlvQ29tcHJlc3Nvci0+YWRkU2FtcGxl
QnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7Ci0gICAgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1l
ID0gQ01UaW1lQWRkKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgdG9DTVRpbWUoTWVkaWFUaW1l
KHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7CisgICAgbV9jdXJyZW50
QXVkaW9TYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVBZGQobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1l
LCBQQUw6OnRvQ01UaW1lKE1lZGlhVGltZShzYW1wbGVDb3VudCwgZGVzY3JpcHRpb24uc2FtcGxl
UmF0ZSgpKSkpOwogfQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpmaW5pc2hl
ZEZsdXNoaW5nU2FtcGxlcygpCkBAIC01MjMsMTAgKzUyNiwxMCBAQCB2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpjb21wbGV0ZUZldGNoRGF0YSgpCiB7CiAgICAgYXV0byBjdXJyZW50
VGltZUNvZGUgPSBtX3RpbWVDb2RlOwogICAgIGlmIChtX2hhc0F1ZGlvKQotICAgICAgICBtX3Rp
bWVDb2RlID0gQ01UaW1lR2V0U2Vjb25kcyhtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUpOworICAg
ICAgICBtX3RpbWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKG1fY3VycmVudEF1ZGlvU2Ft
cGxlVGltZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gc2FtcGxlVGltZSA9IENNVGltZVN1
YnRyYWN0KENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3Vt
ZWRWaWRlb1RpbWUpOwotICAgICAgICBtX3RpbWVDb2RlID0gQ01UaW1lR2V0U2Vjb25kcyhDTVRp
bWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbikpOworICAgICAgICBhdXRv
IHNhbXBsZVRpbWUgPSBQQUw6OkNNVGltZVN1YnRyYWN0KFBBTDo6Q01DbG9ja0dldFRpbWUoUEFM
OjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICAg
ICAgbV90aW1lQ29kZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhQQUw6OkNNVGltZUFkZChzYW1w
bGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKSk7CiAgICAgfQogICAgIG1fZmV0Y2hEYXRh
Q29tcGxldGlvbkhhbmRsZXIodGFrZURhdGEoKSwgY3VycmVudFRpbWVDb2RlKTsKIH0KQEAgLTU1
MCwxMyArNTUzLDEzIEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjp0YWtlRGF0YSgpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnBh
dXNlKCkKIHsKLSAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gQ01UaW1lU3VidHJhY3QoQ01D
bG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGlt
ZSk7Ci0gICAgbV9jdXJyZW50VmlkZW9EdXJhdGlvbiA9IENNVGltZUFkZChyZWNvcmRpbmdEdXJh
dGlvbiwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CisgICAgYXV0byByZWNvcmRpbmdEdXJhdGlv
biA9IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tH
ZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgIG1fY3VycmVudFZp
ZGVvRHVyYXRpb24gPSBQQUw6OkNNVGltZUFkZChyZWNvcmRpbmdEdXJhdGlvbiwgbV9jdXJyZW50
VmlkZW9EdXJhdGlvbik7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnJl
c3VtZSgpCiB7Ci0gICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gQ01DbG9ja0dldFRpbWUoQ01DbG9j
a0dldEhvc3RUaW1lQ2xvY2soKSk7CisgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpDTUNs
b2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogfQogCiBjb25zdCBT
dHJpbmcmIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjptaW1lVHlwZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IDc2ZDU2
ZDdiOGQxM2M3MmVhMzlmYzM0OTlkMTc5ODk5NzE3ZjBlNzguLmQwNzYwZjA3ZTM3MDgxMjdmOWRl
MmVmYWY5MmYwZTA3NzJmZDM4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLm1tCkBAIC0zNCwxMiArMzQsMTEgQEAKICNpbXBvcnQgPFZpZGVvVG9v
bGJveC9WVENvbXByZXNzaW9uU2Vzc2lvbi5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+
CiAKKyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2Nm
L1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKLQogc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoU3RyaW5nIG1pbWVUeXBl
LCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09i
amVjdCkKIHsKICAgICBhdXRvIHByb2ZpbGUgPSBQcm9maWxlOjpCYXNlbGluZTsKQEAgLTY5LDcg
KzY4LDcgQEAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IoQ01WaWRlb0NvZGVjVHlwZSBvdXRwdXQKIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgaWYgKG1fdnRTZXNz
aW9uKSB7Ci0gICAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShtX3Z0U2Vzc2lv
bi5nZXQoKSk7CisgICAgICAgIFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1f
dnRTZXNzaW9uLmdldCgpKTsKICAgICAgICAgbV92dFNlc3Npb24gPSBudWxscHRyOwogICAgIH0K
IH0KQEAgLTc3LDEyICs3NiwxMiBAQCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9p
ZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBvdXRwdXRCdWZmZXJR
dWV1ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxl
QnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQ
QUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFMOjpDTUJ1
ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRC
dWZmZXJRdWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgdW5hYmxlIHRvIGNyZWF0ZSBidWZmZXIgcXVldWUg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9vdXRwdXRC
dWZmZXJRdWV1ZSA9IG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIENNQnVmZmVyUXVldWVJbnN0YWxs
VHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmpl
Y3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVpl
cm8sIE5VTEwpOworICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0
QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVl
dWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsK
IAogICAgIG1faXNFbmNvZGluZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBAIC05NiwxMCAr
OTUsMTAgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNldEJpdHNQZXJTZWNv
bmQodW5zaWduZWQgYml0UmF0ZSkKIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2goKQogewogICAgIG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlz
XSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRlRnJh
bWVzKG1fdnRTZXNzaW9uLmdldCgpLCBrQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8gZXJy
b3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92dFNlc3Npb24u
Z2V0KCksIFBBTDo6a0NNVGltZUludmFsaWQpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
RihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21w
cmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAot
ICAgICAgICBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVy
UXVldWUuZ2V0KCkpOworICAgICAgICBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRP
ZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBD
TUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAogICAg
ICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKQEAgLTExNCw3ICsxMTMsNyBAQCB2b2lkIFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dmlkZW9Db21wcmVzc2lvbkNhbGxiYWNrKHZvaWQgKnJl
ZkNvbiwgdm9pZCosCiAKICAgICBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgKmNvbXByZXNz
b3IgPSBzdGF0aWNfY2FzdDxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IqPihyZWZDb24pOwog
Ci0gICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVFbnF1ZXVlKGNvbXByZXNzb3ItPm1fb3V0
cHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01C
dWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwg
YnVmZmVyKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiB9CiAKQEAgLTEzMCw1MyArMTI5LDUzIEBAIENGU3RyaW5nUmVmIFZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dnRQcm9maWxlTGV2ZWwoKSBjb25zdAogewogICAg
IHN3aXRjaCAobV9wcm9maWxlKSB7CiAgICAgY2FzZSBQcm9maWxlOjpCYXNlbGluZToKLSAgICAg
ICAgcmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbDsKKyAgICAg
ICAgcmV0dXJuIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOwog
ICAgIGNhc2UgUHJvZmlsZTo6SGlnaDoKLSAgICAgICAgcmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9I
MjY0X0hpZ2hfQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxf
SDI2NF9IaWdoX0F1dG9MZXZlbDsKICAgICBjYXNlIFByb2ZpbGU6Ok1haW46Ci0gICAgICAgIHJl
dHVybiBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbDsKKyAgICAgICAgcmV0dXJu
IFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWw7CiAgICAgfQogfQogCiBi
b29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbihD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24pCiB7Ci0gICAgQ01W
aWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERp
bWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24pOworICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVu
c2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0
RGVzY3JpcHRpb24pOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBOU0RpY3Rpb25hcnkgKmVuY29k
ZXJTcGVjaWZpY2F0aW9ucyA9IG5pbDsKICNlbHNlCi0gICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVy
U3BlY2lmaWNhdGlvbnMgPSBAeyhfX2JyaWRnZSBOU1N0cmluZyAqKWtWVFZpZGVvRW5jb2RlclNw
ZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlcjpAWUVTfTsK
KyAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9IEB7KF9fYnJpZGdlIE5T
U3RyaW5nICopUEFMOjprVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJl
QWNjZWxlcmF0ZWRWaWRlb0VuY29kZXI6QFlFU307CiAjZW5kaWYKIAogICAgIFZUQ29tcHJlc3Np
b25TZXNzaW9uUmVmIHZ0U2Vzc2lvbjsKLSAgICBhdXRvIGVycm9yID0gVlRDb21wcmVzc2lvblNl
c3Npb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGltZW5zaW9ucy53aWR0aCwgZGltZW5z
aW9ucy5oZWlnaHQsIG1fb3V0cHV0Q29kZWNUeXBlLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVm
KWVuY29kZXJTcGVjaWZpY2F0aW9ucywgTlVMTCwgTlVMTCwgdmlkZW9Db21wcmVzc2lvbkNhbGxi
YWNrLCB0aGlzLCAmdnRTZXNzaW9uKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNz
aW9uU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBk
aW1lbnNpb25zLmhlaWdodCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25h
cnlSZWYpZW5jb2RlclNwZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9u
Q2FsbGJhY2ssIHRoaXMsICZ2dFNlc3Npb24pOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ciBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAg
ICAgICAgcmV0dXJuIE5POwogICAgIH0KICAgICBtX3Z0U2Vzc2lvbiA9IGFkb3B0Q0YodnRTZXNz
aW9uKTsKIAotICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0
KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJvb2xlYW5UcnVlKTsK
KyAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6
OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJvb2xlYW5UcnVlKTsKICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9SZWFsVGltZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBlcnJvciA9IHNldENv
bXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lv
blByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgbV9tYXhLZXlGcmFtZUlu
dGVydmFsRHVyYXRpb24pOworICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhL
ZXlGcmFtZUludGVydmFsRHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uKTsK
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJv
cik7Ci0gICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lv
bi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSwgbV9l
eHBlY3RlZEZyYW1lUmF0ZSk7CisgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9w
ZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4
cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
VlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZy
YW1lUmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAotICAgIGVycm9yID0gVlRTZXNzaW9u
U2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlf
UHJvZmlsZUxldmVsLCB2dFByb2ZpbGVMZXZlbCgpKTsKKyAgICBlcnJvciA9IFZUU2Vzc2lvblNl
dFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfUHJvZmlsZUxldmVsLCB2dFByb2ZpbGVMZXZlbCgpKTsKICAgICBpZiAoZXJyb3IpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Q
cm9maWxlTGV2ZWwgZmFpbGVkIHdpdGggJWQgZm9yIHByb2ZpbGUgJWQiLCBlcnJvciwgbV9wcm9m
aWxlKTsKICAgICAgICAgaWYgKG1fcHJvZmlsZSAhPSBQcm9maWxlOjpCYXNlbGluZSkgewotICAg
ICAgICAgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwg
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIGtWVFByb2ZpbGVMZXZlbF9I
MjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCk7CisgICAgICAgICAgICBlcnJvciA9IFZUU2Vzc2lvblNl
dFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfUHJvZmlsZUxldmVsLCBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9M
ZXZlbCk7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJl
YW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZmFpbGVkIHdpdGggJWQgZm9yIGRl
ZmF1bHQgcHJvZmlsZSIsIGVycm9yKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChtX291
dHB1dEJpdFJhdGUpIHsKLSAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9w
ZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdl
Qml0UmF0ZSwgKm1fb3V0cHV0Qml0UmF0ZSk7CisgICAgICAgIGVycm9yID0gc2V0Q29tcHJlc3Np
b25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgKm1fb3V0cHV0Qml0UmF0ZSk7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X0F2ZXJhZ2VCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgIH0KIAotICAgIGVy
cm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMobV92dFNlc3Np
b24uZ2V0KCkpOworICAgIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVU
b0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29t
cHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJy
b3IpOwogCiAgICAgcmV0dXJuIFlFUzsKQEAgLTE4NSwxNCArMTg0LDE0IEBAIGJvb2wgVmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvCiB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1Nh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgaWYgKCFtX3Z0U2Vz
c2lvbikgewotICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Npb24oQ01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbihidWZmZXIpKSkKKyAgICAgICAgaWYgKCFpbml0Q29tcHJl
c3Npb25TZXNzaW9uKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihidWZm
ZXIpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGltYWdlQnVmZmVy
ID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihidWZmZXIpOwotICAgIGF1dG8gcHJlc2Vu
dGF0aW9uVGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
YnVmZmVyKTsKLSAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihi
dWZmZXIpOwotICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1l
KG1fdnRTZXNzaW9uLmdldCgpLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBk
dXJhdGlvbiwgTlVMTCwgdGhpcywgTlVMTCk7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihidWZmZXIpOworICAgIGF1dG8gcHJlc2VudGF0
aW9uVGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFt
cChidWZmZXIpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVy
YXRpb24oYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lv
bkVuY29kZUZyYW1lKG1fdnRTZXNzaW9uLmdldCgpLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9u
VGltZVN0YW1wLCBkdXJhdGlvbiwgTlVMTCwgdGhpcywgTlVMTCk7CiAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiB9CiAKQEAgLTIwOCwxMiArMjA3LDEyIEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogCiBDTVNhbXBs
ZUJ1ZmZlclJlZiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1
ZmZlcigpCiB7Ci0gICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lk
Kj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKKyAg
ICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVm
ZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CiB9CiAKIFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp0YWtl
T3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZm
ZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1f
b3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBs
ZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFu
ZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKIH0KIAogdW5zaWduZWQgVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpiaXRSYXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
LmNwcAppbmRleCBjM2ZlODIxYjljNTIwYzkyMjRlNWRlODg4ZTUxOGMzMTk2ZjMxY2I1Li5hMDI0
MDg0YzI0ZTZkMzYzOTYwOGE2NDY1MmVjYzVkNmQ5ZWZhYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQu
Y3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIuaCIKICNlbmRpZgogCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5r
Lmg+CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTEyMyw5ICsxMjQsOSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0KCkKICAgICBpZiAoIW1fcmVtb3RlSU9Vbml0
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvT3V0cHV0VW5p
dFN0YXJ0KG1fcmVtb3RlSU9Vbml0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRp
b091dHB1dFVuaXRTdGFydChtX3JlbW90ZUlPVW5pdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OnN0YXJ0IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsK
LSAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwor
ICAgICAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0
KTsKICAgICAgICAgbV9yZW1vdGVJT1VuaXQgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTM5LDExICsxNDAsMTEgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KG1faXNTdGFydGVkKSB7Ci0gICAgICAgIEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJT1Vu
aXQpOworICAgICAgICBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJT1VuaXQpOwog
ICAgICAgICBtX2lzU3RhcnRlZCA9IGZhbHNlOwogICAgIH0KIAotICAgIEF1ZGlvQ29tcG9uZW50
SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKKyAgICBQQUw6OkF1ZGlvQ29tcG9uZW50
SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKICAgICBtX3JlbW90ZUlPVW5pdCA9IG51
bGxwdHI7CiB9CiAKQEAgLTE2MywxNCArMTY0LDE0IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQog
ICAgIGlvVW5pdERlc2NyaXB0aW9uLmNvbXBvbmVudFN1YlR5cGUgPSBrQXVkaW9Vbml0U3ViVHlw
ZV9EZWZhdWx0T3V0cHV0OwogI2VuZGlmCiAKLSAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVu
dCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsK
KyAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5k
TmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChpb0NvbXBvbmVu
dCk7CiAgICAgaWYgKCFpb0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRl
QXVkaW9Vbml0IHVuYWJsZSB0byBmaW5kIHJlbW90ZSBJTyB1bml0IGNvbXBvbmVudCIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBlcnJvciA9IEF1ZGlvQ29tcG9uZW50SW5z
dGFuY2VOZXcoaW9Db21wb25lbnQsICZyZW1vdGVJT1VuaXQpOworICAgIGF1dG8gZXJyb3IgPSBQ
QUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQsICZyZW1vdGVJT1VuaXQp
OwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0
IHVuYWJsZSB0byBvcGVuIHZwaW8gdW5pdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtMTc4LDcgKzE3OSw3IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBVSW50MzIgcGFyYW0gPSAxOwotICAgIGVycm9yID0g
QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVy
dHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICZwYXJhbSwgc2l6ZW9mKHBh
cmFtKSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5p
dCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfT3V0
cHV0LCAwLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnJvcikgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0
IG91dHB1dCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTg3LDcg
KzE4OCw3IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IGlmIChtX2RldmljZUlEKSB7Ci0gICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHko
cmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1
ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7
CisgICAgICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQs
IGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVf
R2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKICAgICAgICAgaWYg
KGVycm9yKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJs
ZSB0byBzZXQgdW5pdCBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIChpbnQpbV9kZXZp
Y2VJRCwgKGludCllcnJvciwgKGNoYXIqKSZlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CkBA
IC0xOTYsMTQgKzE5NywxNCBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKICNlbmRpZgogCiAgICAg
QVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgTG9jYWxBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6cmVuZGVyaW5nQ2FsbGJhY2ssIHRoaXMgfTsKLSAg
ICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFBy
b3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2Fs
bGJhY2ssIHNpemVvZihjYWxsYmFjaykpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFj
aywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2sp
KTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5p
dCB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVycm9yID0gJWQiLCBlcnJv
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihv
dXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKTsKLSAgICBlcnJvciAgPSBBdWRp
b1VuaXRHZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1G
b3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVh
bURlc2NyaXB0aW9uKCksICZzaXplKTsKKyAgICBlcnJvciAgPSBQQUw6OkF1ZGlvVW5pdEdldFBy
b3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRp
b24oKSwgJnNpemUpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3Jl
YXRlQXVkaW9Vbml0IHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAl
ZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjExLDEzICsyMTIsMTMgQEAgdm9pZCBM
b2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRp
b1VuaXRJZk5lZWRlZCgpCiAKICAgICBvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlv
bigpLm1TYW1wbGVSYXRlID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0
ZSgpOwogCi0gICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtB
dWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwg
Jm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIHNpemVvZihvdXRwdXREZXNj
cmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5p
dFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1h
dCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVz
Y3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkp
KTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5p
dCB1bmFibGUgdG8gc2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yID0gJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBlcnJvciA9IEF1ZGlvVW5pdEluaXRpYWxp
emUocmVtb3RlSU9Vbml0KTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShy
ZW1vdGVJT1VuaXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3Jl
YXRlQXVkaW9Vbml0IEF1ZGlvVW5pdEluaXRpYWxpemUoKSBmYWlsZWQsIGVycm9yID0gJWQiLCBl
cnJvcik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRl
eCA0Yjc4OGFlNWFhODdiNzI5ZTViZGNmOWNmNzEzODEyYzY3NzBhMzI1Li40ODVlNGNlNGM2ZDhj
MzI0NWI3NzlkNjFhNjc2Y2JiYjk3YmFkOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNl
Lm1tCkBAIC01MSw3ICs1MSw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBA
aW50ZXJmYWNlIFdlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVyIDogTlNPYmplY3Q8
QVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0U2FtcGxlQnVmZmVyRGVsZWdhdGU+IHsKICAgICBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZSogbV9jYWxsYmFjazsKQEAgLTM1MSwxMCArMzUwLDEwIEBAIHZvaWQg
QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKCkKICAgICAg
ICAgICAgIGlmIChmcmFtZVJhdGVSYW5nZSkgewogICAgICAgICAgICAgICAgIG1fY3VycmVudEZy
YW1lUmF0ZSA9IGNsYW1wVG8obV9jdXJyZW50RnJhbWVSYXRlLCBmcmFtZVJhdGVSYW5nZS5taW5G
cmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lUmF0ZSk7CiAKLSAgICAgICAgICAgICAg
ICBhdXRvIGZyYW1lRHVyYXRpb24gPSBDTVRpbWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7
Ci0gICAgICAgICAgICAgICAgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVS
YXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbikgPCAwKQorICAgICAgICAgICAgICAgIGF1dG8gZnJh
bWVEdXJhdGlvbiA9IFBBTDo6Q01UaW1lTWFrZSgxLCBtX2N1cnJlbnRGcmFtZVJhdGUpOworICAg
ICAgICAgICAgICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVS
YXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbikgPCAwKQogICAgICAgICAgICAgICAgICAgICBmcmFt
ZUR1cmF0aW9uID0gZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbjsKLSAgICAgICAgICAg
ICAgICBlbHNlIGlmIChDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJhbmdl
Lm1heEZyYW1lRHVyYXRpb24pID4gMCkKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChQQUw6OkNN
VGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlv
bikgPiAwKQogICAgICAgICAgICAgICAgICAgICBmcmFtZUR1cmF0aW9uID0gZnJhbWVSYXRlUmFu
Z2UubWF4RnJhbWVEdXJhdGlvbjsKIAogICAgICAgICAgICAgICAgIEFMV0FZU19MT0dfSUYobG9n
Z2VyUHRyKCksIExPR0lERU5USUZJRVIsICJzZXR0aW5nIGZyYW1lIHJhdGUgdG8gIiwgbV9jdXJy
ZW50RnJhbWVSYXRlLCAiLCBkdXJhdGlvbiAiLCBQQUw6OnRvTWVkaWFUaW1lKGZyYW1lRHVyYXRp
b24pKTsKQEAgLTQxOCw3ICs0MTcsNyBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1
cFNlc3Npb24oKQogCiAgICAgbV9zZXNzaW9uID0gYWRvcHROUyhbUEFMOjphbGxvY0FWQ2FwdHVy
ZVNlc3Npb25JbnN0YW5jZSgpIGluaXRdKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IEFWQ2FwdHVyZVNlc3Npb25TZXRBdXRob3JpemVkVG9Vc2VDYW1lcmFJbk11bHRpcGxlRm9yZWdy
b3VuZEFwcExheW91dChtX3Nlc3Npb24uZ2V0KCkpOworICAgIFBBTDo6QVZDYXB0dXJlU2Vzc2lv
blNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5kQXBwTGF5b3V0KG1f
c2Vzc2lvbi5nZXQoKSk7CiAjZW5kaWYKICAgICBbbV9zZXNzaW9uIGFkZE9ic2VydmVyOm1fb2Jq
Y09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJydW5uaW5nIiBvcHRpb25zOk5TS2V5VmFsdWVP
YnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDoodm9pZCAqKW5pbF07CiAKQEAgLTQzNCw2ICs0MzMs
OCBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24oKQogCiBBVkZyYW1l
UmF0ZVJhbmdlKiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkZvckZyYW1lUmF0
ZShkb3VibGUgcmF0ZSkKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1F
X0NPTVBBUkVfSU5MSU5FCisKICAgICBBVkZyYW1lUmF0ZVJhbmdlICpiZXN0RnJhbWVSYXRlUmFu
Z2UgPSBuaWw7CiAgICAgZm9yIChBVkZyYW1lUmF0ZVJhbmdlICpmcmFtZVJhdGVSYW5nZSBpbiBb
W2RldmljZSgpIGFjdGl2ZUZvcm1hdF0gdmlkZW9TdXBwb3J0ZWRGcmFtZVJhdGVSYW5nZXNdKSB7
CiAgICAgICAgIGlmIChmcmFtZVJhdGVSYW5nZUluY2x1ZGVzUmF0ZSh7IFtmcmFtZVJhdGVSYW5n
ZSBtaW5GcmFtZVJhdGVdLCBbZnJhbWVSYXRlUmFuZ2UgbWF4RnJhbWVSYXRlXSB9LCByYXRlKSkg
ewpAQCAtNTk4LDcgKzU5OSw3IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRl
UHJlc2V0cygpCiAgICAgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+IHByZXNldHM7CiAgICAgZm9y
IChBVkNhcHR1cmVEZXZpY2VGb3JtYXQqIGZvcm1hdCBpbiBbZGV2aWNlKCkgZm9ybWF0c10pIHsK
IAotICAgICAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXQuZm9ybWF0RGVzY3JpcHRpb24pOworICAgICAg
ICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CiAgICAgICAgIElu
dFNpemUgc2l6ZSA9IHsgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQgfTsKICAg
ICAgICAgYXV0byBpbmRleCA9IHByZXNldHMuZmluZE1hdGNoaW5nKFsmc2l6ZV0oYXV0byYgcHJl
c2V0KSB7CiAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PSBwcmVzZXQtPnNpemU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKaW5kZXggNmUyNmM4ZmE0ZWNkMzBhYzFlNTJmZWMz
OGFmNTdkMGUzM2Q5YmMyNC4uZTE1NTQ2MmY1MTgxNTg4YmEzYmM5NDU2YzZiNmFlOWFmZTIxYjVj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcApAQCAtMTksNyArMTksNyBA
QAogICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogKElOQ0xVRElORyBORUdMSUdFUEFMOjpOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIApAQCAtMzYsNyArMzYs
NiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29sIGdldERldmljZUlu
Zm8odWludDMyX3QgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgU3Ry
aW5nJiBwZXJzaXN0ZW50SUQsIFN0cmluZyYgbGFiZWwpCiB7CkBAIC0yMDUsNyArMjA0LDcgQEAg
UmV0YWluUHRyPENNQ2xvY2tSZWY+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmljZUNsb2Nr
KCkKICAgICAgICAgcmV0dXJuIG1fZGV2aWNlQ2xvY2s7CiAKICAgICBDTUNsb2NrUmVmIGNsb2Nr
OwotICAgIGF1dG8gZXJyID0gQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHBlcnNpc3RlbnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZjbG9jayk7Cisg
ICAgYXV0byBlcnIgPSBQQUw6OkNNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBwZXJzaXN0ZW50SWQoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAmY2xvY2spOwog
ICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1
ZGlvQ2FwdHVyZURldmljZTo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKCVwKSBDTUF1ZGlvRGV2
aWNlQ2xvY2tDcmVhdGUgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCll
cnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMDNmM2U2MmEyNjM3YzNlOTAxYmFmNjk0ZDNjNTI2
NWVmYTc0YWViMi4uZjRiMzY1ODk0ZDM3Y2Q5NGZmMjFiN2ZiNTRmZGIyNjQxZjM2ZmU5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDgsNiArNDgsOCBAQAogI2lu
Y2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rv
b2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTU3LDcgKzU5LDYgQEAKICNlbmRpZgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgUExBVEZPUk0o
TUFDKQogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VGYWN0b3J5OjpzaW5nbGV0b24oKQpAQCAtMjAzLDcgKzIwNCw3IEBAIE9TU3RhdHVzIENvcmVB
dWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICBtX0RUU0NvbnZlcnNpb25SYXRp
byA9IDFlLTkgKiBzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5udW1lcikgLyBzdGF0
aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5kZW5vbSk7CiAKICAgICBBdWRpb0NvbXBvbmVu
dERlc2NyaXB0aW9uIGlvVW5pdERlc2NyaXB0aW9uID0geyBrQXVkaW9Vbml0VHlwZV9PdXRwdXQs
IGtBdWRpb1VuaXRTdWJUeXBlX1ZvaWNlUHJvY2Vzc2luZ0lPLCBrQXVkaW9Vbml0TWFudWZhY3R1
cmVyX0FwcGxlLCAwLCAwIH07Ci0gICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25lbnQgPSBBdWRp
b0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7CisgICAgQXVk
aW9Db21wb25lbnQgaW9Db21wb25lbnQgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVs
bHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKICAgICBBU1NFUlQoaW9Db21wb25lbnQpOwogICAg
IGlmICghaW9Db21wb25lbnQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBmaW5kIHZw
aW8gdW5pdCBjb21wb25lbnQiLCB0aGlzKTsKQEAgLTIxMiw3ICsyMTMsNyBAQCBPU1N0YXR1cyBD
b3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICNpZiAhTE9HX0RJU0FCTEVE
CiAgICAgQ0ZTdHJpbmdSZWYgbmFtZSA9IG51bGxwdHI7Ci0gICAgQXVkaW9Db21wb25lbnRDb3B5
TmFtZShpb0NvbXBvbmVudCwgJm5hbWUpOworICAgIFBBTDo6QXVkaW9Db21wb25lbnRDb3B5TmFt
ZShpb0NvbXBvbmVudCwgJm5hbWUpOwogICAgIGlmIChuYW1lKSB7CiAgICAgICAgIG1faW9Vbml0
TmFtZSA9IG5hbWU7CiAgICAgICAgIENGUmVsZWFzZShuYW1lKTsKQEAgLTIyMCw3ICsyMjEsNyBA
QCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgfQog
I2VuZGlmCiAKLSAgICBhdXRvIGVyciA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21w
b25lbnQsICZtX2lvVW5pdCk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlvQ29tcG9uZW50SW5z
dGFuY2VOZXcoaW9Db21wb25lbnQsICZtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1
ZGlvVW5pdCglcCkgdW5hYmxlIHRvIG9wZW4gdnBpbyB1bml0LCBlcnJvciAlZCAoJS40cykiLCB0
aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjI4
LDEzICsyMjksMTMgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1Vu
aXQoKQogCiAgICAgaWYgKCFlbmFibGVFY2hvQ2FuY2VsbGF0aW9uKCkpIHsKICAgICAgICAgdWlu
dDMyX3QgcGFyYW0gPSAwOwotICAgICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lv
VW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJvY2Vzc2luZ0VuYWJsZUFHQywga0F1ZGlv
VW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAg
ICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Q
cm9wZXJ0eV9Wb2ljZVByb2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWws
IGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgICAgICBpZiAoZXJyKSB7CiAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0
OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIGF1dG9tYXRpYyBnYWluIGNv
bnRyb2wsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAg
ICAgICAgICAgICByZXR1cm4gZXJyOwogICAgICAgICB9CiAgICAgICAgIHBhcmFtID0gMTsKLSAg
ICAgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9w
ZXJ0eV9CeXBhc3NWb2ljZVByb2Nlc3NpbmcsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0
QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvVW5p
dFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfQnlwYXNzVm9pY2VQcm9j
ZXNzaW5nLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2Yo
cGFyYW0pKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJs
ZSB0byBzZXQgdnBpbyB1bml0IGVjaG8gY2FuY2VsbGF0aW9uLCBlcnJvciAlZCAoJS40cykiLCB0
aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAg
LTI0Myw3ICsyNDQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlv
VW5pdCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVpbnQzMl90IHBhcmFtID0g
MTsKLSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0
VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlucHV0QnVzLCAm
cGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVy
dHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5p
dFNjb3BlX0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKICAgICBpZiAo
ZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gZW5hYmxlIHZwaW8gdW5pdCBpbnB1
dCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAg
ICAgcmV0dXJuIGVycjsKQEAgLTI1NSw3ICsyNTYsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFy
ZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgIH0K
IAotICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRV
bml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRC
dXMsICZtX2NhcHR1cmVEZXZpY2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmljZUlEKSk7CisgICAg
ZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5p
dFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVz
LCAmbV9jYXB0dXJlRGV2aWNlSUQsIHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCkpOwogICAgIGlm
IChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hh
cmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IGNhcHR1
cmUgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KW1fY2FwdHVyZURl
dmljZUlELCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAt
MjcwLDcgKzI3MSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9V
bml0KCkKICAgICBpZiAoZXJyKQogICAgICAgICByZXR1cm4gZXJyOwogCi0gICAgZXJyID0gQXVk
aW9Vbml0SW5pdGlhbGl6ZShtX2lvVW5pdCk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRJbml0
aWFsaXplKG1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSBBdWRp
b1VuaXRJbml0aWFsaXplKCkgZmFpbGVkLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVy
ciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjkyLDcgKzI5Myw3IEBA
IHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6dW5kdWNrKCkKIE9TU3RhdHVzIENvcmVBdWRpb1No
YXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKIHsKICAgICBBVVJlbmRlckNhbGxi
YWNrU3RydWN0IGNhbGxiYWNrID0geyBtaWNyb3Bob25lQ2FsbGJhY2ssIHRoaXMgfTsKLSAgICBh
dXRvIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0
UHJvcGVydHlfU2V0SW5wdXRDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRC
dXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1
ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfU2V0
SW5wdXRDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZjYWxsYmFj
aywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25l
UHJvYyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgbWljIHByb2MsIGVycm9yICVkICglLjRz
KSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBA
IC0zMDEsMTQgKzMwMiwxNCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1
cmVNaWNyb3Bob25lUHJvYygpCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1pY3Jv
cGhvbmVQcm9jRm9ybWF0ID0geyB9OwogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2YobWljcm9w
aG9uZVByb2NGb3JtYXQpOwotICAgIGVyciA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0
LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7CisgICAgZXJyID0gUEFM
OjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVh
bUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJv
Y0Zvcm1hdCwgJnNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2Mo
JXApIHVuYWJsZSB0byBnZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIs
IHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAg
fQogCiAgICAgbWljcm9waG9uZVByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7
Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9w
ZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWlj
cm9waG9uZVByb2NGb3JtYXQsIHNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJv
cGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1Vu
aXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsIHNpemUpOwog
ICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1
ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXApIHVuYWJsZSB0byBzZXQg
b3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0zMjMsNyArMzI0LDcgQEAgT1NT
dGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQogT1NT
dGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoKQogewogICAg
IEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IHNwZWFrZXJDYWxsYmFjaywgdGhp
cyB9OwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRp
b1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBv
dXRwdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgYXV0byBlcnIgPSBQ
QUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0
UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmY2FsbGJh
Y2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclBy
b2MoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgJWQgKCUu
NHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsK
QEAgLTMzMiwxNCArMzMzLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZp
Z3VyZVNwZWFrZXJQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gc3BlYWtl
clByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihzcGVha2VyUHJv
Y0Zvcm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRp
b1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0
QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5p
dEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBr
QXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9ybWF0LCAmc2l6
ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJD
b3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRvIGdl
dCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwg
KGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAogICAgIHNwZWFrZXJQ
cm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOwotICAgIGVyciA9IEF1ZGlvVW5p
dFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBr
QXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9ybWF0LCBzaXpl
KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1
cywgJnNwZWFrZXJQcm9jRm9ybWF0LCBzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNw
ZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVk
ICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBl
cnI7CkBAIC00NTksNyArNDYwLDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0OjpjbGVhbnVw
QXVkaW9Vbml0KCkKICAgICB9CiAKICAgICBpZiAobV9pb1VuaXQpIHsKLSAgICAgICAgQXVkaW9D
b21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9pb1VuaXQpOworICAgICAgICBQQUw6OkF1ZGlvQ29t
cG9uZW50SW5zdGFuY2VEaXNwb3NlKG1faW9Vbml0KTsKICAgICAgICAgbV9pb1VuaXQgPSBudWxs
cHRyOwogICAgIH0KIApAQCAtNDc3LDcgKzQ3OCw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBp
ZiAobV9pb1VuaXRTdGFydGVkKSB7Ci0gICAgICAgIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0b3Ao
bV9pb1VuaXQpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1Vu
aXQpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1ZGlvVW5pdCglcCkgQXVk
aW9PdXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50
KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTQ5MCw3ICs0
OTEsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1ZGlvVW5p
dCgpCiAgICAgICAgIHJldHVybiBlcnI7CiAKICAgICBpZiAobV9pb1VuaXRTdGFydGVkKSB7Ci0g
ICAgICAgIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKKyAgICAgICAgZXJy
ID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAgICAgIGlmIChlcnIp
IHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1dFVuaXRTdGFydCBmYWls
ZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwog
ICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTUxNCw3ICs1MTUsNyBAQCBPU1N0YXR1cyBDb3Jl
QXVkaW9TaGFyZWRVbml0OjpzdGFydEludGVybmFsKCkKIAogICAgIHVuZHVjaygpOwogCi0gICAg
ZXJyID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOworICAgIGVyciA9IFBBTDo6QXVk
aW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnQoJXApIEF1
ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChp
bnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIGNsZWFudXBBdWRpb1VuaXQoKTsKQEAgLTU1
MSw3ICs1NTIsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0b3BJbnRlcm5hbCgpCiAg
ICAgaWYgKCFtX2lvVW5pdCB8fCAhbV9pb1VuaXRTdGFydGVkKQogICAgICAgICByZXR1cm47CiAK
LSAgICBhdXRvIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOworICAgIGF1dG8g
ZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6
OnN0b3AoJXApIEF1ZGlvT3V0cHV0VW5pdFN0b3AgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMp
IiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTY1
LDcgKzU2Niw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERl
dmljZSh1aW50MzJfdCogZGV2aWNlSUQpCiAgICAgQVNTRVJUKG1faW9Vbml0KTsKIAogICAgIFVJ
bnQzMiBwcm9wZXJ0eVNpemUgPSBzaXplb2YoKmRldmljZUlEKTsKLSAgICBhdXRvIGVyciA9IEF1
ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3Vy
cmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsIGRldmljZUlELCAm
cHJvcGVydHlTaXplKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHko
bV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9V
bml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0eVNpemUpOwogICAg
IGlmIChlcnIpCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1No
YXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSglcCkgdW5hYmxlIHRvIGdldCBkZWZhdWx0IGlu
cHV0IGRldmljZSBJRCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikm
ZXJyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IDNm
NGU0ZGNmNDJjMGZhOTNlZjlhYjYyZGQyMmE5N2M1MTM4NzA2NjMuLjU4MmY0YjI2Y2YxMThjNDk3
MWFjZDdkMTgzMDkyMTk3ZTFlNzY4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHAKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGlu
ay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBDYXB0
dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5kZXggYWE3ZmYwODc1MDU0MjU4MmYx
ZWY5MTY3YTgxZTZmYjVhNTQ4ZjE1Mi4uYjg2YjA1ZThjNjY1YmMyZTgwNWYyN2IzOGIxYTRmZDMz
MTNmOTJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAgLTQ0LDE0ICs0NCwxMCBA
QAogI2ltcG9ydCA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CiAjaW1wb3J0IDxDb3Jl
QXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KIAorI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNv
ZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotU09GVF9M
SU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi0KLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1
ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiog
aW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVy
KSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRl
cikpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRp
YyBpbmxpbmUgc2l6ZV90IGFsaWduVG8xNkJ5dGVzKHNpemVfdCBzaXplKQogewpAQCAtMjIxLDcg
KzIxNyw3IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUoKQogICAgIG1f
YXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KG1fc3RyZWFt
Rm9ybWF0LCBtX21heGltaXVtRnJhbWVDb3VudCk7CiAKICAgICBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZShOVUxMLCAmbV9zdHJlYW1Gb3JtYXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXRE
ZXNjcmlwdGlvbik7CisgICAgUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoTlVM
TCwgJm1fc3RyZWFtRm9ybWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0RGVzY3Jp
cHRpb24pOwogICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0
aW9uKTsKIAogICAgIHNpemVfdCBzYW1wbGVDb3VudCA9IDIgKiByYXRlOwpAQCAtMjQzLDcgKzIz
OSw3IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnModWludDMy
X3QgZnJhbWVDb3VudCkKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQo
bV9mb3JtYXREZXNjcmlwdGlvbik7CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFr
ZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOworICAgIENNVGltZSBzdGFydFRpbWUg
PSBQQUw6OkNNVGltZU1ha2UobV9zYW1wbGVzRW1pdHRlZCwgc2FtcGxlUmF0ZSgpKTsKICAgICBt
X3NhbXBsZXNFbWl0dGVkICs9IGZyYW1lQ291bnQ7CiAKICAgICBhdWRpb1NhbXBsZXNBdmFpbGFi
bGUoUEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpLCAqbV9hdWRpb0J1ZmZlckxpc3QsIENBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbihtX3N0cmVhbUZvcm1hdCksIGZyYW1lQ291bnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGIwNTlhMzI1MWQ4Yjk2NTdi
YTkwMTRjNDRmODA2M2FmODI3YjFkNDMuLmI2MGI4ODY2ZmJiODA0ODhjMjNmZTJiNTc2OTJiMzBm
ODdlMzg2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAg
LTUxLDcgKzUxLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBDYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRp
b1NvdXJjZUNvY29hLmNwcAppbmRleCA1ODA5NGIzNDIwZjM5YzhmMjZjMTc3N2EyYWVkMDEyM2Ri
ZWEyNjI4Li5hYTY5NmFkZGY3Zjc3OTI1OTE1Mjk1ODNjMjE2MGMxMjQ5MTFkNTVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTQw
LDcgKzQwLDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUmVmPFJlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjcmVhdGUocnRj
OjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBhdWRpb1RyYWNr
LCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQpCiB7CkBAIC0xMzEsNyArMTMwLDcgQEAgdm9pZCBSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKGNvbnN0IHZvaWQqIGF1ZGlvRGF0
YSwgaW50IGJpdHNQZXIKICAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSAwOwogICAgIH0K
IAotICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fbnVtYmVyT2ZGcmFtZXMsIHNh
bXBsZVJhdGUpOworICAgIENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9udW1i
ZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVk
aWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyArPSBudW1iZXJPZkZyYW1l
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1t
CmluZGV4IDhkZjhmNjhmNmY3MjQwNDc1ZGJkNDMyMzA2YWEzYTU2OWY2ZTQ4Y2YuLjBjNzFlMWRi
MTBmYTQzN2E3YzAwNDNkMzY0ZjQ0YmY3MjM3MTFjOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTQyLDcgKzQyLDYgQEAgQUxMT1df
VU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUmVmPFJl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpj
cmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJiB2
aWRlb1RyYWNrLCBTdHJpbmcmJiB0cmFja0lkKQogewpAQCAtMTczLDE5ICsxNzIsMTkgQEAgdm9p
ZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZShjb25zdCB3ZWJydGM6
OlZpZGVvRnJhbWUmIGZyYW1lKQogICAgIH0KIAogICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1p
bmdJbmZvOwotICAgIHRpbWluZ0luZm8ucHJlc2VudGF0aW9uVGltZVN0YW1wID0gQ01UaW1lTWFr
ZShmcmFtZS50aW1lc3RhbXBfdXMoKSwgMTAwMDAwMCk7Ci0gICAgdGltaW5nSW5mby5kZWNvZGVU
aW1lU3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKLSAgICB0aW1pbmdJbmZvLmR1cmF0aW9uID0ga0NN
VGltZUludmFsaWQ7CisgICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBQQUw6
OkNNVGltZU1ha2UoZnJhbWUudGltZXN0YW1wX3VzKCksIDEwMDAwMDApOworICAgIHRpbWluZ0lu
Zm8uZGVjb2RlVGltZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKKyAgICB0aW1pbmdJbmZv
LmR1cmF0aW9uID0gUEFMOjprQ01UaW1lSW52YWxpZDsKIAogICAgIENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbjsKLSAgICBPU1N0YXR1cyBvc3RhdHVzID0gQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7
CisgICAgT1NTdGF0dXMgb3N0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYp
cGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9zdGF0dXMgIT0gbm9F
cnIpIHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSLCAi
RmFpbGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3Ig
Iiwgc3RhdGljX2Nhc3Q8aW50Pihvc3RhdHVzKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgb3N0YXR1cyA9IENNU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
KENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5n
SW5mbywgJnNhbXBsZUJ1ZmZlcik7CisgICAgb3N0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJD
cmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1
ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2Ft
cGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChv
c3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIEVSUk9SX0xPR19JRihsb2dnZXJQdHIoKSwgTE9H
SURFTlRJRklFUiwgIkZhaWxlZCB0byBjcmVhdGUgdGhlIHNhbXBsZSBidWZmZXIgd2l0aCBlcnJv
ciAiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IDZiZjBjYTQ4N2RkNjRkYmVmNTM5
ZDk0ODgwZjYyOGM3ZmExNjFiZjEuLmUzM2JiNmRhOWRkZGQwMWEwMGQ5OTZmZDllZjAyYWM5ODE0
YTFlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcApAQCAtNDUsNyArNDUsNiBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKICNp
bmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2lu
ZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlPiBSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+JiYgdmlkZW9Tb3VyY2UpCiB7CkBAIC04NSw3ICs4NCw3IEBAIHZvaWQgUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2E6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBz
YW1wbGUpCiAgICAgfQogCiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUg
PT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7Ci0gICAgYXV0byBwaXhlbEJ1
ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1h
Z2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7
CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5z
YW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKICAgICBhdXRvIHBpeGVsRm9ybWF0VHlwZSA9IENWUGl4
ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwogCiAgICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IGNvbnZlcnRlZEJ1ZmZlciA9IHBpeGVsQnVmZmVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3Bs
YXlDYXB0dXJlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KaW5kZXggNzhiYmNhZDEzOTk4NjJmNTViOTcw
YmU0NzdmMjUxNGM0ZjM0ODQ1NC4uMTI5M2RhNTU5ZjkyOWE3YWVlYzU0ZDA3YWE5YWU0Zjk5NGY5
NWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCkBAIC00Niw3ICs0
Niw2IEBACiBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENHSW1hZ2UpOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgYm9vbCBhbnlPZkNHV2lu
ZG93KGNvbnN0IEZ1bmN0aW9uPGJvb2woQ0ZEaWN0aW9uYXJ5UmVmIGluZm8sIHVuc2lnbmVkIGlk
LCBjb25zdCBTdHJpbmcmIHRpdGxlKT4mIHByZWRpY2F0ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJY29uVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0KaW5kZXggNGVhM2RlODZjYmI0NDQxOWRhNmUx
ZjQ5M2JlYTgzOTA1NWRkMTg1ZS4uZjZiM2NlOTFkNTI1NjIyZDFkYjFmMjAxN2U4MTExMTU1NTk2
ZTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRp
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0K
QEAgLTEyNCw3ICsxMjQsNyBAQCBSZXRhaW5QdHI8VUlJbWFnZT4gaWNvbkZvclZpZGVvRmlsZShO
U1VSTCAqZmlsZSkKICAgICBbZ2VuZXJhdG9yIHNldEFwcGxpZXNQcmVmZXJyZWRUcmFja1RyYW5z
Zm9ybTpZRVNdOwogCiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7Ci0gICAgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IGltYWdlUmVmID0gYWRvcHRDRihbZ2VuZXJhdG9yIGNvcHlDR0ltYWdlQXRUaW1l
OmtDTVRpbWVaZXJvIGFjdHVhbFRpbWU6bmlsIGVycm9yOiZlcnJvcl0pOworICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBpbWFnZVJlZiA9IGFkb3B0Q0YoW2dlbmVyYXRvciBjb3B5Q0dJbWFnZUF0
VGltZTpQQUw6OmtDTVRpbWVaZXJvIGFjdHVhbFRpbWU6bmlsIGVycm9yOiZlcnJvcl0pOwogICAg
IGlmICghaW1hZ2VSZWYpIHsKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvciBjcmVhdGluZyBpbWFn
ZSBmb3IgdmlkZW8gJyVAJzogJUAiLCBmaWxlLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxs
YmFja0ljb25Gb3JGaWxlKGZpbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwCmluZGV4
IGExNmQyNDI1NjQxZjM3YTE5ZDBjMDllNTRiYzNlZWY0YWEyODE4ZWEuLjBiYWMxZTI4OWU3Nzcy
ZWFlN2U2YjM2OTgxMDg1OTRiN2E2ODY4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5j
cHAKQEAgLTM0LDE3ICszNCwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBjcmVhdGVX
cmFwcGVyKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01CYXNlVlRhYmxlKiBiYXNl
VlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiogd3JhcHBlcikK
IHsKLSAgICByZXR1cm4gQ01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZUYWJs
ZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0gbm9FcnI7CisgICAgcmV0dXJuIFBBTDo6Q01EZXJpdmVk
T2JqZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZUYWJsZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0g
bm9FcnI7CiB9CiAKIHZvaWQqIHdyYXBwZXJTdG9yYWdlKENNQmFzZU9iamVjdFJlZiB3cmFwcGVy
KQogewotICAgIHJldHVybiBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSh3cmFwcGVyKTsK
KyAgICByZXR1cm4gUEFMOjpDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSh3cmFwcGVyKTsK
IH0KIAogY29uc3QgQ01CYXNlVlRhYmxlKiB3cmFwcGVyVlRhYmxlKENNQmFzZU9iamVjdFJlZiB3
cmFwcGVyKQogewotICAgIHJldHVybiBDTUJhc2VPYmplY3RHZXRWVGFibGUod3JhcHBlcik7Cisg
ICAgcmV0dXJuIFBBTDo6Q01CYXNlT2JqZWN0R2V0VlRhYmxlKHdyYXBwZXIpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9N
ZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCmluZGV4IGMx
ODRlNDQ3YjJjZDQ0MmE4NDdlYzMxNjIzMzZiNmZhZjc4NzNjN2MuLjVlNzc4Y2MwYjdiZGE3NGUz
Zjc1Yzk5YjU4YmE4YmZhMjUxNzI5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNw
cApAQCAtNDcsNyArNDcsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKE1UUGx1Z2luRm9y
bWF0UmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGNvbnN0IHZvaWQqIG5leHRMb2dJ
ZGVudGlmaWVyKCkKQEAgLTI0NSw3ICsyNDQsNyBAQCBPU1N0YXR1cyBNZWRpYUZvcm1hdFJlYWRl
cjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdAog
ICAgIGlmIChtX2R1cmF0aW9uLmlzSW5kZWZpbml0ZSgpKQogICAgICAgICByZXR1cm4ga0NNQmFz
ZU9iamVjdEVycm9yX1ZhbHVlTm90QXZhaWxhYmxlOwogCi0gICAgaWYgKGF1dG8gbGVha2VkRHVy
YXRpb24gPSBhZG9wdENGKENNVGltZUNvcHlBc0RpY3Rpb25hcnkoUEFMOjp0b0NNVGltZShtX2R1
cmF0aW9uKSwgYWxsb2NhdG9yKSkubGVha1JlZigpKSB7CisgICAgaWYgKGF1dG8gbGVha2VkRHVy
YXRpb24gPSBhZG9wdENGKFBBTDo6Q01UaW1lQ29weUFzRGljdGlvbmFyeShQQUw6OnRvQ01UaW1l
KG1fZHVyYXRpb24pLCBhbGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKICAgICAgICAgKnJlaW50ZXJw
cmV0X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmKj4odmFsdWVDb3B5KSA9IGxlYWtlZER1cmF0aW9uOwog
ICAgICAgICByZXR1cm4gbm9FcnI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVS
YW5nZS5jcHAKaW5kZXggZDgzZWZjZjQ3NzVjZTk2YjEyYTg3NjBmOGQxNzIzNGFiMGYxZWU3ZC4u
NGRlMWQwZWQyYTdiZTQ5ZTNjYmJiOTVlMzc3ZjU0NTA5ZmFjMDdhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJh
bmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
TWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCkBAIC0yNSwxMiArMjUsMTIgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQnl0ZVJhbmdlLmgiCisjaW5jbHVkZSA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNpZiBFTkFCTEUoV0VCTV9GT1JNQVRfUkVB
REVSKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBNZWRpYVNhbXBsZUJ5dGVSYW5nZTo6TWVkaWFTYW1wbGVC
eXRlUmFuZ2UoTWVkaWFTYW1wbGUmIHNhbXBsZSwgTVRQbHVnaW5CeXRlU291cmNlUmVmIGJ5dGVT
b3VyY2UsIHVpbnQ2NF90IHRyYWNrSUQpCkBAIC01MCw3ICs1MCw3IEBAIE1lZGlhU2FtcGxlQnl0
ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdp
bkJ5dGVTb3VyCiAgICAgYXV0byBwbGF0Zm9ybVNhbXBsZSA9IHNhbXBsZS5wbGF0Zm9ybVNhbXBs
ZSgpOwogICAgIHN3aXRjaCAocGxhdGZvcm1TYW1wbGUudHlwZSkgewogICAgIGNhc2UgUGxhdGZv
cm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZToKLSAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUu
Y21TYW1wbGVCdWZmZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsYXRmb3JtU2FtcGxl
OjpCeXRlUmFuZ2VTYW1wbGVUeXBlOgogICAgICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gcGxh
dGZvcm1TYW1wbGUuc2FtcGxlLmJ5dGVSYW5nZVNhbXBsZS5zZWNvbmQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJz
b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlh
U2FtcGxlQ3Vyc29yLmNwcAppbmRleCBjZTI5MDZkYzQ0MjliODc1MTRhN2IwMGMzMjE3MzkyZDUw
N2IzZjk1Li5mYmU0MjI3MzA2ZjgwZjYxYzEyN2MzMzhjNzFlZmE1NGEyZDIwYzg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1w
bGVDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJl
YWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKQEAgLTQzLDcgKzQzLDYgQEAgV1RGX0RFQ0xBUkVf
Q0ZfVFlQRV9UUkFJVChNVFBsdWdpblNhbXBsZUN1cnNvcik7CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0
YXRpYyBNZWRpYVRpbWUgYXNzdW1lZERlY29kZVRpbWUoY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50
YXRpb25UaW1lLCBEZWNvZGVPcmRlclNhbXBsZU1hcCYgbWFwKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tS
ZWFkZXIuY3BwCmluZGV4IDkwODYxYzg0ZGRlNmM2NmRkYjg3NzkzYWIyMzA2YTY2ZTRkZWI3MzEu
LjFkYzFjYWUwMzAwOGUwYTIwYTQ0YWM3M2QxYWEzNzI1MzU3ZjIwZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVk
aWFUcmFja1JlYWRlci5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9U
UkFJVChNVFBsdWdpblRyYWNrUmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQ01CYXNlQ2xhc3NJ
RCBNZWRpYVRyYWNrUmVhZGVyOjp3cmFwcGVyQ2xhc3NJRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29v
cmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRp
ZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0KaW5kZXggMTdkNzlmMTYxMDU2YTAxMGE0
ZWFjNTgyZmQyNzg2OGYzODhhNjIxMS4uMWUzOGRlNWRiZGE5ZTE1NzEyOGYxZjQwZGFhZDFjNDkx
OTBlMzAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBB
Y3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGlu
YXRvci5tbQpAQCAtMTAyLDggKzEwMiw2IEBAIEBlbmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIFJlZjxHcm91cEFjdGl2aXRpZXNDb29yZGluYXRvcj4g
R3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6OmNyZWF0ZShHcm91cEFjdGl2aXRpZXNTZXNzaW9u
JiBzZXNzaW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdyb3VwQWN0aXZpdGllc0Nv
b3JkaW5hdG9yKHNlc3Npb24pKTsKQEAgLTE1NCw3ICsxNTIsNyBAQCB2b2lkIEdyb3VwQWN0aXZp
dGllc0Nvb3JkaW5hdG9yOjpsZWF2ZSgpCiAKIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0
b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgQ29vcmRpbmF0b3JDb21wbGV0aW9uSGFuZGxlciYmIGNh
bGxiYWNrKQogewotICAgIFttX3BsYXliYWNrQ29vcmRpbmF0b3IgY29vcmRpbmF0ZVNlZWtUb1Rp
bWU6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDEwMDApIG9wdGlvbnM6MF07CisgICAgW21f
cGxheWJhY2tDb29yZGluYXRvciBjb29yZGluYXRlU2Vla1RvVGltZTpQQUw6OkNNVGltZU1ha2VX
aXRoU2Vjb25kcyh0aW1lLCAxMDAwKSBvcHRpb25zOjBdOwogICAgIGNhbGxiYWNrKHN0ZDo6bnVs
bG9wdCk7CiB9CiAKQEAgLTIxMSwxMCArMjA5LDEwIEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29v
cmRpbmF0b3I6Omlzc3VlUGxheUNvbW1hbmQoQVZEZWxlZ2F0aW5nUGxheWJhY2tDb29yZGluYXRv
CiAKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gaXRlbVRpbWU7CiAgICAgaWYgKENNVElNRV9J
U19OVU1FUklDKHBsYXlDb21tYW5kLml0ZW1UaW1lKSkKLSAgICAgICAgaXRlbVRpbWUgPSBDTVRp
bWVHZXRTZWNvbmRzKHBsYXlDb21tYW5kLml0ZW1UaW1lKTsKKyAgICAgICAgaXRlbVRpbWUgPSBQ
QUw6OkNNVGltZUdldFNlY29uZHMocGxheUNvbW1hbmQuaXRlbVRpbWUpOwogICAgIHN0ZDo6b3B0
aW9uYWw8TW9ub3RvbmljVGltZT4gaG9zdFRpbWU7CiAgICAgaWYgKENNVElNRV9JU19OVU1FUklD
KHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKQotICAgICAgICBob3N0VGltZSA9IE1vbm90b25p
Y1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3Rl
bVVuaXRzKHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKTsKKyAgICAgICAgaG9zdFRpbWUgPSBN
b25vdG9uaWNUaW1lOjpmcm9tTWFjaEFic29sdXRlVGltZShQQUw6OkNNQ2xvY2tDb252ZXJ0SG9z
dFRpbWVUb1N5c3RlbVVuaXRzKHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKTsKIAogICAgIGNs
aWVudCgpLT5wbGF5U2Vzc2lvbihpdGVtVGltZSwgaG9zdFRpbWUsIFtjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXSAoYm9vbCkgewogICAgICAgICBjYWxsYmFjaygpOwpAQCAtMjQ2LDcgKzI0
NCw3IEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6Omlzc3VlU2Vla0NvbW1hbmQo
QVZEZWxlZ2F0aW5nUGxheWJhY2tDb29yZGluYXRvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBjbGllbnQoKS0+c2Vla1Nlc3Npb25Ub1RpbWUoQ01UaW1lR2V0U2Vjb25kcyhzZWVrQ29t
bWFuZC5pdGVtVGltZSksIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgbXV0
YWJsZSB7CisgICAgY2xpZW50KCktPnNlZWtTZXNzaW9uVG9UaW1lKFBBTDo6Q01UaW1lR2V0U2Vj
b25kcyhzZWVrQ29tbWFuZC5pdGVtVGltZSksIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSAoYm9vbCkgbXV0YWJsZSB7CiAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tCmluZGV4IDQyNzk2OWMyODIxMThhYzNjM2Q3NzA4M2VhYjgyZDk1ZmQwYWJlZmYuLjE3MWQ5
Y2E0ODQ5MTVkN2FmNGVlYWQ2OTcwOTk5MWU1MDRkNDI3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNjks
NyArMjY5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRBdWRpb0NvbXBvbmVudFJlZ2lz
dHJhdGlvbnMoKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKLSAgICBpZiAoIWlzQXVk
aW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFjYW5Mb2FkX0F1ZGlvVG9vbGJv
eENvcmVfQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMoKSkKKyAgICBpZiAo
IVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Y2Fu
TG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRp
b25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2Vy
Q29jb2EubW0KaW5kZXggZjM3ODRmYzI3MTJiMGRmNjM4NzEyMDQ3Y2Q3MmY4NTMwYzc3NzIzNC4u
MmE4M2Q5NzEwYmY3MjU1ZTU5Mzg1YzFiMWY2NTkzNGMyNjMwNTU1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFu
YWdlckNvY29hLm1tCkBAIC00Miw3ICs0Miw2IEBAIEBlbmQKIE5TX0FTU1VNRV9OT05OVUxMX0VO
RAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGJvb2wgdXNhZ2VUcmFja2luZ0F2YWlsYWJsZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggYzMyM2E2YTc4YjQ1MDA1YjY3NzQwODYyYjYyOWIx
NmZiYjgwZjQwYi4uZjg5MWE1MzMxNDUwYmYxN2VhZjk1YjAwZTMxOGRhZTNjNzM4NzU0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFu
YWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZVByb3h5LmNwcAppbmRleCA5NWJiZDU0ODNjZmVhMTdjOTEyZWQ1YjVmMTNmNDMxZmFlMzcx
MjY3Li44YTU5YWUxYTI4ZmE0M2E5YjJmMjE1NzYyMTE4OWFlOTc2ZDEwMmRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlUHJveHk6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5k
ZXggYTFhODI3ZGYxZGQxZjE2MjI3YzEzZWM2ZWUzMDg0ZTlkMjYxZjQ1Ni4uMGQ2ZGUxZjJhOTkw
NjA5ZWU5YTA1MDJlOGQ5NDhjMzkwZmExMWRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMzk1LDcgKzEzOTUsNyBAQCB2
b2lkIFdlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKLSAg
ICBpZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFjYW5Mb2Fk
X0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMo
KSkKKyAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkg
fHwgIVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2
ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gcmVnaXN0cmF0
aW9ucyA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRhdGEuZGF0
YSgpLCBkYXRhLnNpemUoKSkpOwo=
</data>
<flag name="commit-queue"
          id="454385"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432367</attachid>
            <date>2021-06-28 00:01:04 -0700</date>
            <delta_ts>2021-06-28 02:31:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210628170102.patch</filename>
            <type>text/plain</type>
            <size>327323</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc2MGFmZjhiNzMzNTgy
NDE3ZjA3N2M5MDRjOTQ4ZmYyMzgxZWU5Yy4uZGZiN2RkYjllMTQ1ZWFjZjUzOTZhNmI0ZGE3ZDcx
YmQ5Yjc2NTAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlcyBv
ZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFVuaWZ5IEF1ZGlvVG9vbGJveCwgQ29yZU1lZGlhLCBWaWRlb1Rvb2xib3ggYW5k
IE1lZGlhVG9vbGJveCdzIG1ldGhvZAorICAgICAgICBkZWZpbml0aW9ucyBhbmQgdGhlaXIgdXNl
LCBlbnN1cmluZyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzb2Z0LWxpbmtlZC4KKyAgICAgICAgVW5p
ZmllZCBidWlsZHMgYW5kIHRoZSBpbmNvbnNpc3RlbnQgdXNlIG9mIGV4cGxpY2l0bHkgdXNpbmcg
dGhlIFBBTCBuYW1lc3BhY2UKKyAgICAgICAgY2F1c2VkIHNvbWUgY2FsbHMgdG8gYmUgYW1iaWd1
b3VzIGxlYWRpbmcgdG8gY29tcGlsYXRpb24gZXJyb3JzOyBzb21lCisgICAgICAgIGNvZGUgd291
bGQgYWxzbyB1c2UgdGhlIHNvZnRsaW5rZWQgbWV0aG9kcyB3aGlsZSBvdGhlcnMgY2FsbGVkIGlu
dG8gdGhlIGZyYW1ld29ya3MKKyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIFRvIGdldCBhcm91
bmQgdGhvc2Ugd2UgZW5zdXJlIHRoYXQgYW55IGNhbGxzIHRvIEF1ZGlvVG9vbGJveCBvciBDb3Jl
TWVkaWEgaXMgYWx3YXlzIHVzaW5nCisgICAgICAgIHRoZSBmdWxseSByZXNvbHZlZCBQQUwgbmFt
ZS4KKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGB1c2luZyBuYW1lc3BhY2UgUEFMO2Agc3Rh
dGVtZW50cyB3aGVyZXZlciBhcHBsaWNhYmxlLgorICAgICAgICBObyBjaGFuZ2UgaW4gb2JzZXJ2
YWJsZSBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5w
cmVwYXJlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUltYWdlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50
TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlk
Q2hhbmdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpk
ZXN0cm95TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjp2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJS
ZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGVJbWFnZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnBy
ZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkZWNvZGVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6ZHVyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpzaXplSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFW
Rk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZG9l
c0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1ZmZl
ckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1wbGVC
dWZmZXJOb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6cHJlc2VudGF0aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1w
bGVBVkZPYmpDOjppc0RpdmlzYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OmRpdmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZm
ZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3Vt
ZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpB
dWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0NNQ29sb3JQcmltYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01U
cmFuc2ZlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0NNWUNiQ1JNYXRy
aXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJh
aXQ8Q01TYW1wbGVCdWZmZXJSZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmRlY29kZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjph
dXRvbWF0aWNEZXF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5I
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRh
dGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVr
YWJsZVJhbmdlc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93
V2F0ZXJUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0Nv
bXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFz
c2V0V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVk
aW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmlj
ZUNsb2NrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpj
b25maWd1cmVNaWNyb3Bob25lUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVk
aW9TaGFyZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2E6Ok9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW06CisKIDIwMjEtMDYtMjEgIEplYW4t
WXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1l
dGhvZCBpbiBBdWRpb0ZpbGVSZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGI2MjY3YzdmNmU5
Y2YwNmRlZDAwMDMzZTFlMmEwZGE5MjY1MTU3ZDcuLjk1OTEyMWY2NzgxNzJiNGVlODA2Njc2ZjBk
YTcxNzg5ZDdjY2Q2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIx
LTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgTm90
IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgor
ICAgICAgICAqIHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWV0aG9kcyB3aG9z
ZSBkZWZpbml0aW9ucyB3ZXJlIHNjYXR0ZXJlZCBhY3Jvc3MKKyAgICAgICAgdGhlIGNvZGUuCisg
ICAgICAgICogcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBw
YWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaDogU2FtZSBhcyBhYm92ZS4KKyAgICAgICAg
KiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9BdWRp
b1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisgICAgICAgICogcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kczsgUmVzaHVmZmxlZCBkZWZpbml0aW9ucyBhcyBtYW55
IGRpZG4ndAorICAgICAgICBleGlzdCBvbiBXaW5kb3dzLCB5ZXQgY291bGQgcG90ZW50aWFsbHkg
YmUgbG9hZGVkIGFuZCBlcnJvci4KKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29mdExp
bmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlz
c2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAgICAg
ICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9j
b2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIwMjEt
MDYtMjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01v
ZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIG1vZGVsIHJlc291cmNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA3ODQ3OWUyYTFiMjIwM2YwOTVmZWQzNTg1OTQ5MGFmZGU3YTA4M2NjLi4zYmYyMThm
ZDZlYTAxMTU5MGExMjFjZTM2OTA0YmM3OTE0OTliZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDIxLTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAg
ICAgICAgTm90IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlu
a2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
MjUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1
ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVB
dWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0
ZVdyYXBwZXIpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyU3RvcmFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OndyYXBwZXJWVGFibGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1h
dFJlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFT
YW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVn
aXN0cmF0aW9ucyk6CisKIDIwMjEtMDYtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBpT1MgYnVpbGQgYWZ0ZXIg
cmRhcjovLzc2NzgxODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggNmE4MjNkNjFhZDEw
MTAzMmJiZTE5NGE2MmI1YjYxNTZkMjNjYWIxMi4uMDljMmVhMzI5YzJjMGNhNmVlNmY3YmEzYTJj
NDRhZGY4MzQ4ZTVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtNTMsOCArNTMsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KICNpZiAh
VVNFKExJQldFQlJUQykKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGVlckNvbm5lY3Rpb25CYWNr
ZW5kPiBjcmVhdGVOb1BlZXJDb25uZWN0aW9uQmFja2VuZChSVENQZWVyQ29ubmVjdGlvbiYpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KaW5kZXggNDAwZjliOGQxNmI1OTNiNDg1ZTAwYzdmNzhm
NTlkZTk4ZGMzN2Q5Zi4uNzQ5OTRlMmM1MTAwZWNhYmE2MTU5MGZiMTE4MGFhMGJjMzdiMGRiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpAQCAtNTgsNyArNTgsNiBAQAogI2ltcG9ydCA8cGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogc3RhdGljIEpT
VmFsdWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCA1YjEzNWIzOWE1YTBhMWQ4MDFiZTY4NzhmYmRm
ZjY3NjZjMmU4YWNlLi5mMWMyYWYzM2M1ZmEyYWI2ZmM1MTY2OTk4M2ZhNzBlNzY5NjQwMjgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExp
bmsuaCIKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgaW5saW5lIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBzdHJlYW1EZXNjcmlwdGlvbihz
aXplX3Qgc2FtcGxlUmF0ZSwgc2l6ZV90IGNoYW5uZWxDb3VudCkKQEAgLTcxLDcgKzY5LDcgQEAg
dm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjb25zdW1lQXVkaW8oQXVkaW9CdXMmIGJ1cywg
c2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ01U
aW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9jdXJyZW50U2V0
dGluZ3Muc2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVN
YWtlKG1fbnVtYmVyT2ZGcmFtZXMsIG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSk7CiAg
ICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9u
dW1iZXJPZkZyYW1lcyArPSBudW1iZXJPZkZyYW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCA2N2I3OGY0NmE3ODEx
Nzg4OGYwMGQwODk3ZGJhNTdlN2FjNTM4NTAyLi4zMzNhYTIyNGM3MWE3NTBjZDlhMGY2OWY3ODNk
ZDAxNTk3NTEwYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMjYsMjAgKzI2LDQ2IEBACiAKICNpZiBVU0UoQVZGT1VO
REFUSU9OKQogCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29tcG9uZW50Lmg+CiAjaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CisjaW5jbHVkZSA8QXVkaW9Ub29s
Ym94L0F1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1hdC5oPgot
CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvVW5pdC5oPgorI2luY2x1ZGUgPEF1ZGlvVG9v
bGJveC9FeHRlbmRlZEF1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgog
CiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZU
X0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlv
VG9vbGJveENvcmUsIFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbywgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIG91dFNpemUsIEJvb2xlYW4qIG91dFdyaXRh
YmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgb3V0U2l6ZSwgb3V0V3JpdGFi
bGUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvRm9ybWF0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEIGlu
UHJvcGVydHlJRCwgVUludDMyIGluU3BlY2lmaWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVjaWZp
ZXIsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAo
aW5Qcm9wZXJ0eUlELCBpblNwZWNpZmllclNpemUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5RGF0
YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJl
Ziogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3Jt
YXQsIG91dEF1ZGlvQ29udmVydGVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9D
b252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlvQ29udmVydGVyKSkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRl
clNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0
ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3Bl
cnR5RGF0YVNpemUsIGNvbnN0IHZvaWQqIGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlv
UHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYg
aW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1
ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAo
aW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRw
dXREYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVy
dGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVBy
b2MgaW5JbnB1dERhdGFQcm9jLCB2b2lkKiBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgVUludDMy
KiBpb091dHB1dERhdGFQYWNrZXRTaXplLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEs
IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIG91dFBhY2tldERlc2NyaXB0aW9uKSwgKGlu
QXVkaW9Db252ZXJ0ZXIsIGluSW5wdXREYXRhUHJvYywgaW5JbnB1dERhdGFQcm9jVXNlckRhdGEs
IGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIG91dE91dHB1dERhdGEsIG91dFBhY2tldERlc2NyaXB0
aW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0
VW5pdFN0b3AsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNl
RGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAo
aW5JbnN0YW5jZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Db21wb25lbnRDb3B5TmFtZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBp
bkNvbXBvbmVudCwgQ0ZTdHJpbmdSZWYqIG91dE5hbWUpLCAoaW5Db21wb25lbnQsIG91dE5hbWUp
KQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRp
b25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIChvdXRC
dW5kbGVSZWdpc3RyYXRpb25zKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9D
b21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGlu
QnVuZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQT1JU
KQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVk
aW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRp
b0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZvaWQgKmluQ2xpZW50RGF0
YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2MgaW5X
cml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0ZpbGVf
U2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVIaW50
LCBBdWRpb0ZpbGVJRCAqb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVuYywg
aW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVIaW50
LCBvdXRBdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRp
b1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVm
IGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3Bl
cnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCAqb3V0
UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlE
YXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlv
RmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyICppb051bWJlckZyYW1lcywgQXVkaW9CdWZm
ZXJMaXN0ICppb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlv
RmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3Bl
cnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxl
LCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmls
ZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVh
biBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmls
ZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0
dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxlUmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAo
aW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVu
dCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2Ny
aXB0aW9uKiBpbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJ
bnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlE
IGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50
LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNj
b3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3Rh
dHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0
U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGlu
RGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1l
bnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCiAKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGlu
ay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCmlu
ZGV4IDQ5ZTMyZTE3OTQwMzYzYjg0OTc3NDQzNWJkMjA5NWU2NGFiNDg4MWIuLmRkZjEzYTAyN2E0
NWEyMmI4Mzk4ZDEzNWU4ZTBiM2RmYzY4NTUyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTI2LDI3ICsyNiwxMTQgQEAKIAog
I2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlw
ZXMuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogdHlwZWRlZiBVSW50MzIgQXVk
aW9Db252ZXJ0ZXJQcm9wZXJ0eUlEOwogdHlwZWRlZiBVSW50MzIgQXVkaW9Gb3JtYXRQcm9wZXJ0
eUlEOwogdHlwZWRlZiBzdHJ1Y3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29udmVydGVy
KiBBdWRpb0NvbnZlcnRlclJlZjsKK3R5cGVkZWYgc3RydWN0IEF1ZGlvQnVmZmVyTGlzdCBBdWRp
b0J1ZmZlckxpc3Q7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5w
dXREYXRhUHJvYykoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwKKyAgICBVSW50
MzIqIGlvTnVtYmVyRGF0YVBhY2tldHMsCisgICAgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEsCisg
ICAgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbioqIG91dERhdGFQYWNrZXREZXNjcmlwdGlv
biwKKyAgICB2b2lkKiBpblVzZXJEYXRhKTsKKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlRXh0QXVk
aW9GaWxlKiBFeHRBdWRpb0ZpbGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0ZpbGVJ
RCogQXVkaW9GaWxlSUQ7Cit0eXBlZGVmIFVJbnQzMiBBdWRpb0ZpbGVUeXBlSUQ7Cit0eXBlZGVm
IFVJbnQzMiBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlv
RmlsZV9SZWFkUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBpblBv
c2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQsCisgICAgdm9pZCogYnVmZmVyLAorICAg
IFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9Xcml0
ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBTSW50NjQgaW5Qb3NpdGlvbiwK
KyAgICBVSW50MzIgcmVxdWVzdENvdW50LAorICAgIGNvbnN0IHZvaWQqIGJ1ZmZlciwKKyAgICBV
SW50MzIqIGFjdHVhbENvdW50KTsKK3R5cGVkZWYgU0ludDY0ICgqQXVkaW9GaWxlX0dldFNpemVQ
cm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEpOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlv
RmlsZV9TZXRTaXplUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBp
blNpemUpOwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db21wb25lbnQqIEF1ZGlvQ29tcG9u
ZW50OworCisjaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoZGVmaW5lZChBVURJT0NPTVBPTkVOVF9O
T0NBUkJPTklOU1RBTkNFUykgJiYgQVVESU9DT01QT05FTlRfTk9DQVJCT05JTlNUQU5DRVMpCit0
eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlOworI2Vsc2UKK3R5cGVkZWYgc3RydWN0IENvbXBvbmVudEluc3RhbmNlUmVjb3Jk
KiBBdWRpb0NvbXBvbmVudEluc3RhbmNlOworI2VuZGlmCit0eXBlZGVmIEF1ZGlvQ29tcG9uZW50
SW5zdGFuY2UgQXVkaW9Vbml0OworCit0eXBlZGVmIHN0cnVjdCBBdWRpb0NvbXBvbmVudERlc2Ny
aXB0aW9uIEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb247Cit0eXBlZGVmIFVJbnQzMiBBdWRpb1Vu
aXRQcm9wZXJ0eUlEOwordHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0U2NvcGU7Cit0eXBlZGVmIFVJ
bnQzMiBBdWRpb1VuaXRFbGVtZW50OwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIo
UEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3hDb3JlKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVk
aW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyKiBvdXRTaXplLCBCb29sZWFuKiBvdXRXcml0YWJsZSksIChp
bkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIG91dFNpemUsIG91dFdyaXRhYmxlKSkKKyNk
ZWZpbmUgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8gc29mdExpbmtfQXVkaW9Ub29sYm94
X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCog
b3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9w
ZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9D
b252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
KiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRl
c3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAo
aW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkK
ICNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29u
dmVydGVyTmV3CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGlu
QXVkaW9Db252ZXJ0ZXIpLCAoaW5BdWRpb0NvbnZlcnRlcikpCisjZGVmaW5lIEF1ZGlvQ29udmVy
dGVyRGlzcG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJEaXNwb3NlCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Q
cm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29u
dmVydGVyLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEp
KQogI2RlZmluZSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbnZlcnRlclNldFByb3BlcnR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChB
dWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXpl
LCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZv
aWQqIG91dFByb3BlcnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5T
cGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUg
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Gb3JtYXRH
ZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9D
b252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBj
b25zdCBBdWRpb0J1ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91
dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXRE
YXRhLCBvdXRPdXRwdXREYXRhKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxl
eEJ1ZmZlciBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxl
eEJ1ZmZlcgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0
ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJv
YyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIq
IGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwg
QXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQcm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwg
aW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRp
b24pKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1
ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQs
IE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKKyNkZWZpbmUgQXVkaW9PdXRwdXRVbml0
U3RhcnQgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvT3V0cHV0VW5pdFN0YXJ0CitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0
U3RvcCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorI2RlZmluZSBBdWRpb091dHB1
dFVuaXRTdG9wIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb091dHB1dFVuaXRTdG9wCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25l
bnRJbnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbklu
c3RhbmNlKSwgKGluSW5zdGFuY2UpKQorI2RlZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlz
cG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudENvcHlOYW1lLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBD
RlN0cmluZ1JlZiogb3V0TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisjZGVmaW5lIEF1
ZGlvQ29tcG9uZW50Q29weU5hbWUgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50
Q29weU5hbWUKKwogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucywg
T1NTdGF0dXMsIChDRkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAob3V0QnVuZGxl
UmVnaXN0cmF0aW9ucykpCiAjZGVmaW5lIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3Ry
YXRpb25zIHNvZnRMaW5rQXVkaW9Ub29sYm94Q29yZUF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJS
ZWdpc3RyYXRpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25z
LCBPU1N0YXR1cywgKENGRGF0YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVS
ZWdpc3RyYXRpb25zKSkKICNkZWZpbmUgQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJh
dGlvbnMgc29mdExpbmtBdWRpb1Rvb2xib3hDb3JlQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJl
Z2lzdHJhdGlvbnMKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxl
KSwgKGluQXVkaW9GaWxlKSkKKyNkZWZpbmUgQXVkaW9GaWxlQ2xvc2Ugc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvRmlsZUNsb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9p
ZCogaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxl
X1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1
bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQg
aW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEKiBvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRh
LCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywg
aW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEF1ZGlvRmlsZU9wZW5XaXRo
Q2FsbGJhY2tzIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNr
cworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxl
KSwgKGluRXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlRGlzcG9zZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0
YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQ
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURh
dGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0
eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFk
LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyKiBpb051
bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlv
TnVtYmVyRnJhbWVzLCBpb0RhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVSZWFkIHNvZnRMaW5r
X0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVSZWFkCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVz
LCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Q
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURh
dGFTaXplLCBpblByb3BlcnR5RGF0YSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5
IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZv
cldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBp
bkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmls
ZUlECitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0
QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxl
UmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5l
IEV4dEF1ZGlvRmlsZU9wZW5VUkwgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZU9w
ZW5VUkwKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvQ29tcG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQg
aW5Db21wb25lbnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChp
bkNvbXBvbmVudCwgaW5EZXNjKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRGaW5kTmV4dCBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRGaW5kTmV4dAorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VO
ZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50
SW5zdGFuY2UqIG91dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCisjZGVm
aW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQg
aW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUs
IEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0
YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0
YVNpemUpKQorI2RlZmluZSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9Vbml0R2V0UHJvcGVydHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQpLCAoaW5Vbml0KSkKKyNkZWZpbmUgQXVkaW9Vbml0SW5pdGlhbGl6ZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0SW5pdGlhbGl6ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0
U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGlu
RGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1l
bnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5pdFNldFByb3BlcnR5IHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRTZXRQcm9wZXJ0eQorCiAjZW5kaWYgLy8gVVNF
KEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5jcHAKaW5kZXggYzE0MzkyYmEyYzkxNDJkNTFiNDc0ZTdkMjQ0ODBiOTcxOWY4YTRj
Ni4uNGJkZDNjOGEwNjJmOGRjMTY4NTQ1YTAyZTg0N2FkNTAzYWFmNGViYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgPENvcmVNZWRpYS9DTUJ1ZmZlclF1ZXVlLmg+CiAjaW5jbHVkZSA8Q29yZVZp
ZGVvL0NvcmVWaWRlby5oPgogI2VuZGlmCiAKQEAgLTUzLDggKzU0LDEwIEBAIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldERhdGFCCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBsZUluZGV4LCBDTVNhbXBsZVRp
bWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxlSW5kZXgsIHRpbWluZ0luZm9P
dXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHksIEJvb2xlYW4sIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbXBh
cmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIp
LCBQQUxfRVhQT1JUKQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01UaW1lQWRkLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGlt
ZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGlu
dDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMy
X3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3
VGltZXNjYWxlLCBtZXRob2QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0
NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYWtlLCBDTVRp
bWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2FsZSksICh2YWx1ZSwgdGltZXNjYWxl
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYWtlV2l0aFNlY29uZHMsIENNVGltZSwgKEZsb2F0NjQg
c2Vjb25kcywgaW50MzJfdCBwcmVmZXJyZWRUaW1lU2NhbGUpLCAoc2Vjb25kcywgcHJlZmVycmVk
VGltZVNjYWxlKSwgUEFMX0VYUE9SVCkKQEAgLTYyLDYgKzY1LDE1IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVTdWJ0cmFj
dCwgQ01UaW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VHZXRFbmQsIENNVGltZSwgKENNVGltZVJhbmdlIHJhbmdl
KSwgKHJhbmdlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZU1ha2UsIENNVGltZVJhbmdlLCAo
Q01UaW1lIHN0YXJ0LCBDTVRpbWUgZHVyYXRpb24pLCAoc3RhcnQsIGR1cmF0aW9uKSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVRpbWVSYW5nZUVxdWFsLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UxLCBD
TVRpbWVSYW5nZSByYW5nZTIpLCAocmFuZ2UxLCByYW5nZTIpLCBQQUxfRVhQT1JUKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZU1heGltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMiksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUx
LCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5n
ZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUgdGltZSks
IChyYW5nZSwgdGltZSksIFBBTF9FWFBPUlQpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW52YWxpZCwgQ01UaW1lLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZVBv
c2l0aXZlSW5maW5pdHksIENNVGltZSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUmFuZ2VJbnZhbGlk
LCBDTVRpbWVSYW5nZSwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSwg
UEFMX0VYUE9SVCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2Ny
aXB0aW9uRXh0ZW5zaW9uQXRvbXMsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1h
dERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9S
VCkKQEAgLTc0LDYgKzg2LDkgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHIKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSwgQ0ZTdHJpbmdSZWYs
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRF
X1NUXzQyOF8xLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlv
bllDYkNyTWF0cml4X0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQorU09GVF9M
SU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5h
bEZvcm1hdCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQor
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBrQ01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9NaWRkbGUsIENGU3RyaW5nUmVmLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX1N0YXJ0LCBDRlN0cmluZ1JlZiwg
UEFMX0VYUE9SVCkKQEAgLTkzLDIwICsxMDgsMjMgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBdHRyaWJ1dGUK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBrQ01UZXh0TWFya3VwQXR0cmlidXRlX1dyaXRpbmdEaXJlY3Rpb25TaXplUGVyY2VudGFnZSwg
Q0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X0xlZnRUb1Jp
Z2h0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0VmVydGljYWxMYXlvdXRfUmln
aHRUb0xlZnQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbnZhbGlkLCBDTVRp
bWUsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwga0NNVGltZVplcm8sIENNVGltZSwgUEFMX0VYUE9SVCkKLVNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01U
aW1lUG9zaXRpdmVJbmZpbml0eSwgQ01UaW1lLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGlt
ZVJhbmdlKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRN
ZWRpYVN1YlR5cGUsIEZvdXJDaGFyQ29kZSwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyks
IChkZXNjKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlLCBD
TU1lZGlhVHlwZSwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VY
UE9SVCkKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSwgT1NTdGF0dXMsIChDTUJs
b2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxv
Y2tCdWZmZXJHZXREYXRhUG9pbnRlciwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1
ZmZlciwgc2l6ZV90IG9mZnNldCwgc2l6ZV90KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0
b3RhbExlbmd0aE91dCwgY2hhcioqIGRhdGFQb2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0
LCBsZW5ndGhBdE9mZnNldE91dCwgdG90YWxMZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSwgUEFM
X0VYUE9SVCkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyLCBD
TU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlm
aWNhdGlvbkNlbnRlckFkZExpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVy
UmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sg
Y2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0LCBV
SW50MzIgZmxhZ3MpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwg
b2JqZWN0LCBmbGFncyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVM
aXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0
IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0cmlu
Z1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIsIGxpc3RlbmVy
LCBjYWxsYmFjaywgbm90aWZpY2F0aW9uLCBvYmplY3QpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9j
a0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJN
YWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkICptYWtlRGF0
YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBD
TUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVz
LCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90ICpzYW1wbGVTaXplQXJyYXksIENN
U2FtcGxlQnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJl
YWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERl
c2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1p
bmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCks
IFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZm
ZXJSZWYgKnNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpLCBQQUxf
RVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNC
dWYsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGlt
aW5nSW5mbyAqc2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmQ29weU91
dCksIChhbGxvY2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2Ft
cGxlVGltaW5nQXJyYXksIHNCdWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJs
b2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRp
bWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXks
IENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNp
emVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3Is
IGRhdGFCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1p
bmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBs
ZVNpemVBcnJheSwgc2FtcGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1
ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtl
RGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJl
YWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0
ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBj
b25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBu
dW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2Ft
cGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5
LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2Ny
aXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdB
cnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCksIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJS
ZWYqIHNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpLCBQQUxfRVhQ
T1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYs
IENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5n
SW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCks
IChhbGxvY2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxl
VGltaW5nQXJyYXksIHNCdWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBs
ZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1
ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc0J1Zk91dCksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIEJvb2xl
YW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0
YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZv
KiBzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxs
b2NhdG9yLCBpbWFnZUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1h
a2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNhbXBs
ZUJ1ZmZlck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3Rh
bXAsIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQp
CkBAIC0xMTYsMTQgKzEzNCwxNSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRQcmVzZQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyR2V0T3V0cHV0RHVyYXRpb24sIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYp
LCAoc2J1ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRp
b25UaW1lU3RhbXAsIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5LCBDRkFy
cmF5UmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQm9vbGVhbiBjcmVhdGVJZk5lY2Vzc2Fy
eSksIChzYnVmLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYg
c2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWluZ0luZm8g
KnRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCAqdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0
KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWluZ0FycmF5
RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lQ29udmVydFNjYWxlLCBDTVRp
bWUsIChDTVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2NhbGUsIENNVGltZVJvdW5kaW5nTWV0
aG9kIG1ldGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1ldGhvZCksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBs
ZVRpbWluZ0luZm8qIHRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCogdGltaW5nQXJyYXlFbnRy
aWVzTmVlZGVkT3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQs
IHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJHZXRUb3RhbFNhbXBsZVNpemUsIHNpemVfdCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAo
c2J1ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyLCBPU1N0YXR1
cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyKSwgKHNi
dWYsIGJ1ZmZlciksIFBBTF9FWFBPUlQpCisKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUdldEF0dGFjaG1lbnQsIENGVHlwZVJlZiwg
KENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ01BdHRhY2ht
ZW50TW9kZSogYXR0YWNobWVudE1vZGVPdXQpLCAodGFyZ2V0LCBrZXksIGF0dGFjaG1lbnRNb2Rl
T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRC
ZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENGVHlwZVJlZiB2YWx1ZSwgQ01BdHRh
Y2htZW50TW9kZSBhdHRhY2htZW50TW9kZSksICh0YXJnZXQsIGtleSwgdmFsdWUsIGF0dGFjaG1l
bnRNb2RlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFj
aG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFyZ2V0LCBrZXkpLCBQ
QUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWVi
YXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91
dCksIFBBTF9FWFBPUlQpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywg
Q01UaW1lYmFzZVJlZiogdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGlt
ZWJhc2VPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRp
bWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNl
R2V0UmF0ZSwgRmxvYXQ2NCwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpLCBQ
QUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRSYXRlLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYg
dGltZWJhc2UsIEZsb2F0NjQgcmF0ZSksICh0aW1lYmFzZSwgcmF0ZSksIFBBTF9FWFBPUlQpCkBA
IC0xNDQsMTEgKzE2MywxMyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZURlcXVldWVBbgogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVl
dWVFbnF1ZXVlLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUmVm
IGJ1ZmZlciksIChxdWV1ZSwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSXNF
bXB0eSwgQm9vbGVhbiwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwgQ01JdGVtQ291bnQsIChDTUJ1ZmZl
clF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0
Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNr
cyAqLCAoKSwgKCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVu
c29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3MqLCAoKSwgKCksIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBD
TVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZl
clF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5z
dGFsbFRyaWdnZXIsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJR
dWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVl
VHJpZ2dlckNvbmRpdGlvbiBjb25kaXRpb24sIENNVGltZSB0aW1lLCBDTUJ1ZmZlclF1ZXVlVHJp
Z2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIGNhbGxiYWNrLCByZWZjb24sIGNv
bmRpdGlvbiwgdGltZSwgdHJpZ2dlclRva2VuT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1
ZXVlSW5zdGFsbFRyaWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZl
clF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxs
YmFjaywgdm9pZCogdHJpZ2dlclJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24g
dHJpZ2dlckNvbmRpdGlvbiwgQ01JdGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJR
dWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJh
Y2ssIHRyaWdnZXJSZWZjb24sIHRyaWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRy
aWdnZXJUb2tlbk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEs
IE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1
ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9O
b3REaXNwbGF5LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50
S2V5X05vdFN5bmMsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQpAQCAtMTY4LDQwICsxODksMzcg
QEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIGdldF9Db3JlTWVkaWFfa0NNU2FtcGwKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0Vm
ZmVjdGl2ZVJhdGVDaGFuZ2VkLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFz
ZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBk
ZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9D
aGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQq
IG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5
b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNjKSwg
UEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZSwgY29u
c3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6ZV90KiBzaXpl
T3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9y
bWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNyZWF0ZVdp
dGhNZW1vcnlCbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBzdHJ1Y3R1cmVBbGxvY2F0
b3IsIHZvaWQqIG1lbW9yeUJsb2NrLCBzaXplX3QgYmxvY2tMZW5ndGgsIENGQWxsb2NhdG9yUmVm
IGJsb2NrQWxsb2NhdG9yLCBjb25zdCBDTUJsb2NrQnVmZmVyQ3VzdG9tQmxvY2tTb3VyY2UqIGN1
c3RvbUJsb2NrU291cmNlLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwg
Q01CbG9ja0J1ZmZlckZsYWdzIGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmKiBibG9ja0J1ZmZlck91
dCksIChzdHJ1Y3R1cmVBbGxvY2F0b3IsIG1lbW9yeUJsb2NrLCBibG9ja0xlbmd0aCwgYmxvY2tB
bGxvY2F0b3IsIGN1c3RvbUJsb2NrU291cmNlLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGZs
YWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRp
b0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZl
ckxpc3QgKmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRv
ciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYgKmJsb2NrQnVmZmVyT3V0KSwgKHNi
dWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6
ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2Nr
QnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlz
dFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIHNpemVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVm
ZmVyTGlzdE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3Ry
dWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJf
dCBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVy
TGlzdFNpemVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3Ry
dWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcywgQ01JdGVtQ291bnQs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBzYW1wbGVSYW5nZSwg
Q01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYW1wbGVSYW5n
ZSwgc0J1Zk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJy
YXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFy
cmF5RW50cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQsIENNSXRlbUNvdW50KiBzaXplQXJyYXlF
bnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJheUVudHJpZXMsIHNpemVBcnJheU91dCwg
c2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxl
QnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRh
UmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlD
YWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQ
VFMsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24gKnBhY2tldERlc2NyaXB0aW9u
cywgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBk
YXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9y
bWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywg
c0J1Zk91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1
ZGlvQnVmZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9j
YXRvclJlZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxs
b2NhdG9yLCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0
KSwgKHNidWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdz
LCBidWZmZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0
aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxl
QnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCog
bWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlw
dGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlv
U3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZm
ZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24s
IG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0
aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJS
ZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwg
Q01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29u
c3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNh
bXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwg
Zm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFj
a2V0RGVzY3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxl
QnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZB
bGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1
ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBi
YnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01T
YW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRpb0NoYW5u
ZWxMYXlvdXQqIGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9pZCogbWFn
aWNDb29raWUsIENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBsYXlvdXQs
IG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2MpLCBQQUxf
RVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llLCBjb25zdCB2
b2lkKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjLCBzaXplX3QqIHNpemVPdXQp
LCAoZGVzYywgc2l6ZU91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0SXRlbSAqLCAo
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAsIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01UaW1lIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFt
cCksIChzYnVmLCBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCBQQUxfRVhQT1JUKQorCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01DbG9ja0dldFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2sp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzLCB1aW50
NjRfdCwgKENNVGltZSBob3N0VGltZSksIChob3N0VGltZSksIFBBTF9FWFBPUlQpCiAKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjayko
IENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQg
KnJlZmNvbiksIHZvaWQgKnJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VY
UE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05P
RVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1Ziwg
aGFuZGxlciksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0LCBDRlN0cmluZ1JlZiwgUEFMX0VY
UE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JH
QiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmLCBPU1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFj
aykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9p
ZCogcmVmY29uKSwgdm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMs
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNNU0FNUExFQlVGRkVSQ0FMTF9O
T0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQpKSwgKHNidWYs
IGhhbmRsZXIpLCBQQUxfRVhQT1JUKQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNs
b2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TVRpbWVNYXhpbXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1l
MSwgdGltZTIpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0
aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1l
UmFuZ2VDb250YWluc1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRp
bWUpLCAocmFuZ2UsIHRpbWUpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwg
KGFsbG9jYXRvciwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUs
IENNVGltZSwgUEFMX0VYUE9SVCkKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorI2Vu
ZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0oTUFDKQotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZp
Y2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3Ry
aW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZp
Y2VVSUQsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VV
SUQsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091
dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UsIHZvaWQqLCAo
Q01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01CYXNlT2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01CYXNlT2JqZWN0
UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01EZXJpdmVkT2Jq
ZWN0Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01C
YXNlVlRhYmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwgQ01CYXNlT2JqZWN0UmVm
KiBiYXNlT2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFzc0lELCBiYXNlT2JqZWN0KSwg
UEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1l
ZGlhU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaAppbmRleCA3NTI1YjkxOWM2OTVkMzYwOTdiMTExMDMyYjk0Zjc0N2YxNTFmMWYwLi42MTMz
NGQ5MmVlZWQ1YjY5NDczMGE4ZmNkY2QzY2Y5NGRmMTIyYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCkBAIC02MywxMiArNjMsMTUgQEAgU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mbywKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm8KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckRhdGFJc1JlYWR5LCBCb29sZWFuLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChz
YnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJEYXRhSXNSZWFkeSBzb2Z0TGlua19Db3JlTWVk
aWFfQ01TYW1wbGVCdWZmZXJEYXRhSXNSZWFkeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRp
bWUsIGludDMyX3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAo
dGltZSwgbmV3VGltZXNjYWxlLCBtZXRob2QpKQotI2RlZmluZSBDTVRpbWVDb252ZXJ0U2NhbGUg
c29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUNvbnZlcnRTY2FsZQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHksIE9T
U3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFC
dWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNv
dW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0
IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNh
bXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVC
dWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1h
dERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVU
aW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc2FtcGxl
QnVmZmVyT3V0KSkKKyNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeQorCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lQWRkLCBDTVRpbWUsIChDTVRpbWUgdGlt
ZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQogI2RlZmluZSBDTVRpbWVBZGQgc29m
dExpbmtfQ29yZU1lZGlhX0NNVGltZUFkZAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENN
VGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQogI2RlZmluZSBDTVRpbWVDb21wYXJlIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVRpbWVDb21wYXJlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01UaW1lQ29udmVydFNjYWxlLCBDTVRpbWUsIChDTVRpbWUgdGlt
ZSwgaW50MzJfdCBuZXdUaW1lc2NhbGUsIENNVGltZVJvdW5kaW5nTWV0aG9kIG1ldGhvZCksICh0
aW1lLCBuZXdUaW1lc2NhbGUsIG1ldGhvZCkpCisjZGVmaW5lIENNVGltZUNvbnZlcnRTY2FsZSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lQ29udmVydFNjYWxlCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2NCwgKENN
VGltZSB0aW1lKSwgKHRpbWUpKQogI2RlZmluZSBDTVRpbWVHZXRTZWNvbmRzIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVRpbWVHZXRTZWNvbmRzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwgaW50MzJf
dCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCkBAIC04MywzMyArODYsNTEgQEAgU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlTWFr
ZSwgQ01UaW1lUmFuZ2UsIChDTVQKICNkZWZpbmUgQ01UaW1lUmFuZ2VNYWtlIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVRpbWVSYW5nZU1ha2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUVxdWFsLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFu
Z2UxLCBDTVRpbWVSYW5nZSByYW5nZTIpLCAocmFuZ2UxLCByYW5nZTIpKQogI2RlZmluZSBDTVRp
bWVSYW5nZUVxdWFsIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVSYW5nZUVxdWFsCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11bSwgQ01U
aW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKKyNkZWZp
bmUgQ01UaW1lTWF4aW11bSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWF4aW11bQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENN
VGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCisjZGVm
aW5lIENNVGltZU1pbmltdW0gc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1pbmltdW0KK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUNvbnRh
aW5zVGltZSwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUgdGltZSksIChyYW5n
ZSwgdGltZSkpCisjZGVmaW5lIENNVGltZVJhbmdlQ29udGFpbnNUaW1lIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTVRpbWVSYW5nZUNvbnRhaW5zVGltZQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENNVGltZSkKKyNkZWZpbmUga0NN
VGltZUludmFsaWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lSW52YWxpZCgpCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZVplcm8sIENNVGltZSkKKyNk
ZWZpbmUga0NNVGltZVplcm8gZ2V0X0NvcmVNZWRpYV9rQ01UaW1lWmVybygpCitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZVBvc2l0aXZlSW5maW5p
dHksIENNVGltZSkKKyNkZWZpbmUga0NNVGltZVBvc2l0aXZlSW5maW5pdHkgZ2V0X0NvcmVNZWRp
YV9rQ01UaW1lUG9zaXRpdmVJbmZpbml0eSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52YWxpZCwgQ01UaW1lUmFuZ2UpOworI2Rl
ZmluZSBrQ01UaW1lUmFuZ2VJbnZhbGlkIGdldF9Db3JlTWVkaWFfa0NNVGltZVJhbmdlSW52YWxp
ZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGlt
ZUluZGVmaW5pdGUsIENNVGltZSkKKyNkZWZpbmUga0NNVGltZUluZGVmaW5pdGUgZ2V0X0NvcmVN
ZWRpYV9rQ01UaW1lSW5kZWZpbml0ZSgpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNj
cmlwdGlvbkV4dGVuc2lvbkF0b21zLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcyBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0
ZW5zaW9uQXRvbXMoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzLCBDRlN0cmluZ1Jl
ZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3Jp
cHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMygp
CisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzIGdldF9D
b3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtD
TUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmlt
YXJpZXNfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5z
aW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCgpCisjZGVm
aW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMCgpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVz
Y3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX1AzX0Q2NSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tD
TUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1KCkKKyNkZWZpbmUga0NNRm9y
bWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUgZ2V0X0NvcmVNZWRpYV9rQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
RnVsbFJhbmdlVmlkZW8sIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbyBn
ZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlv
bkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAy
MCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwKCkKKyNkZWZpbmUga0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCgpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX0lUVV9SXzIxMDBfSExHIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBf
SExHKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9S
XzIxMDBfSExHIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0lUVV9SXzIxMDBfSExHKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyLCBD
RlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciBnZXRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9MaW5lYXIoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fTGluZWFyIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0xpbmVhcigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEs
IENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9u
VHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVNZWRpYV9r
Q01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSgpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xLCBDRlN0cmluZ1JlZikKLSNk
ZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25U
cmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVz
Y3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NN
UFRFX1NUXzQyOF8xKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX1NNUFRFX1NUXzQyOF8xIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFu
c2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9S
XzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lv
bl9rQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNy
TWF0cml4X0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0
cml4X0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0
cml4X0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENv
bnRlbnRPcmlnaW5hbEZvcm1hdCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5hbEZvcm1hdCBnZXRfQ29yZU1l
ZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1Byb3RlY3RlZENvbnRlbnRPcmlnaW5h
bEZvcm1hdCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IsIENGU3Ry
aW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERl
c2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9z
UkdCKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0Ig
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigp
CisKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0
TWFya3VwQWxpZ25tZW50VHlwZV9FbmQsIENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01UZXh0TWFy
a3VwQWxpZ25tZW50VHlwZV9FbmQgZ2V0X0NvcmVNZWRpYV9rQ01UZXh0TWFya3VwQWxpZ25tZW50
VHlwZV9FbmQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX01pZGRsZSwgQ0ZTdHJpbmdSZWYpCkBAIC0xNDgs
MTQgKzE2OSw2IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01UZXh0VmVydGljYWxMYXlvdXRfTGVmdFRvUmlnaHQsCiAjZGVmaW5lIGtDTVRleHRWZXJ0
aWNhbExheW91dF9MZWZ0VG9SaWdodCBnZXRfQ29yZU1lZGlhX2tDTVRleHRWZXJ0aWNhbExheW91
dF9MZWZ0VG9SaWdodCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0LCBDRlN0cmluZ1JlZikKICNk
ZWZpbmUga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0IGdldF9Db3JlTWVkaWFfa0NN
VGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW52YWxpZCwgQ01UaW1lKQotI2RlZmluZSBr
Q01UaW1lSW52YWxpZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbnZhbGlkKCkKLVNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lKQot
I2RlZmluZSBrQ01UaW1lWmVybyBQQUw6OmdldF9Db3JlTWVkaWFfa0NNVGltZVplcm8oKQotU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2
ZUluZmluaXR5LCBDTVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5IGdldF9D
b3JlTWVkaWFfa0NNVGltZVBvc2l0aXZlSW5maW5pdHkoKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGltZVJhbmdl
KTsKLSNkZWZpbmUga0NNVGltZVJhbmdlSW52YWxpZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWVSYW5n
ZUludmFsaWQoKQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKQEAgLTE2MywxOSArMTc2LDIxIEBA
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERl
c2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlCiAjZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRN
ZWRpYVN1YlR5cGUgc29mdExpbmtfQ29yZU1lZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRp
YVN1YlR5cGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlLCBDTU1lZGlhVHlwZSwgKENNRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlvbkdl
dE1lZGlhVHlwZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlh
VHlwZQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01O
b3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIsIENNTm90aWZpY2F0aW9uQ2Vu
dGVyUmVmLCAodm9pZCksICgpKQogI2RlZmluZSBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1
bHRMb2NhbENlbnRlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01Ob3RpZmljYXRpb25DZW50ZXJHZXRE
ZWZhdWx0TG9jYWxDZW50ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90
aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZp
Y2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qg
dm9pZCogb2JqZWN0LCBVSW50MzIgZmxhZ3MpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ss
IG5vdGlmaWNhdGlvbiwgb2JqZWN0LCBmbGFncykpCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2Vu
dGVyQWRkTGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyQWRk
TGlzdGVuZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0
aW9uQ2VudGVyUmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9u
Q2FsbGJhY2sgY2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCog
b2JqZWN0KSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVj
dCkpCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIgc29mdExpbmtf
Q29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNh
bGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVt
U2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1w
bGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6
ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJl
ZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVt
U2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNh
bXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQorCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRh
dGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlD
YWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24s
IENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51
bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2Ft
cGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBsZVNp
emVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZmZXJS
ZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51
bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1T
YW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSkKICNkZWZpbmUgQ01T
YW1wbGVCdWZmZXJDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRl
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYgKnNidWZDb3B5T3V0KSwgKGFs
bG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxl
QnVmZmVyUmVmKiBzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSkK
ICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlckNyZWF0ZUNvcHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1
cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxT
QnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRp
bWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNvcHlP
dXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNh
bXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWlu
ZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVm
IG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3Qg
Q01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYq
IHNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdF
bnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpKQogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJS
ZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlw
dGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVm
ZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0
aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZm
ZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVm
IGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZl
clJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlv
biwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeVdpdGhJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVy
LCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sg
bWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxlVGlt
aW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0
KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxi
YWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5n
LCBzYW1wbGVCdWZmZXJPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdl
QnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVm
ZmVyCkBAIC0xOTMsMTkgKzIwOCwyMSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpbwogI2RlZmlu
ZSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXksIENGQXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNz
YXJ5KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5IHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5nSW5m
byAqdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRP
dXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5nQXJy
YXlFbnRyaWVzTmVlZGVkT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0
dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJp
ZXMsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50KiB0aW1p
bmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1p
bmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSkKICNkZWZpbmUgQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUs
IHNpemVfdCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2Ft
cGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlckdldFRvdGFsU2FtcGxlU2l6ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlciwgT1NTdGF0dXMsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciksIChzYnVmLCBidWZm
ZXIpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXIgc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlcgorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01HZXRBdHRhY2htZW50LCBDRlR5cGVSZWYsIChDTUF0
dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENNQXR0YWNobWVudE1v
ZGUqIGF0dGFjaG1lbnRNb2RlT3V0KSwgKHRhcmdldCwga2V5LCBhdHRhY2htZW50TW9kZU91dCkp
CiAjZGVmaW5lIENNR2V0QXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01HZXRBdHRhY2ht
ZW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TZXRB
dHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdS
ZWYga2V5LCBDRlR5cGVSZWYgdmFsdWUsIENNQXR0YWNobWVudE1vZGUgYXR0YWNobWVudE1vZGUp
LCAodGFyZ2V0LCBrZXksIHZhbHVlLCBhdHRhY2htZW50TW9kZSkpCiAjZGVmaW5lIENNU2V0QXR0
YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TZXRBdHRhY2htZW50CiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01SZW1vdmVBdHRhY2htZW50LCB2b2lk
LCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5KSwgKHRhcmdl
dCwga2V5KSkKICNkZWZpbmUgQ01SZW1vdmVBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVNZWRpYV9D
TVJlbW92ZUF0dGFjaG1lbnQKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFzZVJl
ZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQpKQor
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFz
ZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0KSwg
KGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKICNkZWZpbmUgQ01UaW1lYmFz
ZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUNyZWF0
ZVdpdGhNYXN0ZXJDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWViYXNl
KSwgKHRpbWViYXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdldFRpbWUgc29mdExpbmtfQ29yZU1l
ZGlhX0NNVGltZWJhc2VHZXRUaW1lCkBAIC0yMjcsNyArMjQ0LDcgQEAgU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNo
U291cmNlVG8KICNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJ
bW1lZGlhdGVseSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hT
b3VyY2VUb0ZpcmVJbW1lZGlhdGVseQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVGltZUNvcHlBc0RpY3Rpb25hcnksIENGRGljdGlvbmFyeVJlZiwgKENN
VGltZSB0aW1lLCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAodGltZSwgYWxsb2NhdG9yKSkK
ICNkZWZpbmUgQ01UaW1lQ29weUFzRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
Q29weUFzRGljdGlvbmFyeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1
ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmICpvdXREZXNjKSwgKGFsbG9jYXRvciwg
aW1hZ2VCdWZmZXIsIG91dERlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVy
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBp
bWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9j
YXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNp
b25zLCBDTVZpZGVvRGltZW5zaW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRl
b0Rlc2MpLCAodmlkZW9EZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0
RGltZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0
RGltZW5zaW9ucwpAQCAtMjQ5LDIzICsyNjYsMjMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwgQ01JdGUK
ICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50IHNvZnRMaW5rX0NvcmVNZWRpYV9D
TUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3Rh
bXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmluZSBD
TUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcAotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRDYWxs
YmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzICos
ICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBD
TUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldENhbGxi
YWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJR
dWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycwogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50
YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUp
KQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVm
ZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJR
dWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1
ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29u
LCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCkpCisjZGVmaW5lIENNQnVmZmVyUXVl
dWVJbnN0YWxsVHJpZ2dlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUluc3RhbGxU
cmlnZ2VyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAo
Q01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0cmln
Z2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29u
ZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQsIENN
QnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJpZ2dl
ckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNo
b2xkLCB0cmlnZ2VyVG9rZW5PdXQpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdn
ZXJXaXRoSW50ZWdlclRocmVzaG9sZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUlu
c3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwgT1NTdGF0
dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZmZXJR
dWV1ZU1hcmtFbmRPZkRhdGEgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVNYXJrRW5k
T2ZEYXRhCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwg
KHF1ZXVlKSkKKyNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldER1cmF0aW9uIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24KIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5
LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3Bs
YXkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSgpCiBT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0
YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNo
bWVudEtleV9Ob3RTeW5jIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RT
eW5jKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01T
YW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwgQ0ZTdHJpbmdSZWYpCi0jZGVm
aW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5IGdldF9Db3JlTWVk
aWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHkoKQotU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01TYW1wbGVB
dHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxl
QXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycygpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9E
aXNwbGF5RW1wdHlNZWRpYUltbWVkaWF0ZWx5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudEtleV9EaXNwbGF5RW1wdHlNZWRpYUltbWVkaWF0ZWx5IGdldF9D
b3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9EaXNwbGF5RW1wdHlNZWRpYUlt
bWVkaWF0ZWx5KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0RyYWluQWZ0ZXJEZWNvZGluZywgQ0ZTdHJp
bmdSZWYpCkBAIC0yODAsMTAgKzI5NywxMCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9TYW1wbAogI2Rl
ZmluZSBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJlZmVyZW5jZUJ5dGVPZmZz
ZXQgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJlZmVy
ZW5jZUJ5dGVPZmZzZXQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfU2FtcGxlUmVmZXJlbmNlVVJMLCBD
RlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9TYW1wbGVS
ZWZlcmVuY2VVUkwgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Nh
bXBsZVJlZmVyZW5jZVVSTCgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIENG
U3RyaW5nUmVmKQotI2RlZmluZSBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRl
Q2hhbmdlZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJh
dGVDaGFuZ2VkKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkLCBDRlN0cmluZ1JlZikKLSNkZWZp
bmUga0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCBnZXRfQ29yZU1lZGlhX2tDTVRp
bWViYXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVk
aWF0ZWx5LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNw
bGF5SW1tZWRpYXRlbHkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3Bs
YXlJbW1lZGlhdGVseSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycywgQ0ZTdHJp
bmdSZWYpCisjZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhl
cnMgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3Ro
ZXJzKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01T
YW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgQ0ZTdHJpbmdS
ZWYpCiAjZGVmaW5lIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNv
bnN1bWVkIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25f
QnVmZmVyQ29uc3VtZWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVy
YXRpb24sIENGU3RyaW5nUmVmKQpAQCAtMjkzLDcxICszMTAsNzQgQEAgU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRL
ZXlfR3JhZHUKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBn
ZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfVHJpbUR1cmF0aW9uQXRT
dGFydCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0YXJ0IGdldF9Db3JlTWVkaWFfa0NNU2FtcGxl
QnVmZmVyQXR0YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0YXJ0KCkKIAorU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9u
X0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NNVGltZWJhc2VO
b3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lYmFz
ZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1
bXBlZCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX1RpbWVK
dW1wZWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkKCkK
KworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91
dFNpemUsIGNvbnN0IEF1ZGlvQ2hhbm5lbExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29r
aWVTaXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lv
bnMsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFz
YmQsIGxheW91dFNpemUsIGxheW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0
ZW5zaW9ucywgb3V0RGVzYykpCisjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIGRlc2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSkKICNkZWZp
bmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykp
CiAjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRp
b24gc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJh
c2ljRGVzY3JpcHRpb24KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBj
b25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBk
ZXNjKSwgKGRlc2MpKQorI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0
RGVjb2RhYmxlRm9ybWF0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0CisKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIHN0cnVjdHVyZUFsbG9jYXRvciwgdm9pZCogbWVtb3J5
QmxvY2ssIHNpemVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxvY2F0b3JSZWYgYmxvY2tBbGxvY2F0b3Is
IGNvbnN0IENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1NvdXJjZSogY3VzdG9tQmxvY2tTb3VyY2Us
IHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBDTUJsb2NrQnVmZmVyRmxh
Z3MgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0KSwgKHN0cnVjdHVyZUFs
bG9jYXRvciwgbWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3RoLCBibG9ja0FsbG9jYXRvciwgY3VzdG9t
QmxvY2tTb3VyY2UsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZmxhZ3MsIGJsb2NrQnVmZmVy
T3V0KSkKICNkZWZpbmUgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jawotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVk
aW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVC
dWZmZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZm
ZXJMaXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9y
UmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0
b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChz
YnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNp
emUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9j
a0J1ZmZlck91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZl
ciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QqIGJ1ZmZlckxpc3RT
aXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZm
ZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0
b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJS
ZWYqIGJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZm
ZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9y
eUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1
ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyR2V0TnVtU2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMgc29mdExp
bmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcwotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdl
dFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0gKiwgKENN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQotI2RlZmluZSBDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0IHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0CitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZl
ckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVy
KSwgKHRoZUJ1ZmZlcikpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5CitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERh
dGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyLCBzaXplX3Qg
b2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXplX3QqIHRvdGFsTGVuZ3RoT3V0
LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBvZmZzZXQsIGxlbmd0aEF0T2Zm
c2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQpKQorI2RlZmluZSBDTUJsb2Nr
QnVmZmVyR2V0RGF0YVBvaW50ZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJHZXRE
YXRhUG9pbnRlcgorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdlIHNh
bXBsZVJhbmdlLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNidWYs
IHNhbXBsZVJhbmdlLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxl
QnVmZmVyRm9yUmFuZ2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ29weVNhbXBs
ZUJ1ZmZlckZvclJhbmdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90KiBz
aXplQXJyYXlPdXQsIENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNi
dWYsIHNpemVBcnJheUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05lZWRl
ZE91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5IHNvZnRMaW5r
X0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheQogCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNy
ZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBD
TVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ss
IHZvaWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0
RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25z
dCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uICpwYWNrZXREZXNjcmlwdGlvbnMsIENNU2Ft
cGxlQnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5
LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2Ny
aXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9T
YW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFu
IGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUg
c2J1ZlBUUywgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3Jp
cHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZm
ZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29u
LCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRp
b25zLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9TYW1wbGVCdWZmZXJDcmVh
dGVXaXRoUGFja2V0RGVzY3JpcHRpb25zCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVy
TGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBi
YnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1
aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNidWYs
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJM
aXN0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1
cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVy
LCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBu
dW1TYW1wbGVzLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBjb25zdCBBdWRpb1N0cmVh
bVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVm
KiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlw
dGlvbiwgbnVtU2FtcGxlcywgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBwYWNrZXREZXNjcmlwdGlv
bnMsIHNhbXBsZUJ1ZmZlck91dCkpCisjZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZm
ZXJGcm9tQXVkaW9CdWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZN
ZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGJ1
ZmZlckxpc3QpLCAoc2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRv
ciwgZmxhZ3MsIGJ1ZmZlckxpc3QpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZm
ZXJGcm9tQXVkaW9CdWZmZXJMaXN0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNl
dERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVz
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVCdWZm
ZXJTZXREYXRhUmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0YVJl
YWR5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5
b3V0U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nv
b2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5z
aW9ucywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwg
YXNiZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBl
eHRlbnNpb25zLCBvdXREZXNjKSkKLSNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
clNldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmLCBDTVRpbWUgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNidWYsIG91
dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVyU2V0T3V0
cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
clNldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xvY2tS
ZWYsICh2b2lkKSwgKCkpCi0jZGVmaW5lIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrICBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sKKyNkZWZpbmUgQ01DbG9ja0dldEhv
c3RUaW1lQ2xvY2sgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRIb3N0VGltZUNsb2NrCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldFRp
bWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spKQotI2RlZmluZSBDTUNsb2Nr
R2V0VGltZSAgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCisjZGVmaW5lIENNQ2xv
Y2tHZXRUaW1lIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0VGltZQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVU
b1N5c3RlbVVuaXRzLCB1aW50NjRfdCwgKENNVGltZSBob3N0VGltZSksIChob3N0VGltZSkpCiAj
ZGVmaW5lIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cwogCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFj
aFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKiBD
TVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQgKnJlZmNv
biksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0
YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqQ01TQU1QTEVCVUZGRVJD
QUxMX05PRVNDQVBFIGNhbGxiYWNrKShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENN
SXRlbUNvdW50IGluZGV4LCB2b2lkKiByZWZjb24pLCB2b2lkKiByZWZjb24pLCAoc2J1ZiwgY2Fs
bGJhY2ssIHJlZmNvbikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUg
c29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNh
bGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
T1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxl
QnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tG
b3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVz
ICheQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVm
LCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVy
Q2FsbEJsb2NrRm9yRWFjaFNhbXBsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJD
YWxsQmxvY2tGb3JFYWNoU2FtcGxlCiAKLSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKLQotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
Q2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2Nr
UmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSkKICNkZWZpbmUgQ01BdWRpb0Ns
b2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvQ2xvY2tDcmVhdGUKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBDTVRp
bWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQotI2RlZmlu
ZSBDTVRpbWVNYXhpbXVtIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNYXhpbXVtCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11bSwgQ01U
aW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKLSNkZWZp
bmUgQ01UaW1lTWluaW11bSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWluaW11bQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFp
bnNUaW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdl
LCB0aW1lKSkKLSNkZWZpbmUgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUgc29mdExpbmtfQ29yZU1l
ZGlhX0NNVGltZVJhbmdlQ29udGFpbnNUaW1lCiAKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQotI2RlZmluZSBr
Q01UaW1lSW5kZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRlKCkKLQotI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAK
ICNpZiBQTEFURk9STShNQUMpCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2Nr
T3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCkpCi0jZGVmaW5lIENNQXVkaW9E
ZXZpY2VDbG9ja0NyZWF0ZSAgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VDbG9ja0Ny
ZWF0ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAoYWxsb2NhdG9y
LCBkZXZpY2VVSUQsIGNsb2NrT3V0KSkKKyNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRl
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXREZXJpdmVk
U3RvcmFnZSwgdm9pZCosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0
KSkKLSNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UgUEFMOjpzb2Z0TGlua19D
b3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UKKyNkZWZpbmUgQ01CYXNlT2Jq
ZWN0R2V0RGVyaXZlZFN0b3JhZ2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldERl
cml2ZWRTdG9yYWdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CYXNlT2JqZWN0R2V0VlRhYmxlLCBjb25zdCBDTUJhc2VWVGFibGUqLCAoQ01CYXNlT2Jq
ZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNQmFzZU9iamVjdEdl
dFZUYWJsZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXRWVGFibGUKKyNk
ZWZpbmUgQ01CYXNlT2JqZWN0R2V0VlRhYmxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmpl
Y3RHZXRWVGFibGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTURlcml2ZWRPYmplY3RDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBjb25zdCBDTUJhc2VWVGFibGUqIHZUYWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBD
TUJhc2VPYmplY3RSZWYqIGJhc2VPYmplY3QpLCAoYWxsb2NhdG9yLCB2VGFibGUsIGNsYXNzSUQs
IGJhc2VPYmplY3QpKQotI2RlZmluZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgUEFMOjpzb2Z0TGlu
a19Db3JlTWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCisjZGVmaW5lIENNRGVyaXZlZE9iamVj
dENyZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01EZXJpdmVkT2JqZWN0Q3JlYXRlCiAKICNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y2YvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9W
aWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggZjUxY2JiYjE2NjYzYjgxZWNlMjAxZThhZDU3
MjVjMjUxMjFmNTZmYi4uNzJmNDExNGVlYWFkZjYyMGNlMzcwMjMwOTk0NzY2YjQ4Yzc5NWIxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGlu
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGlu
ay5jcHAKQEAgLTM0LDEzICszNCwxOSBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBWaWRlb1Rvb2xib3gsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9N
YXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24sIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfUmVhbFRpbWUsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Uo
UEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJh
dGUsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRl
b1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmlu
Z1JlZikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gs
IGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZp
ZGVvRW5jb2RlciwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQ
QUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVs
LCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYp
CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJv
ZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Np
b25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdp
ZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlv
bmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdl
QnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3Is
IFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0
Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Np
b25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVj
aWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxs
b2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9u
U2Vzc2lvbk91dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9v
bGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENv
bXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRh
dGlvblRpbWVTdGFtcCksIChzZXNzaW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0
YW1wKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBW
VENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25T
ZXNzaW9uUmVmIHNlc3Npb24sIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBw
cmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGZy
YW1lUHJvcGVydGllcywgdm9pZCogc291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5mb0ZsYWdz
KiBpbmZvRmxhZ3NPdXQpLCAoc2Vzc2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVT
dGFtcCwgZHVyYXRpb24sIGZyYW1lUHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24sIGluZm9G
bGFnc091dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJv
eCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAo
VlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lv
bkludmFsaWRhdGUsIHZvaWQsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNl
c3Npb24pKQogCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIFZpZGVvVG9vbGJveCwgVlRSZXN0cmljdFZpZGVvRGVjb2RlcnMsIE9TU3RhdHVz
LCAoVlRWaWRlb0RlY29kZXJSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25GbGFncywgY29uc3QgQ01W
aWRlb0NvZGVjVHlwZSogYWxsb3dlZENvZGVjVHlwZUxpc3QsIENNSXRlbUNvdW50IGFsbG93ZWRD
b2RlY1R5cGVDb3VudCksIChyZXN0cmljdGlvbkZsYWdzLCBhbGxvd2VkQ29kZWNUeXBlTGlzdCwg
YWxsb3dlZENvZGVjVHlwZUNvdW50KSwgUEFMX0VYUE9SVCkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCmluZGV4IGVjMGZmMDFjYzFmZTFh
MjEwNmNjN2E3ZjAyZThjODRiN2RkMGRhODQuLjYwYThmZjM3NDJkNDk2MTA3YjE0ZmFjN2M0MTM3
M2FiYzZkNjk0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9U
b29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9v
bGJveFNvZnRMaW5rLmgKQEAgLTM3LDkgKzM3LDIwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtl
CiAjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1
cmF0aW9uIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlG
cmFtZUludGVydmFsRHVyYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIENGU3Ry
aW5nUmVmKQogI2RlZmluZSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGdldF9W
aWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSgpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlKCkKK1NPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1By
b2ZpbGVMZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfUHJvZmlsZUxldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9Qcm9maWxlTGV2ZWwoKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZp
ZGVvVG9vbGJveCwga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFj
Y2VsZXJhdGVkVmlkZW9FbmNvZGVyLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9FbmNv
ZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyIGdl
dF9WaWRlb1Rvb2xib3hfa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2Fy
ZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2
ZWwsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9B
dXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9B
dXRvTGV2ZWwoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xi
b3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKKyNk
ZWZpbmUga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJv
eF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFp
bl9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9N
YWluX0F1dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5f
QXV0b0xldmVsKCkKKwogCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVv
VG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCwgQ01WaWRlb0Nv
ZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNvZGVyU3BlY2lmaWNhdGlvbiwg
Q0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgQ0ZBbGxvY2F0b3JS
ZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBv
dXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZDb24sIFZUQ29tcHJlc3Npb25T
ZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxsb2NhdG9yLCB3aWR0aCwgaGVp
Z2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBzb3VyY2VJbWFnZUJ1ZmZlckF0
dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRwdXRDYWxsYmFjaywgb3V0cHV0
Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCiAjZGVmaW5lIFZUQ29tcHJl
c3Npb25TZXNzaW9uQ3JlYXRlIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vz
c2lvbkNyZWF0ZQpAQCAtNDksNiArNjAsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZQogI2Rl
ZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVvVG9vbGJv
eF9WVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9F
bmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiks
IChzZXNzaW9uKSkKICNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVG
cmFtZXMgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRv
RW5jb2RlRnJhbWVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9v
bGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlLCB2b2lkLCAoVlRDb21wcmVzc2lv
blNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKKyNkZWZpbmUgVlRDb21wcmVzc2lvblNl
c3Npb25JbnZhbGlkYXRlIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lv
bkludmFsaWRhdGUKIAogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFM
LCBWaWRlb1Rvb2xib3gsIFZUUmVzdHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlk
ZW9EZWNvZGVyUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2Rl
Y1R5cGUqIGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBl
Q291bnQpLCAocmVzdHJpY3Rpb25GbGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRD
b2RlY1R5cGVDb3VudCkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2Nv
YS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggNjc0ZTY0OTRhMGE4YjU5NjkwM2UzY2E1
Y2ZiNmEyM2RkYWMzNjM4Yy4uZDQ0NDkzMWVmZDhhZTU1NjBiOGMxYjI3ZjIyYWQ5MmU3OTM0ODVl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hT
b2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xi
b3hTb2Z0TGluay5jcHAKQEAgLTQxLDYgKzQxLDEwIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91
CiAKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgTWVkaWFUb29sYm94LCBrTVRTdXBwb3J0Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRl
b0NoYW5nZWQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9y
YWdlLCB2b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCksICh0YXApKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwR2V0U291cmNlQXVkaW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYg
dGFwLCBDTUl0ZW1Db3VudCBudW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlz
dEluT3V0LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2Ug
KnRpbWVSYW5nZU91dCwgQ01JdGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJl
ckZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJG
cmFtZXNPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdU
YXBDYWxsYmFja3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdz
IGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0KSwgKGFsbG9jYXRvciwgY2Fs
bGJhY2tzLCBmbGFncywgdGFwT3V0KSwgUEFMX0VYUE9SVCkKKwogI2lmIEhBVkUoTVRfUExVR0lO
X0ZPUk1BVF9SRUFERVIpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgTWVkaWFUb29sYm94LCBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJh
dGlvbiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKaW5kZXggYzdkZTAyY2U2M2MyYzMw
MGQ5NjU0ZjY2NzBiZmMxMjUwMjI5MzQ0ZS4uMjU1YTc2N2I1NWVlZjRlOGVlZDE5ZGVmMjk3MTc4
NDkwYmU5M2YxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRp
YVRvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVk
aWFUb29sYm94U29mdExpbmsuaApAQCAtNDEsNiArNDEsMTMgQEAgU09GVF9MSU5LX0ZVTkNUSU9O
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UX0dldFNob3VsZFBsYXlI
RFJWaWQKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRp
YVRvb2xib3gsIGtNVFN1cHBvcnROb3RpZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdl
ZCwgQ0ZTdHJpbmdSZWYpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgTWVk
aWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRp
b1Byb2Nlc3NpbmdUYXBSZWYgdGFwKSwgKHRhcCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwR2V0U3RvcmFnZSBzb2Z0TGlua19NZWRpYVRvb2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBH
ZXRTdG9yYWdlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJv
eCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlv
UHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZm
ZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdz
T3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVz
T3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1l
UmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFw
R2V0U291cmNlQXVkaW8gc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFw
R2V0U291cmNlQXVkaW8KK1NPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBB
TCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJh
Y2tzKiBjYWxsYmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywg
ZmxhZ3MsIHRhcE91dCkpCisjZGVmaW5lIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlIHNvZnRM
aW5rX01lZGlhVG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZQorCiAjaWYgSEFWRShN
VF9QTFVHSU5fRk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBNZWRpYVRvb2xib3gsIGtNVFBsdWdpbkZvcm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9u
LCBDRlN0cmluZ1JlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDU1MjRlZWM1NTg3ZDFl
OTE3MGVmOWYxNDkyY2MwN2RlMjVjODBlYzcuLmM1NjJiZTc2MzVlYTZhMTU4NDA4MzNhYmMyZTE5
MTAxMGNjMzE3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzUwLDcgKzM1MCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEb2N1bWVu
dCk7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwog
dXNpbmcgbmFtZXNwYWNlIFdURjo6VW5pY29kZTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNN
YXhXcml0ZVJlY3Vyc2lvbkRlcHRoID0gMjE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCmluZGV4IDlmNTU2MDgwMmJhYzMyYmI0OTllYzk3YzliMGFlMzJlMTFjNjIx
YzcuLjg1MGNkZTcyNzBmMGQ2MWRjMjU0NDljMWRhODlhNDlhMWFmNDM2OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTENhbnZh
c0VsZW1lbnQpOwogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAogLy8gVGhlc2UgdmFsdWVzIGNvbWUgZnJvbSB0aGUgV2hhdFdHL1czQyBIVE1MIHNw
ZWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwMDM1MjZm
YzMxOWE5ZDFiNmIwN2Q2OGIyYjQ2MmFjYTg1NDdmY2ZkLi43ZDNiMTMyMWU4YTcwZDBkMWU4ZGMz
MTM1YTgxYWRjYmU1ODAyNmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKQEAgLTE5MCw4ICsxOTAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChIVE1MTWVkaWFFbGVtZW50KTsKIAotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKLQogc3RhdGljIGNvbnN0IFNlY29uZHMgU2Vla1JlcGVhdERlbGF5IHsgMTAwX21zIH07
CiBzdGF0aWMgY29uc3QgZG91YmxlIFNlZWtUaW1lID0gMC4yOwogc3RhdGljIGNvbnN0IFNlY29u
ZHMgU2NhblJlcGVhdERlbGF5IHsgMS41X3MgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcAppbmRl
eCBmZDNkM2UwM2EwM2YwODEwNTIxMjg2YmQwMjZhOTEwMTExZDNjYzg0Li41ZDU2YjllZTFhMGQz
ZDY3YTc5YzMwNzYxZDEzODE1ZDdjMDY0NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCkBA
IC0zNiwyNSArMzYsMTMgQEAKICNpbmNsdWRlICJBdWRpb0ZpbGVSZWFkZXIuaCIKICNpbmNsdWRl
ICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8QXVk
aW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24v
Q29yZUZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsu
aD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvRmFz
dE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0jaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19GUkFN
RVdPUksoQXVkaW9Ub29sYm94KQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlQ2xv
c2UsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRpb0ZpbGUpKQot
U09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3Rh
dHVzLCAodm9pZCAqaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywg
QXVkaW9GaWxlX1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGlu
R2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0Zp
bGVUeXBlSUQgaW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEICpvdXRBdWRpb0ZpbGUpLCAoaW5D
bGllbnREYXRhLCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRT
aXplRnVuYywgaW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9U
b29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBp
bkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94
LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5F
eHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIg
KmlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCAqb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9G
aWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkK
LVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVJlYWQsIE9TU3RhdHVzLCAoRXh0
QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBVSW50MzIgKmlvTnVtYmVyRnJhbWVzLCBBdWRp
b0J1ZmZlckxpc3QgKmlvRGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW9OdW1iZXJGcmFtZXMsIGlv
RGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwg
T1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2
b2lkICppblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblBy
b3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gs
IEV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZp
bGVJRCwgQm9vbGVhbiBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9G
aWxlKSwgKGluRmlsZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCi1TT0ZUX0xJ
TksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVPcGVuVVJMLCBPU1N0YXR1cywgKENGVVJMUmVm
IGluVVJMLCBFeHRBdWRpb0ZpbGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpblVSTCwgb3V0RXh0
QXVkaW9GaWxlKSkKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gQXVkaW9CdWZmZXJMaXN0KiB0cnlDcmVhdGVBdWRpb0J1ZmZlckxpc3Qo
c2l6ZV90IG51bWJlck9mQnVmZmVycykKQEAgLTEwMywyMiArOTEsMjIgQEAgQXVkaW9GaWxlUmVh
ZGVyOjpBdWRpb0ZpbGVSZWFkZXIoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQog
ICAgIDogbV9kYXRhKGRhdGEpCiAgICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewotICAgIGlm
IChBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVBy
b2MsIDAsIDAsICZtX2F1ZGlvRmlsZUlEKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpBdWRpb0Zp
bGVPcGVuV2l0aENhbGxiYWNrcyh0aGlzLCByZWFkUHJvYywgMCwgZ2V0U2l6ZVByb2MsIDAsIDAs
ICZtX2F1ZGlvRmlsZUlEKSAhPSBub0VycikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEV4
dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1fZXh0QXVk
aW9GaWxlUmVmKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVXcmFwQXVkaW9G
aWxlSUQobV9hdWRpb0ZpbGVJRCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikgIT0gbm9FcnIp
CiAgICAgICAgIG1fZXh0QXVkaW9GaWxlUmVmID0gMDsKIH0KIAogQXVkaW9GaWxlUmVhZGVyOjp+
QXVkaW9GaWxlUmVhZGVyKCkKIHsKICAgICBpZiAobV9leHRBdWRpb0ZpbGVSZWYpCi0gICAgICAg
IEV4dEF1ZGlvRmlsZURpc3Bvc2UobV9leHRBdWRpb0ZpbGVSZWYpOworICAgICAgICBQQUw6OkV4
dEF1ZGlvRmlsZURpc3Bvc2UobV9leHRBdWRpb0ZpbGVSZWYpOwogCiAgICAgbV9leHRBdWRpb0Zp
bGVSZWYgPSAwOwogCiAgICAgaWYgKG1fYXVkaW9GaWxlSUQpCi0gICAgICAgIEF1ZGlvRmlsZUNs
b3NlKG1fYXVkaW9GaWxlSUQpOworICAgICAgICBQQUw6OkF1ZGlvRmlsZUNsb3NlKG1fYXVkaW9G
aWxlSUQpOwogCiAgICAgbV9hdWRpb0ZpbGVJRCA9IDA7CiB9CkBAIC0xNTUsNyArMTQzLDcgQEAg
UmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVS
YXRlLCBib29sIG1peFRvTW9ubykKIAogICAgIC8vIEdldCBmaWxlJ3MgZGF0YSBmb3JtYXQKICAg
ICBVSW50MzIgc2l6ZSA9IHNpemVvZihtX2ZpbGVEYXRhRm9ybWF0KTsKLSAgICBpZiAoRXh0QXVk
aW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0
eV9GaWxlRGF0YUZvcm1hdCwgJnNpemUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0VycikKKyAg
ICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4
dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3Jt
YXQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHNpemVfdCBudW1i
ZXJPZkNoYW5uZWxzID0gbV9maWxlRGF0YUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKQEAgLTE2
Myw3ICsxNTEsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVz
KGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAgIC8vIE51bWJlciBvZiBmcmFt
ZXMKICAgICBTSW50NjQgbnVtYmVyT2ZGcmFtZXM2NCA9IDA7CiAgICAgc2l6ZSA9IHNpemVvZihu
dW1iZXJPZkZyYW1lczY0KTsKLSAgICBpZiAoRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRB
dWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6
ZSwgJm51bWJlck9mRnJhbWVzNjQpICE9IG5vRXJyIHx8IG51bWJlck9mRnJhbWVzNjQgPD0gMCkK
KyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwg
a0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZG
cmFtZXM2NCkgIT0gbm9FcnIgfHwgbnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIGRvdWJsZSBmaWxlU2FtcGxlUmF0ZSA9IG1fZmlsZURhdGFGb3Jt
YXQubVNhbXBsZVJhdGU7CkBAIC0xODUsNyArMTczLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRp
b0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykK
ICAgICBpZiAoc2FtcGxlUmF0ZSkKICAgICAgICAgbV9jbGllbnREYXRhRm9ybWF0Lm1TYW1wbGVS
YXRlID0gc2FtcGxlUmF0ZTsKIAotICAgIGlmIChFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4
dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNp
emVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAh
PSBub0VycikKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eShtX2V4dEF1ZGlv
RmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0NsaWVudERhdGFGb3JtYXQsIHNpemVvZihB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pLCAmbV9jbGllbnREYXRhRm9ybWF0KSAhPSBub0Vy
cikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDaGFuZ2UgbnVtYmVyT2ZGcmFt
ZXM2NCB0byBkZXN0aW5hdGlvbiBzYW1wbGUtcmF0ZQpAQCAtMjQzLDcgKzIzMSw3IEBAIFJlZlB0
cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwg
Ym9vbCBtaXhUb01vbm8pCiAKICAgICAvLyBSZWFkIGZyb20gdGhlIGZpbGUgKG9yIGluLW1lbW9y
eSB2ZXJzaW9uKQogICAgIFVJbnQzMiBmcmFtZXNUb1JlYWQgPSBudW1iZXJPZkZyYW1lczsKLSAg
ICBpZiAoRXh0QXVkaW9GaWxlUmVhZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZyYW1lc1RvUmVhZCwg
YnVmZmVyTGlzdCkgIT0gbm9FcnIpIHsKKyAgICBpZiAoUEFMOjpFeHRBdWRpb0ZpbGVSZWFkKG1f
ZXh0QXVkaW9GaWxlUmVmLCAmZnJhbWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0Vycikgewog
ICAgICAgICBkZXN0cm95QXVkaW9CdWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuaAppbmRleCBiN2I5MTYzYjU2ZTI2
YzI5Y2FiODRlZTI0NzY5ZTI5NzE0MTdhZmZjLi4wYmJiYmEyNzg1N2Q5NzllY2M2ODhmODdmMDMz
OWY2NjVlZjQyNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKQEAgLTMxLDEwICszMSwxMiBAQAog
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0Zp
bGUuaD4KLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4KKyNpbmNs
dWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKK3VzaW5nIEV4dEF1ZGlvRmlsZVJlZiA9IHN0cnVjdCBPcGFxdWVFeHRBdWRpb0ZpbGUqOwor
dXNpbmcgQXVkaW9GaWxlSUQgPSBzdHJ1Y3QgT3BhcXVlQXVkaW9GaWxlSUQqOworCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvQnVzOwpAQCAtNTgsNyArNjAsNyBAQCBwcml2YXRl
OgogICAgIGNvbnN0IHZvaWQqIG1fZGF0YSA9IHsgbnVsbHB0ciB9OwogICAgIHNpemVfdCBtX2Rh
dGFTaXplID0geyAwIH07CiAKLSAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlEID0geyAwIH07
CisgICAgQXVkaW9GaWxlSUQgbV9hdWRpb0ZpbGVJRCA9IHsgbnVsbHB0ciB9OwogICAgIEV4dEF1
ZGlvRmlsZVJlZiBtX2V4dEF1ZGlvRmlsZVJlZiA9IHsgbnVsbHB0ciB9OwogCiAgICAgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1fZmlsZURhdGFGb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFk
YXB0b3IuY3BwCmluZGV4IDQ3ODc1MDcyYTc4NmVkNjg2YzFkNDAxZTgyZTYyNTljYTIzYzU0YjYu
LjE0OGIwNTVkYmVjODk0M2VhNWFhYzY4ZTY4NThkZTdkMGI4MjMxMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvT3V0cHV0
VW5pdEFkYXB0b3IuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRh
cHRvcihBdWRpb1VuaXRSZW5kZXJlciYgcmVuZGVyZXIpCkBAIC0zOSwxMiArNDEsMTIgQEAgQXVk
aW9PdXRwdXRVbml0QWRhcHRvcjo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcihBdWRpb1VuaXRSZW5k
ZXJlciYgcmVuZGVyZXIpCiBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0
QWRhcHRvcigpCiB7CiAgICAgaWYgKG1fb3V0cHV0VW5pdCkKLSAgICAgICAgQXVkaW9Db21wb25l
bnRJbnN0YW5jZURpc3Bvc2UobV9vdXRwdXRVbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBv
bmVudEluc3RhbmNlRGlzcG9zZShtX291dHB1dFVuaXQpOwogfQogCiBPU1N0YXR1cyBBdWRpb091
dHB1dFVuaXRBZGFwdG9yOjpzdGFydCgpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBBdWRpb091dHB1
dFVuaXRTdGFydChtX291dHB1dFVuaXQpOworICAgIGF1dG8gcmVzdWx0ID0gUEFMOjpBdWRpb091
dHB1dFVuaXRTdGFydChtX291dHB1dFVuaXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCiAg
ICAgICAgIFdURkxvZ0Fsd2F5cygiRVJST1I6IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KCkgY2FsbCBm
YWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlbGQiLCBzdGF0aWNfY2FzdDxsb25nPihyZXN1bHQpKTsK
ICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNTIsNyArNTQsNyBAQCBPU1N0YXR1cyBBdWRpb091dHB1
dFVuaXRBZGFwdG9yOjpzdGFydCgpCiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6
OnN0b3AoKQogewotICAgIHJldHVybiBBdWRpb091dHB1dFVuaXRTdG9wKG1fb3V0cHV0VW5pdCk7
CisgICAgcmV0dXJuIFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOwogfQog
CiAvLyBEZWZhdWx0T3V0cHV0VW5pdCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAK
aW5kZXggZmRmNjc3NTdkMWI0Nzc2MDgwOGIxM2ZiNDM0ZTQwYjNkZmQzMGUwNC4uNGU5MDY0ZDBj
NmU5MzA4OWFlMGVhYTZmOTk4ZWNkNjUzNzM1ZDFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3Qu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUg
PEFjY2VsZXJhdGUvQWNjZWxlcmF0ZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0Nv
bnZlcnRlci5oPgorI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzIs
NyArMjczLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25z
dCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKIAogICAgIEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbiBpbnB1dEZvcm1hdDsKICAgICBVSW50MzIgcHJvcGVydHlEYXRhU2l6ZSA9
IHNpemVvZihpbnB1dEZvcm1hdCk7Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252
ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJv
cGVydHlEYXRhU2l6ZSwgJmlucHV0Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0
UHJvcGVydHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNj
cmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZpbnB1dEZvcm1hdCk7CiAgICAgQVNTRVJUKGZy
YW1lQ291bnQgPD0gc291cmNlLm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBpbnB1dEZvcm1h
dC5tQnl0ZXNQZXJQYWNrZXQpOwogCiAgICAgQXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ29udGV4dCBj
b250ZXh0IHsgc291cmNlLCBmcmFtZUNvdW50LCBpbnB1dEZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQg
fTsKQEAgLTI4MCw3ICsyODEsNyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNv
cHlGcm9tKGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2lmICFMT0df
RElTQUJMRUQKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gb3V0cHV0Rm9ybWF0Owog
ICAgIHByb3BlcnR5RGF0YVNpemUgPSBzaXplb2Yob3V0cHV0Rm9ybWF0KTsKLSAgICBBdWRpb0Nv
bnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1
dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91dHB1dEZvcm1hdCk7Cisg
ICAgUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVy
dGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJm91
dHB1dEZvcm1hdCk7CiAKICAgICBBU1NFUlQoQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG91dHB1
dEZvcm1hdCkubnVtYmVyT2ZDaGFubmVsU3RyZWFtcygpID09IG1fYnVmZmVyTGlzdC0+YnVmZmVy
Q291bnQoKSk7CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IG1fYnVmZmVyTGlzdC0+YnVm
ZmVyQ291bnQoKTsgKytpKSB7CkBAIC0yOTAsNyArMjkxLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1w
bGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25zdCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6
ZV90IGYKICNlbmRpZgogCiAgICAgVUludDMyIHNhbXBsZXNDb252ZXJ0ZWQgPSBtX3NhbXBsZUNh
cGFjaXR5OwotICAgIE9TU3RhdHVzIGVyciA9IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZm
ZXIoY29udmVydGVyLCBhdWRpb0NvbnZlcnRlckZyb21BQkxDYWxsYmFjaywgJmNvbnRleHQsICZz
YW1wbGVzQ29udmVydGVkLCBtX2J1ZmZlckxpc3QtPmxpc3QoKSwgbnVsbHB0cik7CisgICAgT1NT
dGF0dXMgZXJyID0gUEFMOjpBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRl
ciwgYXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZl
cnRlZCwgbV9idWZmZXJMaXN0LT5saXN0KCksIG51bGxwdHIpOwogICAgIGlmICghZXJyIHx8IGVy
ciA9PSBrUmFuT3V0T2ZJbnB1dERhdGFTdGF0dXMpIHsKICAgICAgICAgbV9zYW1wbGVDb3VudCA9
IHNhbXBsZXNDb252ZXJ0ZWQ7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNl
Lm1tCmluZGV4IGU1ZWM0Nzc3ODU4MWE3YWNmMGU3MjU1MzMzZjllMjY5NDFjNDcyZDEuLmQyYjVh
YzQ1ZjMwZmQ0YTNhZjUxYjQyMGRlMzc2NDliMTE1MWMyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3Vy
Y2UubW0KQEAgLTQyLDcgKzQyLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogUmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gQXVkaW9TYW1wbGVE
YXRhU291cmNlOjpjcmVhdGUoc2l6ZV90IG1heGltdW1TYW1wbGVDb3VudCwgTG9nZ2VySGVscGVy
JiBsb2dnZXJIZWxwZXIsIHNpemVfdCB3YWl0VG9TdGFydEZvclB1c2hDb3VudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZl
ckxpc3QuY3BwCmluZGV4IDg5ZWNlZWQ2MWNiMTliZmQ3ZDQyMGM3NzhhYWExMjBhYzM1NmRiZmQu
LjMwZGViMmU0Yzc0MWRmNTQ4OGIzOGY1ZWQ1OWVlYmU1YTAyODliZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJM
aXN0LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBX
ZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGZvcm1hdCkKICAgICA6IG1fYnl0ZXNQZXJGcmFtZShmb3JtYXQuYnl0ZXNQ
ZXJGcmFtZSgpKQpAQCAtMTE2LDcgKzExNSw3IEBAIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVk
aW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBDCiAg
ICAgICAgIHJldHVybjsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyID0gbnVsbHB0cjsK
LSAgICBpZiAobm9FcnIgPT0gQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0
YWluZWRCbG9ja0J1ZmZlcihzYW1wbGVCdWZmZXIsIG51bGxwdHIsIG1fY2Fub25pY2FsTGlzdC5n
ZXQoKSwgbV9saXN0QnVmZmVyU2l6ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NGQWxs
b2NhdG9yU3lzdGVtRGVmYXVsdCwga0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxpc3Rf
QXNzdXJlMTZCeXRlQWxpZ25tZW50LCAmYnVmZmVyKSkKKyAgICBpZiAobm9FcnIgPT0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNh
bXBsZUJ1ZmZlciwgbnVsbHB0ciwgbV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJT
aXplLCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0
LCBrQ01TYW1wbGVCdWZmZXJGbGFnX0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1l
bnQsICZidWZmZXIpKQogICAgICAgICBtX2Jsb2NrQnVmZmVyID0gYWRvcHRDRihidWZmZXIpOwog
CiAgICAgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcAppbmRleCAyZTk2MzBm
YjYwZjIyYjNlZTU2ZDI0MmQ3MzA0MzQ4NmI4N2I1NjJmLi5mODkxMDdmZmIxYzNmNTNiZTMxOWFh
Mzg2ODE0Nzc0YmI0ZDI3YTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwCkBAIC0z
MywxNSArMzMsNyBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pICYmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAKICNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvU29mdExpbmtp
bmcuaD4KLQotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTksoQXVk
aW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlv
Q29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2NyaXB0aW9uICpp
bkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBB
dWRpb0NvbXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29t
cG9uZW50LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlICpvdXRJbnN0YW5jZSksIChpbkNvbXBvbmVu
dCwgb3V0SW5zdGFuY2UpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0QWRkUHJv
cGVydHlMaXN0ZW5lciwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9w
ZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFByb3BlcnR5TGlzdGVuZXJQcm9jIGluUHJvYywgdm9pZCAq
aW5Qcm9jVXNlckRhdGEpLCAoaW5Vbml0LCBpbklELCBpblByb2MsIGluUHJvY1VzZXJEYXRhKSkK
LVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEdldFByb3BlcnR5LCBPU1N0YXR1cywg
KEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2Nv
cGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIHZvaWQgKm91dERhdGEsIFVJ
bnQzMiAqaW9EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGluU2NvcGUsIGluRWxlbWVudCwgb3V0
RGF0YSwgaW9EYXRhU2l6ZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0
aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVuaXQpLCAoaW5Vbml0KSkKLVNPRlRfTElO
SyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0U2NvcGUgaW5TY29w
ZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQgKmluRGF0YSwgVUludDMy
IGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIGluRGF0YSwg
aW5EYXRhU2l6ZSkpCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsMTUgKzUwLDE1IEBAIHZvaWQgQXVkaW9PdXRw
dXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWdu
ZWQgbnVtYmVyCiAgICAgZGVzYy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFu
dWZhY3R1cmVyX0FwcGxlOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2Mu
Y29tcG9uZW50RmxhZ3NNYXNrID0gMDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4
dCgwLCAmZGVzYyk7CisgICAgY29tcCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAm
ZGVzYyk7CiAKICAgICBBU1NFUlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRp
b0NvbXBvbmVudEluc3RhbmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVz
IHJlc3VsdCA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRV
bml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBVSW50MzIgZmxhZyA9IDE7Ci0gICAg
cmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LAorICAgIHJlc3VsdCA9
IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LAogICAgICAgICBrQXVkaW9P
dXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sCiAgICAgICAgIGtBdWRpb1VuaXRTY29wZV9PdXRw
dXQsCiAgICAgICAgIDAsCkBAIC03NCwyMCArNjYsMjAgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRB
ZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1i
ZXIKICAgICAgICAgc2l6ZW9mKGZsYWcpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICBy
ZXN1bHQgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0g
UEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1
bHQpOwogICAgIC8vIFNldCByZW5kZXIgY2FsbGJhY2sKICAgICBBVVJlbmRlckNhbGxiYWNrU3Ry
dWN0IGlucHV0OwogICAgIGlucHV0LmlucHV0UHJvYyA9IGlucHV0UHJvYzsKICAgICBpbnB1dC5p
bnB1dFByb2NSZWZDb24gPSB0aGlzOwotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5
KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVk
aW9Vbml0U2NvcGVfSW5wdXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0
ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9w
ZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmaW5wdXQs
IHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCBzdHJl
YW0gZm9ybWF0CiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbUZvcm1hdDsK
IAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbik7
Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9p
ZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0R2V0
UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBr
QXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwgJnNpemUpOwog
ICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIGNvbnN0ZXhwciBpbnQgYnl0ZXNQZXJGbG9hdCA9
IHNpemVvZihGbG9hdDMyKTsKQEAgLTEwMSw3ICs5Myw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0
QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVt
YmVyCiAgICAgc3RyZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRD
aGFubmVsczsKICAgICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUg
KiBieXRlc1BlckZsb2F0OwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9v
dXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRT
Y29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtQcmVmZXJyZWRCdWZm
ZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcAppbmRleCBjOGVkM2VmNzhjOGM2
YTNiMWUwNzBjYjQ0MDU5NjlhZGE0YWMzZGEyLi43MTRjY2U4ODYyNTc1MTg2MWQ1ZTJiODUxMzEz
YTg5ZDA0MTJlYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9BdWRp
b0hhcmR3YXJlLmg+CisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDgsMjEgKzQ5LDIxIEBAIHZvaWQgQXVkaW9PdXRw
dXRVbml0QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWdu
ZWQgbnVtYmVyCiAgICAgZGVzYy5jb21wb25lbnRNYW51ZmFjdHVyZXIgPSBrQXVkaW9Vbml0TWFu
dWZhY3R1cmVyX0FwcGxlOwogICAgIGRlc2MuY29tcG9uZW50RmxhZ3MgPSAwOwogICAgIGRlc2Mu
Y29tcG9uZW50RmxhZ3NNYXNrID0gMDsKLSAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4
dCgwLCAmZGVzYyk7CisgICAgY29tcCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dCgwLCAm
ZGVzYyk7CiAKICAgICBBU1NFUlQoY29tcCk7CiAKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRp
b0NvbXBvbmVudEluc3RhbmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOworICAgIE9TU3RhdHVz
IHJlc3VsdCA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRV
bml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRJbml0
aWFsaXplKG1fb3V0cHV0VW5pdCk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRJbml0aWFs
aXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgLy8gU2V0IHJl
bmRlciBjYWxsYmFjawogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5w
dXQuaW5wdXRQcm9jID0gaW5wdXRQcm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRo
aXM7Ci0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVk
aW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWws
IDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxs
YmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsK
ICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdApAQCAtNzks
NyArODAsNyBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBo
YXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIHN0cmVhbUZvcm1hdC5tQ2hh
bm5lbHNQZXJGcmFtZSA9IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAgICAgc3RyZWFtRm9ybWF0
Lm1CaXRzUGVyQ2hhbm5lbCA9IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJGbG9hdDsKIAotICAgIHJl
c3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVh
bUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOworICAgIHJlc3Vs
dCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJv
cGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICh2b2lkKikmc3Ry
ZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CiAgICAgQVNT
RVJUKCFyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9NZWRpYVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9N
ZWRpYVV0aWxpdGllcy5jcHAKaW5kZXggYTUzMzMyY2Y3ZGJkNjQ2NmY0NGY1NzZkMWNkN2FkZTc2
MTUwYWE0Zi4uNzg0NzRkOGU1YTVhYzA3MDM1MzM1OTkwY2RkZjhhZmNkODA1NjE5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAt
MzMsMTMgKzMzLDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKLQogUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llKQogewogICAg
IGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlv
bik7CiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1
dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVTaXplLCBtYWdp
Y0Nvb2tpZSwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3Jp
cHRpb24sIDAsIG51bGxwdHIsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51bGxwdHIs
ICZmb3JtYXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtNTUsMTQgKzUzLDE0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRh
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
QnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNy
ZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwg
ZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUs
IG51bGxwdHIsICZzYW1wbGVCdWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9T
YW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBs
ZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsK
ICAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBk
ZXNjcmlwdGlvbnMgZmFpbGVkIC0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKIAotICAg
IGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChi
dWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAs
IGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBlcnJvciA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZm
ZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRv
d25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKICAgICBpZiAoZXJyb3Ip
IHsKICAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlv
IGJ1ZmZlciBsaXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmNwcAppbmRleCA1N2NmMjlkMGQ3N2U2Nzg4OWJkY2VmZDQwNTg1MTI5ZWQxMmE0
NTU1Li42NGUzMGJjMjkzY2E4ZjkzODg0ODhmMTQ4ODUwNmM1N2JlMGE1MTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUu
Y3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGlu
ZSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9T
dXJmYWNlKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCiB7CkBAIC05MCw3ICs4OSw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNy
ZWF0ZShNZWRpYVNhbXBsZSYgc2FtcGxlCiB7CiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNh
bXBsZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7CiAKLSAg
ICBhdXRvIGltYWdlQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUu
cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgIGF1dG8gaW1hZ2VC
dWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3Jt
U2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1wbGU6OmNy
ZWF0ZTogQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlciByZXR1cm5lZCBudWxscHRyIik7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLm1tCmluZGV4IDk4MzliMzcwYTcxM2I3YzFkMjNkODQ3ZmE4NjUwNWQ1
YWU5NzlhYjIuLmRmZjRmYTRlZGYyNjRiNDUyYmY4ZGE3YWZhZWY0Y2JkN2EwMjdiMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTQ2
LDIyICs0NiwxMyBAQAogI2ltcG9ydCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjZW5kaWYK
IAorI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKE1lZGlhVG9vbGJveCkKLVNPRlRfTElO
S19GUkFNRVdPUksoQXVkaW9Ub29sYm94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRp
b0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVy
UmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVk
aW9CdWZmZXJMaXN0KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRh
KSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0
T3V0cHV0RGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywg
T1NTdGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9y
bWF0LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3Jt
YXQsIEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1h
dCwgaW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQotCi1TT0ZUX0xJTkso
TWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRB
dWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKSwgKHRhcCkpCi1TT0ZUX0xJTksoTWVkaWFUb29sYm94
LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Q
cm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZl
ckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NP
dXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNP
dXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVS
YW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKLVNPRlRfTElOS19NQVlfRkFJTChNZWRpYVRvb2xi
b3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgY29uc3QgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MgKmNhbGxiYWNr
cywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcFJlZiAqdGFwT3V0KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0
KSkKKyNpbXBvcnQgPHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiBzdGF0aWMgY29uc3QgZG91Ymxl
IGtSaW5nQnVmZmVyRHVyYXRpb24gPSAxOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6VGFwU3RvcmFnZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6VGFwU3RvcmFnZT4gewpAQCAtNzMsNyArNjQsNyBAQCBwdWJsaWM6
CiAKIFJlZlB0cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OmNyZWF0ZShBVlBsYXllckl0ZW0gKml0ZW0pCiB7Ci0gICAgaWYgKCFjYW5Mb2Fk
TVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoKSkKKyAgICBpZiAoIVBBTDo6Y2FuTG9hZF9NZWRp
YVRvb2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMoaXRlbSkpOwogfQpAQCAtMTUyLDcgKzE0Myw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9j
CiAgICAgbV9yZWFkQ291bnQgKz0gZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVy
dGVyKQotICAgICAgICBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVy
dGVyLmdldCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsK
KyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVy
dGVyLmdldCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsK
IH0KIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291
cmNlUHJvdmlkZXJDbGllbnQqIGNsaWVudCkKQEAgLTIyNSw3ICsyMTYsNyBAQCB2b2lkIEF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGVNaXhJZk5lZWRlZCgpCiAgICAgfTsKIAogICAg
IE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCA9IG51bGxwdHI7Ci0gICAgT1NTdGF0dXMgc3Rh
dHVzID0gTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNh
bGxiYWNrcywgMSwgJnRhcCk7CisgICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFw
KTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIGlmICh0YXApCiAgICAgICAg
ICAgICBDRlJlbGVhc2UodGFwKTsKQEAgLTI1OCwxNCArMjQ5LDE0IEBAIHZvaWQgQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OmluaXRDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0
YXAsIHZvaWQqCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpmaW5hbGl6ZUNhbGxi
YWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAg
ICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVk
aW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9y
YWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBH
ZXRTdG9yYWdlKHRhcCkpOwogICAgIHRhcFN0b3JhZ2UtPmRlcmVmKCk7CiB9CiAKIHZvaWQgQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG1heEZyYW1lcywgY29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uICpwcm9jZXNzaW5nRm9ybWF0KQogewogICAgIEFTU0VSVCh0YXApOwotICAg
IFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRp
b1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3Jh
Z2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdl
dFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFnZS0+bG9jayB9
OwogCkBAIC0yNzYsNyArMjY3LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ00KIHZvaWQgQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNz
aW5nVGFwUmVmIHRhcCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdlKiB0YXBT
dG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0
U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8
VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOwog
CiAgICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjg3LDcgKzI3
OCw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNhbGxiYWNr
KE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2Nlc3NDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRl
bUNvdW50IG51bWJlckZyYW1lcywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyBmbGFncywgQXVk
aW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNP
dXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0KQogewogICAgIEFTU0VSVCh0
YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdl
Kj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2Uq
IHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vz
c2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFn
ZS0+bG9jayB9OwogCkBAIC0zMTcsNyArMzA4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6cHJlcGFyZShDTUl0ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEK
IAogICAgIGlmICgqbV90YXBEZXNjcmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewog
ICAgICAgICBBdWRpb0NvbnZlcnRlclJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAg
ICBBdWRpb0NvbnZlcnRlck5ldyhtX3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2Ny
aXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRl
ck5ldyhtX3RhcERlc2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAm
b3V0Q29udmVydGVyKTsKICAgICAgICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAg
fQogCkBAIC0zNTcsNyArMzQ4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cHJvY2VzcyhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW4KICAgICAKICAg
ICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwogICAgIENNVGltZVJhbmdlIHJhbmdlT3V0Owot
ICAgIE9TU3RhdHVzIHN0YXR1cyA9IE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8o
dGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgJnJhbmdlT3V0
LCAmaXRlbUNvdW50KTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNz
aW5nVGFwR2V0U291cmNlQXVkaW8odGFwLCBudW1iZXJPZkZyYW1lcywgYnVmZmVyTGlzdEluT3V0
LCBmbGFnc091dCwgJnJhbmdlT3V0LCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzICE9IG5v
RXJyIHx8ICFpdGVtQ291bnQpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KaW5kZXggMzA1YjNkMjdlMzQyZjk4NzIxMTJmMTE3NGMxNGZmNGYzYzYwODU1ZC4uNTMyOWYx
ZDlkM2FlYTdjNTRkMzM2NmMzMmFkMWE2MDM4YTc5ZWIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCkBAIC0yMzIsNyArMjMyLDYgQEAgc3RydWN0IExvZ0FyZ3VtZW50PEFWUGxheWVyVGltZUNv
bnRyb2xTdGF0dXM+IHsKIH07IC8vIG5hbWVzcGFjZSBXVEYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIE5TQXJyYXkgKmFzc2V0TWV0YWRhdGFL
ZXlOYW1lcygpOwogc3RhdGljIE5TQXJyYXkgKml0ZW1LVk9Qcm9wZXJ0aWVzKCk7CkBAIC01NzIs
NyArNTcxLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVh
dGVDb250ZXh0VmlkZW9SZW5kZXJlcigpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKQogewotICAgIHVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiAKICAgICBpZiAoIW1fYXZBc3Nl
dCB8fCBtX2ltYWdlR2VuZXJhdG9yKQpAQCAtNTgyLDggKzU4MCw4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlSW1hZ2VHZW5lcmF0b3IoKQogCiAgICAg
W21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBlcnR1cmVNb2RlOkFWQXNzZXRJbWFnZUdlbmVy
YXRvckFwZXJ0dXJlTW9kZUNsZWFuQXBlcnR1cmVdOwogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdl
dCgpIHNldEFwcGxpZXNQcmVmZXJyZWRUcmFja1RyYW5zZm9ybTpZRVNdOwotICAgIFttX2ltYWdl
R2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZvcmU6a0NNVGltZVpl
cm9dOwotICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVUb2xlcmFu
Y2VBZnRlcjprQ01UaW1lWmVyb107CisgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVx
dWVzdGVkVGltZVRvbGVyYW5jZUJlZm9yZTpQQUw6OmtDTVRpbWVaZXJvXTsKKyAgICBbbV9pbWFn
ZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6UEFMOjprQ01U
aW1lWmVyb107CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
ZGVzdHJveUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKQEAgLTY3MSw3ICs2NjksNyBAQCBNZWRpYVRp
bWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlKCkgY29u
c3QKICAgICBpZiAoIWRhdGUpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6OmludmFsaWRUaW1l
KCk7CiAKLSAgICBkb3VibGUgY3VycmVudFRpbWUgPSBDTVRpbWVHZXRTZWNvbmRzKFttX2F2UGxh
eWVySXRlbSBjdXJyZW50VGltZV0pICogMTAwMDsKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBQ
QUw6OkNNVGltZUdldFNlY29uZHMoW21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAw
OwogCiAgICAgLy8gUm91bmRpbmcgZHVlIHRvIHNlY29uZCBvZmZzZXQgZXJyb3Igd2hlbiBzdWJ0
cmFjdGluZy4KICAgICByZXR1cm4gTWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKHJvdW5kKGRh
dGUgLSBjdXJyZW50VGltZSkpOwpAQCAtMTA4OSw3ICsxMDg3LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigpCiAKICAgICBBU1NFUlQo
IW1fY3VycmVudFRpbWVPYnNlcnZlcik7CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKTsKLSAgICBtX2N1cnJlbnRUaW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRQZXJp
b2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vha1RoaXNdIChDTVRpbWUgdGltZSkg
eworICAgIG1fY3VycmVudFRpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZFBlcmlvZGljVGlt
ZU9ic2VydmVyRm9ySW50ZXJ2YWw6UEFMOjpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRpbWUpIHsK
ICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPmN1cnJlbnRNZWRp
YVRpbWVEaWRDaGFuZ2UoUEFMOjp0b01lZGlhVGltZSh0aW1lKSk7CiAgICAgfV07CkBAIC0xNDIz
LDcgKzE0MjEsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onpl
cm9UaW1lKCk7CiAKICAgICBpZiAoIW1fd2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGltZSkKLSAg
ICAgICAgY3VycmVudE1lZGlhVGltZURpZENoYW5nZSh0b01lZGlhVGltZShbbV9hdlBsYXllckl0
ZW0uZ2V0KCkgY3VycmVudFRpbWVdKSk7CisgICAgICAgIGN1cnJlbnRNZWRpYVRpbWVEaWRDaGFu
Z2UoUEFMOjp0b01lZGlhVGltZShbbV9hdlBsYXllckl0ZW0uZ2V0KCkgY3VycmVudFRpbWVdKSk7
CiAgICAgQVNTRVJUKG1fd2FsbENsb2NrQXRDYWNoZWRDdXJyZW50VGltZSk7CiAKICAgICBhdXRv
IGl0ZW1UaW1lID0gbV9jYWNoZWRDdXJyZW50TWVkaWFUaW1lOwpAQCAtMTQ2OCw4ICsxNDY2LDgg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZWVrVG9UaW1lKGNv
bnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QKICAgICBDTVRpbWUgY21BZnRlciA9IFBBTDo6dG9D
TVRpbWUocG9zaXRpdmVUb2xlcmFuY2UpOwogCiAgICAgLy8gW0FWUGxheWVySXRlbSBzZWVrVG9U
aW1lXSB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0b2xlcmFuY2VCZWZvcmUgaXMgbmVnYXRp
dmUuCi0gICAgaWYgKENNVGltZUNvbXBhcmUoY21CZWZvcmUsIGtDTVRpbWVaZXJvKSA8IDApCi0g
ICAgICAgIGNtQmVmb3JlID0ga0NNVGltZVplcm87CisgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFy
ZShjbUJlZm9yZSwgUEFMOjprQ01UaW1lWmVybykgPCAwKQorICAgICAgICBjbUJlZm9yZSA9IFBB
TDo6a0NNVGltZVplcm87CiAgICAgCiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKTsKIApAQCAtMTU4Niw2ICsxNTg0LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpzZXRQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0oTWVkaWFQbGF5ZXIKIAog
c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMoKSBjb25zdAogeworICAg
IHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAg
IGF1dG8gdGltZVJhbmdlcyA9IG1ha2VVbmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwogCiAg
ICAgaWYgKCFtX2F2UGxheWVySXRlbSkKQEAgLTE1OTQsMTMgKzE1OTQsMTUgQEAgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm0KICAgICBmb3IgKE5TVmFsdWUgKnRoaXNSYW5nZVZhbHVlIGluIG1fY2Fj
aGVkTG9hZGVkUmFuZ2VzLmdldCgpKSB7CiAgICAgICAgIENNVGltZVJhbmdlIHRpbWVSYW5nZSA9
IFt0aGlzUmFuZ2VWYWx1ZSBDTVRpbWVSYW5nZVZhbHVlXTsKICAgICAgICAgaWYgKENNVElNRVJB
TkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgJiYgIUNNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5n
ZSkpCi0gICAgICAgICAgICB0aW1lUmFuZ2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFu
Z2Uuc3RhcnQpLCBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkp
KTsKKyAgICAgICAgICAgIHRpbWVSYW5nZXMtPmFkZChQQUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5n
ZS5zdGFydCksIFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFu
Z2UpKSk7CiAgICAgfQogICAgIHJldHVybiB0aW1lUmFuZ2VzOwogfQogCiBNZWRpYVRpbWUgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUo
KSBjb25zdAogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9J
U19FTVBUWS4KKwogICAgIGlmICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyB8fCAhW21fY2FjaGVk
U2Vla2FibGVSYW5nZXMgY291bnRdKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGlt
ZSgpOwogCkBAIC0xNjIxLDYgKzE2MjMsOCBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUoKSBjb25zdAogCiBNZWRp
YVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1l
U2Vla2FibGUoKSBjb25zdAogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJ
TUVSQU5HRV9JU19FTVBUWS4KKwogICAgIGlmICghbV9jYWNoZWRTZWVrYWJsZVJhbmdlcykKICAg
ICAgICAgbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyA9IFttX2F2UGxheWVySXRlbSBzZWVrYWJsZVRp
bWVSYW5nZXNdOwogCkBAIC0xNjMzLDcgKzE2MzcsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBjb25zdAog
ICAgICAgICBpZiAoIUNNVElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFO
R0VfSVNfRU1QVFkodGltZVJhbmdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAK
LSAgICAgICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJh
bmdlR2V0RW5kKHRpbWVSYW5nZSkpOworICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBB
TDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAg
ICAgaWYgKG1heFRpbWVTZWVrYWJsZSA8IGVuZE9mUmFuZ2UpCiAgICAgICAgICAgICBtYXhUaW1l
U2Vla2FibGUgPSBlbmRPZlJhbmdlOwogICAgIH0KQEAgLTE2NDIsNiArMTY0Niw4IEBAIE1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVT
ZWVrYWJsZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogeworICAgIHVzaW5nIG5hbWVz
cGFjZSBQQUw7IC8vIEZvciBDTVRJTUVSQU5HRV9JU19FTVBUWS4KKwogICAgIGlmICghbV9jYWNo
ZWRMb2FkZWRSYW5nZXMpCiAgICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAK
QEAgLTE2NTEsNyArMTY1Nyw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgICAgICBpZiAoIUNN
VElNRVJBTkdFX0lTX1ZBTElEKHRpbWVSYW5nZSkgfHwgQ01USU1FUkFOR0VfSVNfRU1QVFkodGlt
ZVJhbmdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgTWVkaWFU
aW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZVJhbmdlR2V0RW5kKHRpbWVS
YW5nZSkpOworICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKICAgICAgICAgaWYgKG1heFRpbWVM
b2FkZWQgPCBlbmRPZlJhbmdlKQogICAgICAgICAgICAgbWF4VGltZUxvYWRlZCA9IGVuZE9mUmFu
Z2U7CiAgICAgfQpAQCAtMTgwMyw3ICsxODA5LDcgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmUK
ICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBb
bV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRNYXhpbXVtU2l6ZTpDR1NpemUocmVjdC5zaXplKCkp
XTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3SW1hZ2UgPSBhZG9wdENGKFttX2ltYWdl
R2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1lOkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0
aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOworICAgIFJldGFpblB0cjxDR0lt
YWdlUmVmPiByYXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNH
SW1hZ2VBdFRpbWU6UEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBhY3R1YWxU
aW1lOm5pbCBlcnJvcjpuaWxdKTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBh
ZG9wdENGKENHSW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3SW1hZ2UuZ2V0KCksIHNS
R0JDb2xvclNwYWNlUmVmKCkpKTsKIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjcmVh
dGluZyBpbWFnZSB0b29rICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0KS5zZWNvbmRz
KCkpOwpAQCAtMTk4OSw3ICsxOTk1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpkaWRTdG9wTG9hZGluZ1JlcXVlc3QoQVZBc3NldFJlc291cmNlTG8KIAogYm9v
bCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjppc0F2YWlsYWJsZSgpCiB7Ci0g
ICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBpc0Nv
cmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOworICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0
aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWls
YWJsZSgpOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6bWVkaWFUaW1lRm9yVGltZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVZhbHVlKSBjb25z
dApAQCAtMjkwMSw3ICsyOTA3LDcgQEAgc3RhdGljIE5TU3RyaW5nICpleGVybmFsRGV2aWNlRGlz
cGxheU5hbWVGb3JQbGF5ZXIoQVZQbGF5ZXIgKnBsYXllcikKICAgICBpZiAoIVBBTDo6aXNBVkZv
dW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAg
IGlmIChhdXRvIGNvbnRleHQgPSBPdXRwdXRDb250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRhdGlv
bk91dHB1dENvbnRleHQoKSkKKyAgICBpZiAoYXV0byBjb250ZXh0ID0gUEFMOjpPdXRwdXRDb250
ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQoKSkKICAgICAgICAgcmV0
dXJuIGNvbnRleHQtPmRldmljZU5hbWUoKTsKIAogICAgIGlmIChwbGF5ZXIuZXh0ZXJuYWxQbGF5
YmFja1R5cGUgIT0gQVZQbGF5ZXJFeHRlcm5hbFBsYXliYWNrVHlwZUFpclBsYXkpCkBAIC0zMjM1
LDkgKzMyNDEsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1l
dGFkYXRhR3JvdXBEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPAogICAgICAgICBmb3IgKEFWTWV0
YWRhdGFJdGVtICppdGVtIGluIGdyb3VwLml0ZW1zKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8
QVZNdXRhYmxlTWV0YWRhdGFJdGVtPiBpdGVtQ29weSA9IGFkb3B0TlMoW2l0ZW0gbXV0YWJsZUNv
cHldKTsKICAgICAgICAgICAgIGlmICghQ01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgpLnRp
bWUpKQotICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLnRpbWUgPSBDTVRpbWVNYWtlV2l0
aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUsIE1lZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7Cisg
ICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkudGltZSA9IFBBTDo6Q01UaW1lTWFrZVdpdGhT
ZWNvbmRzKGdyb3VwU3RhcnRUaW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOwogICAg
ICAgICAgICAgaWYgKCFDTVRJTUVfSVNfVkFMSUQoaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24pKQot
ICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gdG9DTVRpbWUoZ3JvdXBE
dXJhdGlvbik7CisgICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCkuZHVyYXRpb24gPSBQQUw6
OnRvQ01UaW1lKGdyb3VwRHVyYXRpb24pOwogICAgICAgICAgICAgW2dyb3VwQ29weSBhZGRPYmpl
Y3Q6aXRlbUNvcHkuZ2V0KCldOwogICAgICAgICB9CiAKQEAgLTMyNzksNyArMzI4NSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUo
Y29uc3QgUmV0YWluUHRyPE5TQXJyCiAKICAgICAgICAgTWVkaWFUaW1lIGVuZCA9IE1lZGlhVGlt
ZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGl0ZW0u
ZHVyYXRpb247Ci0gICAgICAgIGlmIChDTVRJTUVfSVNfVkFMSUQoZHVyYXRpb24pICYmIENNVGlt
ZUdldFNlY29uZHMoZHVyYXRpb24pID4gMC4wMDEpCisgICAgICAgIGlmIChDTVRJTUVfSVNfVkFM
SUQoZHVyYXRpb24pICYmIFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkK
ICAgICAgICAgICAgIGVuZCA9IHN0YXJ0ICsgUEFMOjp0b01lZGlhVGltZShkdXJhdGlvbik7CiAK
ICAgICAgICAgQXRvbVN0cmluZyB0eXBlID0gbnVsbEF0b20oKTsKQEAgLTM0NTgsNyArMzQ2NCw3
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRhc2tB
dE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPHZvCiAgICAgaWYgKG1fdGltZU9ic2VydmVyKQogICAg
ICAgICBbbV9hdlBsYXllciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV90aW1lT2JzZXJ2ZXIuZ2V0KCld
OwogCi0gICAgbV90aW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNl
cnZlckZvclRpbWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUpXV0g
cXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CisgICAgbV90aW1l
T2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBb
W05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0luKCk7CiAg
ICAgfV07CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXgg
NWE2OWFhNjc5NTE4OWNiNGUwNzZkMzE5NDY5Zjk5NjUwNGZmOTQ2Yy4uNzNhZGViOWJiNzNhNzgy
OGRmNWEzZjQ4NGM1ZjkwZTMzM2QyNDFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtNjYsNyArNjYsNiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5
QXRVUkw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRv
U3RyaW5nKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6U2Vla1N0YXRlIGVu
dW1lcmF0aW9uVmFsdWUpCiB7CkBAIC0xMTYsMTUgKzExNSwxNSBAQCBzdGF0aWMgdm9pZCBDTVRp
bWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJl
ZiwgY29ucwogCiB2b2lkIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3AoQ01UaW1l
YmFzZVJlZiB0aW1lYmFzZSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IENN
Tm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7Ci0gICAgQ01Ob3RpZmlj
YXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJh
dGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVD
aGFuZ2VkLCB0aW1lYmFzZSk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBQQUw6
OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7CisgICAgUEFMOjpD
TU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZm
ZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9F
ZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UpOwogfQogCiBFZmZlY3RpdmVSYXRlQ2hhbmdl
ZExpc3RlbmVyOjpFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyKE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQyYgY2xpZW50LCBDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAg
IDogbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKIHsKLSAgICBDTU5vdGlmaWNhdGlvbkNl
bnRlclJlZiBuYyA9IENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCk7
Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFz
ZUVmZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0Vm
ZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSwgMCk7CisgICAgQ01Ob3RpZmljYXRpb25DZW50
ZXJSZWYgbmMgPSBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVy
KCk7CisgICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKG5jLCB0aGlzLCBD
TVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywgUEFMOjprQ01UaW1lYmFzZU5v
dGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGltZWJhc2UsIDApOwogfQogCiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMTU3LDcgKzE1Niw3IEBAIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDKE1lZGlhCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hy
b25pemVyIGZpcmVkIGZvciAiLCB0b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1f
c2Vla2luZywgIiwgcGVuZGluZyA9ICIsICEhbV9wZW5kaW5nU2Vlayk7CisgICAgICAgIERFQlVH
X0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInN5bmNocm9uaXplciBmaXJlZCBmb3IgIiwgUEFMOjp0
b01lZGlhVGltZSh0aW1lKSwgIiwgc2Vla2luZyA9ICIsIG1fc2Vla2luZywgIiwgcGVuZGluZyA9
ICIsICEhbV9wZW5kaW5nU2Vlayk7CiAKICAgICAgICAgaWYgKG1fc2Vla2luZyAmJiAhbV9wZW5k
aW5nU2VlaykgewogICAgICAgICAgICAgbV9zZWVraW5nID0gZmFsc2U7CkBAIC0yMzgsMTEgKzIz
NywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKICAgICByZXR1cm4gUEFMOjppc0FW
Rm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJh
bWV3b3JrQXZhaWxhYmxlKCkKLSAgICAgICAgJiYgZ2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3Mo
KQotICAgICAgICAmJiBnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpCi0gICAg
ICAgICYmIGdldEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKQotICAgICAg
ICAmJiBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVy
ZXJDbGFzcygpLCBAc2VsZWN0b3Ioc2V0TXV0ZWQ6KSk7CisgICAgICAgICYmIFBBTDo6aXNDb3Jl
TWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQorICAgICAgICAmJiBQQUw6OmdldEFWU3RyZWFtRGF0
YVBhcnNlckNsYXNzKCkKKyAgICAgICAgJiYgUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXJDbGFzcygpCisgICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5j
aHJvbml6ZXJDbGFzcygpCisgICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFBBTDo6
Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwgQHNlbGVjdG9yKHNldE11dGVk
OikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0
U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4m
IHR5cGVzKQpAQCAtNDE3LDcgKzQxNiw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OmR1cmF0aW9uTWVkaWFUaW1lKCkgY29uc3QKIAogTWVkaWFUaW1l
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSgp
IGNvbnN0CiB7Ci0gICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFU
aW1lKENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBN
ZWRpYVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVi
YXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgaWYgKHN5bmNocm9u
aXplclRpbWUgPCBNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVRp
bWU6Onplcm9UaW1lKCk7CiAgICAgaWYgKHN5bmNocm9uaXplclRpbWUgPCBtX2xhc3RTZWVrVGlt
ZSkKQEAgLTQzMCw3ICs0MjksNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6c2V0Q3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayhNZWRpYQogICAgIG1fY3Vy
cmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAgICAgaWYg
KG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFjaykgewotICAgICAgICBtX3RpbWVDaGFuZ2Vk
T2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRl
cnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVz
aW5nQmxvY2s6XihDTVRpbWUgdGltZSkgeworICAgICAgICBtX3RpbWVDaGFuZ2VkT2JzZXJ2ZXIg
PSBbbV9zeW5jaHJvbml6ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6
OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdC
bG9jazpeKENNVGltZSB0aW1lKSB7CiAgICAgICAgICAgICBpZiAobV9jdXJyZW50VGltZURpZENo
YW5nZUNhbGxiYWNrKQogICAgICAgICAgICAgICAgIG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxs
YmFjayhDTVRJTUVfSVNfTlVNRVJJQyh0aW1lKSA/IFBBTDo6dG9NZWRpYVRpbWUodGltZSkgOiBN
ZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogICAgICAgICB9XTsKQEAgLTQ4Miw3ICs0ODEsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFsKCkK
ICAgICBpZiAobV9sYXN0U2Vla1RpbWUuaGFzRG91YmxlVmFsdWUoKSkKICAgICAgICAgbV9sYXN0
U2Vla1RpbWUgPSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUobV9sYXN0U2Vla1RpbWUudG9E
b3VibGUoKSwgTWVkaWFUaW1lOjpEZWZhdWx0VGltZVNjYWxlKTsKIAotICAgIE1lZGlhVGltZSBz
eW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShbbV9z
eW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CisgICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUg
PSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVy
IHRpbWViYXNlXSkpOwogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJzZWVrVGltZSA9ICIs
IG1fbGFzdFNlZWtUaW1lLCAiLCBzeW5jaHJvbml6ZXJUaW1lID0gIiwgc3luY2hyb25pemVyVGlt
ZSk7CiAKICAgICBib29sIGRvZXNOb3RSZXF1aXJlU2VlayA9IHN5bmNocm9uaXplclRpbWUgPT0g
bV9sYXN0U2Vla1RpbWU7CkBAIC01OTksNyArNTk4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAgaWYgKG1f
dmlkZW9PdXRwdXQpIHsKICAgICAgICAgQ01UaW1lIG91dHB1dFRpbWU7CiAgICAgICAgIGlmIChh
dXRvIHBpeGVsQnVmZmVyID0gYWRvcHRDRihbbV92aWRlb091dHB1dCBjb3B5UGl4ZWxCdWZmZXJG
b3JTb3VyY2VUaW1lOnRvQ01UaW1lKGN1cnJlbnRNZWRpYVRpbWUoKSkgc291cmNlVGltZUZvckRp
c3BsYXk6Jm91dHB1dFRpbWVdKSkgewotICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklF
UiwgIm5ldyBwaXhlbGJ1ZmZlciBmb3VuZCBmb3IgdGltZSAiLCB0b01lZGlhVGltZShvdXRwdXRU
aW1lKSk7CisgICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVm
ZmVyIGZvdW5kIGZvciB0aW1lICIsIFBBTDo6dG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOwogICAg
ICAgICAgICAgbV9sYXN0UGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC04MDksNyArODA4LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigpCiAgICAg
aWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Q01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVyIHRp
bWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGlt
ZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3Zl
UmVuZGVyZXI6bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkgYXRUaW1lOmN1cnJlbnRU
aW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAg
ICB9XTsKQEAgLTEwMTgsNyArMTAxNyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpmbHVzaFBlbmRpbmdTaXplQ2hhbmdlcygpCiAjaWYgSEFWRShBVlNUUkVB
TVNFU1NJT04pCiBBVlN0cmVhbVNlc3Npb24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6c3RyZWFtU2Vzc2lvbigpCiB7Ci0gICAgaWYgKCFnZXRBVlN0cmVhbVNlc3Npb25D
bGFzcygpIHx8ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jlc3Bv
bmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkK
KyAgICBpZiAoIVBBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAhW1BBTDo6Z2V0QVZT
dHJlYW1TZXNzaW9uQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3Io
aW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgIHJldHVybiBuaWw7CiAK
ICAgICBpZiAoIW1fc3RyZWFtU2Vzc2lvbikgewpAQCAtMTIxNyw3ICsxMjE2LDcgQEAgQUxMT1df
TkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGltZSBj
dXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0p
OworICAgIENNVGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3lu
Y2hyb25pemVyIHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRlcmVy
OmF1ZGlvUmVuZGVyZXIgYXRUaW1lOmN1cnJlbnRUaW1lIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpe
KEJPT0wpewogICAgICAgICAvLyBOby1vcC4KICAgICB9XTsKQEAgLTEzMDEsNyArMTMwMCw3IEBA
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0
TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248CiAgICAgaWYgKG1fcGVyZm9ybVRhc2tPYnNlcnZlcikK
ICAgICAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVRpbWVPYnNlcnZlcjptX3BlcmZvcm1UYXNr
T2JzZXJ2ZXIuZ2V0KCldOwogCi0gICAgbV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3luY2hy
b25pemVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdp
dGhDTVRpbWU6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6XnsKKyAgICBtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6
ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENN
VGltZTpQQUw6OnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSB1c2luZ0Jsb2NrOl57CiAgICAgICAgIHRhc2tJbigpOwogICAgIH1dOwogICAgIHJldHVybiB0
cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGUxYWQxMDJiYjk4MWJmMzc0ZTZi
ZDkzN2MwYzZlMmE4N2Y0MGYxNWYuLjU1YjUwMGM1N2U5M2ViYmE0OTZhZTc0MTZmZDVkZjc4ZDdi
OTQ1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
ICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXIu
aCIKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiTWVkaWFT
dHJlYW1Qcml2YXRlLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCkBAIC0x
MjEsNyArMTIyLDYgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAq
KWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KIEBlbmQKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFn
bWEgbWFyayBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMKQEAgLTIxMCw3ICsy
MTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBpc0FWRm91
bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxh
YmxlKCkgJiYgZ2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpOworICAgIHJldHVy
biBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc0NvcmVN
ZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJDbGFzcygpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mIHR5cGVzKQpAQCAtMjMwLDcgKzIzMCw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1R5cGUo
Y29uCiBzdGF0aWMgaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3JtYXRpb25N
YXRyaXgoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGVCdWZmZXIgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXI7
Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxC
dWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7Cisg
ICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZm
ZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIpKTsK
ICAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwog
ICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsK
ICAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpCkBAIC05NjAsNyArOTYwLDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUN1cnJlbnRGcmFtZUltYWdl
KCkKICAgICBpZiAoIW1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1
ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRp
YVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBh
dXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5wbGF0
Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwogICAgIG1faW1hZ2VQYWludGVy
LmNnSW1hZ2UgPSBOYXRpdmVJbWFnZTo6Y3JlYXRlKG1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVy
Q29uZm9ybWVyLT5jcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXggMmY0
OTgzODc2NWQzYzk0NDFiNjliYjk1MThiM2IxZjlhODc5NTA5Yi4uYzBmMTNkNmVhNWM5NzU3Njdj
ZThmNjJhYjY4NDJkN2Q2ZjBmYmI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U2FtcGxlQVZGT2JqQy5tbQpAQCAtMzYsOSArMzYsMTIgQEAKICNpbXBvcnQgIkNvcmVWaWRlb1Nv
ZnRMaW5rLmgiCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKLQotV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZl
cik7CisvLyBFcXVpdmFsZW50IHRvIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVC
dWZmZXIpOworLy8gTmVlZGVkIGR1ZSB0byByZXF1aXJlbWVudCBvZiBzcGVjaWZ5aW5nIHRoZSBQ
QUwgbmFtZXNwYWNlLgordGVtcGxhdGUgPD4KK3N0cnVjdCBXVEY6OkNGVHlwZVRyYWl0PENNU2Ft
cGxlQnVmZmVyUmVmPiB7CisgICAgc3RhdGljIGlubGluZSBDRlR5cGVJRCB0eXBlSUQodm9pZCkg
eyByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCgpOyB9Cit9OwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTY3LDM1ICs3MCwzNSBAQCBSZWZQdHI8TWVkaWFTYW1wbGVBVkZP
YmpDPiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFBpeGVsQnVmZmVyJiYg
cAogICAgIEFTU0VSVF9VTlVTRUQoc3RhdHVzLCAhc3RhdHVzKTsKIAogICAgIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvblJhdyA9IG51bGxwdHI7Ci0gICAgc3Rh
dHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uUmF3
KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvcklt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksICZmb3Jt
YXREZXNjcmlwdGlvblJhdyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1dG8gZm9ybWF0
RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0aW9uUmF3KTsKIAotICAgIENNU2Ft
cGxlVGltaW5nSW5mbyBzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiA9IHsga0NNVGltZUludmFsaWQs
IGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52YWxpZCB9OworICAgIENNU2FtcGxlVGltaW5nSW5m
byBzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjpr
Q01UaW1lSW52YWxpZCwgUEFMOjprQ01UaW1lSW52YWxpZCB9OwogICAgIENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlclJhdyA9IG51bGxwdHI7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVs
QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9y
bWF0aW9uLCAmc2FtcGxlQnVmZmVyUmF3KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhl
bEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZv
cm1hdGlvbiwgJnNhbXBsZUJ1ZmZlclJhdyk7CiAgICAgQVNTRVJUKCFzdGF0dXMpOwogICAgIGF1
dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXJSYXcpOwogCi0gICAgQ0ZBcnJh
eVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50
c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2ht
ZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXko
c2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50
ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsraSkgewog
ICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9j
YXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNo
bWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50
cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5U
cnVlKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NN
U2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsK
ICAgICB9CiAgICAgcmV0dXJuIGNyZWF0ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOwogfQogCiBNZWRp
YVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpwcmVzZW50YXRpb25UaW1lKCkgY29uc3QKIHsKLSAg
ICBhdXRvIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwog
ICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQotICAgICAgICB0aW1lU3RhbXAg
PSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7
CisgICAgICAgIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25U
aW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKHRp
bWVTdGFtcCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUo
KSBjb25zdAogewotICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVU
aW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOworICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKENN
VElNRV9JU19JTlZBTElEKHRpbWVTdGFtcCkpCiAgICAgICAgIHJldHVybiBwcmVzZW50YXRpb25U
aW1lKCk7CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUodGltZVN0YW1wKTsKQEAgLTEwMywx
NSArMTA2LDE1IEBAIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OmRlY29kZVRpbWUoKSBj
b25zdAogCiBNZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkdXJhdGlvbigpIGNvbnN0CiB7
Ci0gICAgYXV0byBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24obV9z
YW1wbGUuZ2V0KCkpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
T3V0cHV0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5WQUxJ
RChkdXJhdGlvbikpCi0gICAgICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlv
bihtX3NhbXBsZS5nZXQoKSk7CisgICAgICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGlt
ZShkdXJhdGlvbik7CiB9CiAKIHNpemVfdCBNZWRpYVNhbXBsZUFWRk9iakM6OnNpemVJbkJ5dGVz
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUo
bV9zYW1wbGUuZ2V0KCkpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VG90YWxT
YW1wbGVTaXplKG1fc2FtcGxlLmdldCgpKTsKIH0KIAogUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1w
bGVBVkZPYmpDOjpwbGF0Zm9ybVNhbXBsZSgpCkBAIC0xMjIsMjMgKzEyNSwyMyBAQCBQbGF0Zm9y
bVNhbXBsZSBNZWRpYVNhbXBsZUFWRk9iakM6OnBsYXRmb3JtU2FtcGxlKCkKIAogdWludDMyX3Qg
TWVkaWFTYW1wbGVBVkZPYmpDOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKIHsKLSAgICBhdXRv
IHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIg
PSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1h
Z2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBp
eGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVC
dWZmZXJBdHRhY2htZW50UmFuZG9tQWNjZXNzKENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGlj
dCkKIHsKLSAgICByZXR1cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0
LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMpOworICAgIHJldHVybiAhQ0ZEaWN0aW9u
YXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtl
eV9Ob3RTeW5jKTsKIH0KIAogc3RhdGljIGJvb2wgZG9lc0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJ
bmZvKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIHsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOworICAgIHJldHVybiBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNl
KTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGUpCiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBD
RkFycmF5UmVmIGF0dGFjaG1lbnRzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFj
aG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgCkBAIC0xNTEsMTIgKzE1NCwxMiBAQCBzdGF0aWMgYm9vbCBp
c0NNU2FtcGxlQnVmZmVyUmFuZG9tQWNjZXNzKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIAog
c3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKENGRGlj
dGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCkKIHsKLSAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29u
dGFpbnNLZXkoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNw
bGF5KTsKKyAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3Qs
IFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkpOwogfQogCiBzdGF0aWMg
Ym9vbCBpc0NNU2FtcGxlQnVmZmVyTm9uRGlzcGxheWluZyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGUpCiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFj
aG1lbnRzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2Ft
cGxlLCBmYWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIApAQCAtMTg2LDExICsxODksMTEgQEAgTWVkaWFTYW1wbGU6OlNhbXBsZUZsYWdzIE1l
ZGlhU2FtcGxlQVZGT2JqQzo6ZmxhZ3MoKSBjb25zdAogCiBGbG9hdFNpemUgTWVkaWFTYW1wbGVB
VkZPYmpDOjpwcmVzZW50YXRpb25TaXplKCkgY29uc3QKIHsKLSAgICBDTUZvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihtX3NhbXBsZS5nZXQoKSk7Ci0gICAgaWYgKENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRp
YVR5cGUoZm9ybWF0RGVzY3JpcHRpb24pICE9IGtDTU1lZGlhVHlwZV9WaWRlbykKKyAgICBDTUZv
cm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldEZvcm1hdERlc2NyaXB0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICBpZiAoUEFMOjpDTUZv
cm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKSAhPSBrQ01NZWRp
YVR5cGVfVmlkZW8pCiAgICAgICAgIHJldHVybiBGbG9hdFNpemUoKTsKICAgICAKLSAgICByZXR1
cm4gRmxvYXRTaXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVu
c2lvbnMoZm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICByZXR1cm4gRmxvYXRT
aXplKFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9u
cyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwogfQogCiB2b2lkIE1lZGlhU2FtcGxl
QVZGT2JqQzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdApAQCAtMjAxLDEyICsyMDQsMTIg
QEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
IHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFU
aW1lJiBvZmZzZXQpCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBpZiAo
bm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkobV9zYW1wbGUu
Z2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBu
dWxscHRyLCAmaXRlbUNvdW50KSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFZlY3RvcjxD
TVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXku
Z3JvdyhpdGVtQ291bnQpOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJy
YXkuZGF0YSgpLCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1p
bmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IGZvciAoYXV0byYgdGltaW5nIDogdGltaW5nSW5mb0FycmF5KSB7CkBAIC0yMTUsNyArMjE4LDcg
QEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRp
YVRpbWUmIG9mZnNldCkKICAgICB9CiAgICAgCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3U2Ft
cGxlOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGlt
aW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWlu
Z0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNN
U2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
bV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1Nh
bXBsZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBtX3NhbXBsZSA9IGFkb3B0Q0YobmV3
U2FtcGxlKTsKQEAgLTIyNCwxMiArMjI3LDEyIEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpv
ZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpCiB2b2lkIE1lZGlhU2Ft
cGxlQVZGT2JqQzo6c2V0VGltZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0
aW9uVGltZXN0YW1wLCBjb25zdCBXVEY6Ok1lZGlhVGltZSAmZGVjb2RlVGltZXN0YW1wKQogewog
ICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRy
LCAmaXRlbUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3Vu
dCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZv
PiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsK
LSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
bV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0
cikpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8mIHRpbWlu
ZyA6IHRpbWluZ0luZm9BcnJheSkgewpAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpzZXRUaW1lc3RhbXBzKGNvbnN0IFdURjo6TWVkaWFUaW1lICZwcmVzZW50YXRp
b25UaW1lc3RhCiAgICAgfQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsK
LSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZv
QXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2Ft
cGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUp
KQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBs
ZSk7CkBAIC0yNDYsMTAgKzI0OSwxMCBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0VGlt
ZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQogCiBib29s
IE1lZGlhU2FtcGxlQVZGT2JqQzo6aXNEaXZpc2FibGUoKSBjb25zdAogewotICAgIGlmIChDTVNh
bXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpID09IDEpCisgICAgaWYgKFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAxKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXpl
QXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxwdHIpID09IGtDTVNhbXBsZUJ1
ZmZlckVycm9yX0J1ZmZlckhhc05vU2FtcGxlU2l6ZXMpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVTaXplQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsIG51bGxw
dHIpID09IGtDTVNhbXBsZUJ1ZmZlckVycm9yX0J1ZmZlckhhc05vU2FtcGxlU2l6ZXMpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtMjYyLDE3ICsyNjUsMTcg
QEAgc3RkOjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1l
ZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlKGMKIAogICAgIENGSW5kZXggc2FtcGxlc0JlZm9yZVBy
ZXNlbnRhdGlvblRpbWUgPSAwOwogCi0gICAgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNo
U2FtcGxlKG1fc2FtcGxlLmdldCgpLCBbJl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
ciwgQ01JdGVtQ291bnQpIC0+IE9TU3RhdHVzIHsKLSAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBD
TVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIp
OworICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlKG1fc2FtcGxl
LmdldCgpLCBbJl0gKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQp
IC0+IE9TU3RhdHVzIHsKKyAgICAgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CiAgICAgICAg
IGlmIChDTVRJTUVfSVNfSU5WQUxJRCh0aW1lU3RhbXApKQotICAgICAgICAgICAgdGltZVN0YW1w
ID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsK
KyAgICAgICAgICAgIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRp
b25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKIAogICAgICAgICBpZiAodXNlRW5kVGltZSA9PSBV
c2VFbmRUaW1lOjpVc2UpIHsKLSAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1
ZmZlckdldE91dHB1dER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGR1
cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKHNhbXBsZUJ1ZmZl
cik7CiAgICAgICAgICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24pKQotICAgICAg
ICAgICAgICAgIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGVCdWZm
ZXIpOworICAgICAgICAgICAgICAgIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1
cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CiAKLSAgICAgICAgICAgIGlmIChQQUw6OnRvTWVkaWFUaW1l
KENNVGltZUFkZCh0aW1lU3RhbXAsIGR1cmF0aW9uKSkgPiBwcmVzZW50YXRpb25UaW1lKQorICAg
ICAgICAgICAgaWYgKFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVBZGQodGltZVN0YW1wLCBk
dXJhdGlvbikpID4gcHJlc2VudGF0aW9uVGltZSkKICAgICAgICAgICAgICAgICByZXR1cm4gMTsK
ICAgICAgICAgfSBlbHNlIGlmIChQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCkgPj0gcHJlc2Vu
dGF0aW9uVGltZSkKICAgICAgICAgICAgIHJldHVybiAxOwpAQCAtMjgzLDE5ICsyODYsMTkgQEAg
c3RkOjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlh
U2FtcGxlQVZGT2JqQzo6ZGl2aWRlKGMKICAgICBpZiAoIXNhbXBsZXNCZWZvcmVQcmVzZW50YXRp
b25UaW1lKQogICAgICAgICByZXR1cm4geyBudWxscHRyLCB0aGlzIH07CiAKLSAgICBDTUl0ZW1D
b3VudCBzYW1wbGVDb3VudCA9IENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5n
ZXQoKSk7CisgICAgQ01JdGVtQ291bnQgc2FtcGxlQ291bnQgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKHNhbXBsZXNCZWZvcmVQcmVz
ZW50YXRpb25UaW1lID49IHNhbXBsZUNvdW50KQogICAgICAgICByZXR1cm4geyB0aGlzLCBudWxs
cHRyIH07CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVCZWZvcmUgPSBudWxscHRy
OwogICAgIENGUmFuZ2UgcmFuZ2VCZWZvcmUgPSBDRlJhbmdlTWFrZSgwLCBzYW1wbGVzQmVmb3Jl
UHJlc2VudGF0aW9uVGltZSk7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZUJlZm9y
ZSwgJnJhd1NhbXBsZUJlZm9yZSkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZm
ZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUu
Z2V0KCksIHJhbmdlQmVmb3JlLCAmcmF3U2FtcGxlQmVmb3JlKSAhPSBub0VycikKICAgICAgICAg
cmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gc2FtcGxlQmVmb3JlID0gYWRvcHRDRihyYXdTYW1wbGVCZWZvcmUpOwogCiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQWZ0ZXIgPSBudWxscHRyOwogICAgIENGUmFuZ2UgcmFu
Z2VBZnRlciA9IENGUmFuZ2VNYWtlKHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lLCBzYW1w
bGVDb3VudCAtIHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lKTsKLSAgICBpZiAoQ01TYW1w
bGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9z
YW1wbGUuZ2V0KCksIHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikgIT0gbm9FcnIpCisgICAg
aWYgKFBBTDo6Q01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJhbmdlQWZ0ZXIsICZyYXdTYW1wbGVBZnRlcikg
IT0gbm9FcnIpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsKICAgICBSZXRh
aW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUFmdGVyID0gYWRvcHRDRihyYXdTYW1wbGVB
ZnRlcik7CiAKQEAgLTMwNSwxMyArMzA4LDEzIEBAIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1w
bGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZShjCiBS
ZWY8TWVkaWFTYW1wbGU+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlTm9uRGlzcGxheWluZ0Nv
cHkoKSBjb25zdAogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlciA9IDA7
Ci0gICAgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2Ft
cGxlLmdldCgpLCAmbmV3U2FtcGxlQnVmZmVyKTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyQ3Jl
YXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgJm5ld1NhbXBsZUJ1
ZmZlcik7CiAgICAgQVNTRVJUKG5ld1NhbXBsZUJ1ZmZlcik7CiAKLSAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXko
bmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkg
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShuZXdTYW1wbGVC
dWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3Vu
dChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlS
ZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4o
Q0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgIENG
RGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rv
Tm90RGlzcGxheSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1
ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwg
a0NGQm9vbGVhblRydWUpOwogICAgIH0KIAogICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6
OmNyZWF0ZShhZG9wdENGKG5ld1NhbXBsZUJ1ZmZlcikuZ2V0KCksIG1faWQpOwpAQCAtMzI2LDcg
KzMyOSw3IEBAIFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9i
akM6OmdldFJHQkFJbWFnZURhdGEoKSBjb25zdAogICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGNv
bmZvcm1lck9wdGlvbnMuZ2V0KCksIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5LCBp
bWFnZUZvcm1hdE51bWJlci5nZXQoKSk7CiAgICAgUGl4ZWxCdWZmZXJDb25mb3JtZXJDViBwaXhl
bEJ1ZmZlckNvbmZvcm1lcihjb25mb3JtZXJPcHRpb25zLmdldCgpKTsKIAotICAgIGF1dG8gcGl4
ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdl
dEltYWdlQnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1
ZmZlcihtX3NhbXBsZS5nZXQoKSkpOwogICAgIGF1dG8gcmdiYVBpeGVsQnVmZmVyID0gcGl4ZWxC
dWZmZXJDb25mb3JtZXIuY29udmVydChwaXhlbEJ1ZmZlcik7CiAgICAgYXV0byBzdGF0dXMgPSBD
VlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHJnYmFQaXhlbEJ1ZmZlci5nZXQoKSwga0NWUGl4
ZWxCdWZmZXJMb2NrX1JlYWRPbmx5KTsKICAgICBBU1NFUlQoc3RhdHVzID09IG5vRXJyKTsKQEAg
LTM0MywxMCArMzQ2LDEwIEBAIFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNh
bXBsZUFWRk9iakM6OmdldFJHQkFJbWFnZURhdGEoKSBjb25zdAogCiBzdGF0aWMgaW5saW5lIHZv
aWQgc2V0U2FtcGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyKQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIsIHRydWUpOwor
ICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7CiAgICAgZm9yIChDRklu
ZGV4IGkgPSAwOyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsK
ICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2Zf
Y2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFj
aG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVu
dHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFu
VHJ1ZSk7CisgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtD
TVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7
CiAgICAgfQogfQogCkBAIC0zNTcsNyArMzYwLDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6
OnNldEFzRGlzcGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAKIGJvb2wgTWVk
aWFTYW1wbGVBVkZPYmpDOjppc0hvbW9nZW5lb3VzKCkgY29uc3QKIHsKLSAgICBDRkFycmF5UmVm
IGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJy
YXkobV9zYW1wbGUuZ2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJh
eSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxl
LmdldCgpLCB0cnVlKTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCkBAIC0zODUsNyArMzg4LDcgQEAgVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9i
akM+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMKIHsK
ICAgICB1c2luZyBTYW1wbGVWZWN0b3IgPSBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+
OwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5
UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50c0Fy
cmF5KQogICAgICAgICByZXR1cm4gU2FtcGxlVmVjdG9yOjpmcm9tKG1ha2VSZWYoKnRoaXMpKTsK
IApAQCAtNDE4LDcgKzQyMSw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVk
aWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiAgICAgc2FtcGxl
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJhbmdlcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYg
cmFuZ2UgOiByYW5nZXMpIHsKICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlID0g
bnVsbHB0cjsKLSAgICAgICAgaWYgKENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJh
bmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5nZSwgJnJhd1NhbXBs
ZSkgIT0gbm9FcnIgfHwgIXJhd1NhbXBsZSkKKyAgICAgICAgaWYgKFBBTDo6Q01TYW1wbGVCdWZm
ZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUu
Z2V0KCksIHJhbmdlLCAmcmF3U2FtcGxlKSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQogICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgc2FtcGxlcy51bmNoZWNrZWRBcHBlbmQoTWVkaWFT
YW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRvcHRDRihyYXdTYW1wbGUpLmdldCgpLCBtX2lkKSk7CiAg
ICAgfQpAQCAtNDMyLDI0ICs0MzUsMjQgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBN
ZWRpYVNhbXBsZUFWRk9iakM6OmNsb25lU2FtcGxlQnVmZmVyQW5kU2V0QXNEaXNwbGEKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9y
bWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4
ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gcmV0YWluZWRGb3JtYXREZXNjcmlw
dGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgQ01JdGVtQ291bnQgaXRl
bUNvdW50ID0gMDsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0lu
Zm9BcnJheShzYW1wbGUsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpOworICAgIHN0YXR1cyA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBudWxs
cHRyLCAmaXRlbUNvdW50KTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAg
ICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIHN0YXR1cyA9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJ
bmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZv
QXJyYXkuZGF0YSgpLCBudWxscHRyKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlcjsKLSAgICBz
dGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9j
YXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0Fy
cmF5LmRhdGEoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBp
eGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5l
d1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMubW0KaW5kZXggMGI5YmI2NDg1ZjNlOWUyNTM0NWFhZDRmNGU0NzA5MmM0MjlhNWNjOC4u
MDIxOTIxNmQ3YzJkODhlZjU3NzUyNmQ4ODIzMGMzZTUwM2ZkOGNkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTI1
OCw3ICsyNTgsNiBAQCAtICh2b2lkKWF1ZGlvUmVuZGVyZXJXYXNBdXRvbWF0aWNhbGx5Rmx1c2hl
ZDooTlNOb3RpZmljYXRpb24qKW5vdGUKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNp
bmcgbmFtZXNwYWNlIFBBTDsKIAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQwpAQCAtMjc3LDcgKzI3Niw3IEBAIHN0YXRpYyB1aW50NjRfdCBu
ZXh0TWFwSUQoKQogCiBzdGF0aWMgdm9pZCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKENNTm90
aWZpY2F0aW9uQ2VudGVyUmVmLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ0ZTdHJpbmdSZWYgbm90
aWZpY2F0aW9uTmFtZSwgY29uc3Qgdm9pZCosIENGVHlwZVJlZikKIHsKLSAgICBpZiAoIUNGRXF1
YWwoa0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG5v
dGlmaWNhdGlvbk5hbWUpKQorICAgIGlmICghQ0ZFcXVhbChQQUw6OmtDTVNhbXBsZUJ1ZmZlckNv
bnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewpAQCAtMzE2LDcgKzMx
NSw3IEBAIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKIAogICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFz
cygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihwcmVyb2xsRGVjb2RlV2l0
aENvbXBsZXRpb25IYW5kbGVyOildKQotICAgICAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExp
c3RlbmVyKENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fbWFwSUQpLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBr
Q01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0
ciwgMCk7CisgICAgICAgIFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihQQUw6
OkNNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KG1fbWFwSUQpLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBQQUw6OmtD
TVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRy
LCAwKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIG1fcGFyc2VyLT5zZXRMb2dn
ZXIobV9sb2dnZXIuZ2V0KCksIG1fbG9nSWRlbnRpZmllcik7CkBAIC0zNTQsNyArMzUzLDcgQEAg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6On5Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQygp
CiAgICAgY2xlYXJUcmFja3MoKTsKIAogICAgIGlmICghW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihw
cmVyb2xsRGVjb2RlV2l0aENvbXBsZXRpb25IYW5kbGVyOildKQotICAgICAgICBDTU5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExv
Y2FsQ2VudGVyKCksIHRoaXMsIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIGtDTVNhbXBsZUJ1
ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyKTsKKyAgICAg
ICAgUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKFBBTDo6Q01Ob3RpZmlj
YXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3Vt
ZWRDYWxsYmFjaywgUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZm
ZXJDb25zdW1lZCwgbnVsbHB0cik7CiAKICAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKQog
ICAgICAgICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25hbCgpOwpAQCAtOTkzLDcgKzk5Miw3
IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9y
KEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OnJlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQoQVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyICpyZW5kZXJlciwgY29uc3QgQ01UaW1lJiB0aW1lKQogewotICAgIGF1dG8gbWVk
aWFUaW1lID0gdG9NZWRpYVRpbWUodGltZSk7CisgICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKHRpbWUpOwogICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYVRpbWUp
OwogICAgIEF0b21TdHJpbmcgdHJhY2tJZDsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2F1ZGlv
UmVuZGVyZXJzKSB7CkBAIC0xMTAxLDEzICsxMTAwLDEzIEBAIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29u
c3QKICAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKICAgICBERUJV
R19MT0cobG9nU2l0ZUlkZW50aWZpZXIsICJ0cmFjayBJRCA9ICIsIHRyYWNrSUQsICIsIHNhbXBs
ZSA9ICIsIHNhbXBsZS5nZXQoKSk7CiAKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9y
bVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAgIENNRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3Jp
cHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKICAgICBBU1NFUlQo
Zm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAg
ICAgRVJST1JfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiUmVjZWl2ZWQgc2FtcGxlIHdpdGggYSBu
dWxsIGZvcm1hdERlc2NyaXB0aW9uLiBCYWlsaW5nLiIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIGF1dG8gbWVkaWFUeXBlID0gQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShm
b3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBtZWRpYVR5cGUgPSBQQUw6OkNNRm9ybWF0RGVz
Y3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgaWYgKHRyYWNr
SUQgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lEKSB7CiAgICAgICAgIC8vIEFWU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyIHdpbGwgdGhyb3cgYW4gdW4tZG9jdW1lbnRlZCBleGNlcHRpb24gaWYgcGFz
c2VkIGEgc2FtcGxlCkBAIC0xMTIwLDcgKzExMTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0
CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIHBsYXllciA9IHRoaXMtPnBsYXllcigpOwotICAg
ICAgICBGbG9hdFNpemUgZm9ybWF0U2l6ZSA9IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0
cnVlKSk7CisgICAgICAgIEZsb2F0U2l6ZSBmb3JtYXRTaXplID0gRmxvYXRTaXplKFBBTDo6Q01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNj
cmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOwogICAgICAgICBpZiAoIW1fY2FjaGVkU2l6ZSB8fCBmb3Jt
YXRTaXplICE9IG1fY2FjaGVkU2l6ZS52YWx1ZSgpKSB7CiAgICAgICAgICAgICBERUJVR19MT0co
bG9nU2l0ZUlkZW50aWZpZXIsICJzaXplIGNoYW5nZWQgdG8gIiwgZm9ybWF0U2l6ZSk7CiAgICAg
ICAgICAgICBib29sIHNpemVXYXNOdWxsID0gIW1fY2FjaGVkU2l6ZTsKQEAgLTExNDYsOSArMTE0
NSw5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVm
PE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKIAogICAgICAgICAgICAgaWYgKCFoYXZlUHJl
cm9sbERlY29kZVdpdGhDb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgICAgIENNU2Ft
cGxlQnVmZmVyUmVmIHJhd1NhbXBsZUNvcHk7Ci0gICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZm
ZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlciwgJnJhd1NhbXBsZUNvcHkpOworICAgICAgICAgICAgICAgIFBBTDo6Q01T
YW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHBsYXRmb3JtU2FtcGxl
LnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwgJnJhd1NhbXBsZUNvcHkpOwogICAgICAgICAgICAgICAg
IGF1dG8gc2FtcGxlQ29weSA9IGFkb3B0Q0YocmF3U2FtcGxlQ29weSk7Ci0gICAgICAgICAgICAg
ICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUNvcHkuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFj
aG1lbnRLZXlfUG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCwgKF9fYnJpZGdlIENGRGljdGlv
bmFyeVJlZilAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50
S2V5X1Bvc3ROb3RpZmljYXRpb25XaGVuQ29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRN
b2RlX1Nob3VsZE5vdFByb3BhZ2F0ZSk7CisgICAgICAgICAgICAgICAgUEFMOjpDTVNldEF0dGFj
aG1lbnQoc2FtcGxlQ29weS5nZXQoKSwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5
X1Bvc3ROb3RpZmljYXRpb25XaGVuQ29uc3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYp
QHsgKF9fYnJpZGdlIE5TU3RyaW5nICopUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5
X1Bvc3ROb3RpZmljYXRpb25XaGVuQ29uc3VtZWQgOiBAWUVTIH0sIGtDTUF0dGFjaG1lbnRNb2Rl
X1Nob3VsZE5vdFByb3BhZ2F0ZSk7CiAgICAgICAgICAgICAgICAgW21fZGlzcGxheUxheWVyIGVu
cXVldWVTYW1wbGVCdWZmZXI6c2FtcGxlQ29weS5nZXQoKV07CiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICAgICAgICAgICAgICBwbGF5ZXItPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUo
dHJ1ZSk7CkBAIC0xMjk4LDE0ICsxMjk3LDE0IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21TCiBi
b29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVz
ZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPHVpbnQ2NF90Pih0cmFj
a0lEU3RyaW5nKS52YWx1ZV9vcigwKSA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQKLSAgICAgICAg
JiYgW2dldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25k
VG9TZWxlY3RvcjpAc2VsZWN0b3IoZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJl
c2VudGF0aW9uVGltZTopXTsKKyAgICAgICAgJiYgW1BBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBl
Y3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOildOwogfQogCiB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50
YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcsIGNvbnN0IE1lZGlhVGlt
ZSYgcHJlc2VudGF0aW9uVGltZSkKIHsKICAgICBBU1NFUlQoY2FuU2V0TWluaW11bVVwY29taW5n
UHJlc2VudGF0aW9uVGltZSh0cmFja0lEU3RyaW5nKSk7CiAgICAgaWYgKGNhblNldE1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJhY2tJRFN0cmluZykpCi0gICAgICAgIFttX2Rpc3Bs
YXlMYXllciBleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1l
OnRvQ01UaW1lKHByZXNlbnRhdGlvblRpbWUpXTsKKyAgICAgICAgW21fZGlzcGxheUxheWVyIGV4
cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6UEFMOjp0b0NN
VGltZShwcmVzZW50YXRpb25UaW1lKV07CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmNsZWFyTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3Ry
aW5nJiB0cmFja0lEU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRl
eCBmNDY2NDEyNzhlOWVkNGI2ODNhNDg0ZDc1NzQ3ZDg2M2Y2ZWQ4NjZkLi4zYjEwMmFiOGVmMzlm
MzhkZjQ3MDYwNWZhOGQ3YmZkMjRjMDBlZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcApAQCAtMjU4LDggKzI1OCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50
PFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlN0YXRlPiB7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RhdGljIFdURkxvZ0NoYW5uZWwm
IGxvZ0NoYW5uZWwoKSB7IHJldHVybiBMb2dNZWRpYTsgfQogc3RhdGljIGNvbnN0IGNoYXIqIGxv
Z0NsYXNzTmFtZSgpIHsgcmV0dXJuICJTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIjsgfQogCkBAIC0x
MDY2LDcgKzEwNjQsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25G
cmFtZShjb25zdCBGcmFtZU1ldGFkYXRhJiBtZXRhZGF0YSwgUmVhZAogICAgICAgICByZXR1cm4g
U2tpcChyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKICAgICB9CiAKLSAgICByZXR1cm4gdHJhY2tE
YXRhLT5jb25zdW1lRnJhbWVEYXRhKCpyZWFkZXIsIG1ldGFkYXRhLCBieXRlc1JlbWFpbmluZywg
Q01UaW1lTWFrZShibG9jay0+dGltZWNvZGUgKyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2Nh
bGUpLCBibG9jay0+bnVtX2ZyYW1lcyk7CisgICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3VtZUZy
YW1lRGF0YSgqcmVhZGVyLCBtZXRhZGF0YSwgYnl0ZXNSZW1haW5pbmcsIFBBTDo6Q01UaW1lTWFr
ZShibG9jay0+dGltZWNvZGUgKyBtX2N1cnJlbnRUaW1lY29kZSwgbV90aW1lc2NhbGUpLCBibG9j
ay0+bnVtX2ZyYW1lcyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6cHJvdmlk
ZU1lZGlhRGF0YShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlciwgdWlu
dDY0X3QgdHJhY2tJRCwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGJ5dGVSYW5nZU9mZnNldCkKQEAg
LTEwOTAsNyArMTA4OCw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpW
aWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgQ01CbG9ja0J1
ZmZlclJlZiByYXdCbG9ja0J1ZmZlciA9IG51bGxwdHI7CiAKICAgICBpZiAoIW1fY3VycmVudEJs
b2NrQnVmZmVyKSB7Ci0gICAgICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhN
ZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXplLCBr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3Qmxv
Y2tCdWZmZXIpOworICAgICAgICBhdXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdp
dGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBtZXRhZGF0YS5zaXpl
LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBtZXRhZGF0YS5zaXplLCAwLCAmcmF3
QmxvY2tCdWZmZXIpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9H
X0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZh
aWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIs
IGJ5dGVzUmVtYWluaW5nKTsKQEAgLTEwOTksNyArMTA5Nyw3IEBAIHdlYm06OlN0YXR1cyBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJt
OjpSZWFkCiAgICAgICAgIG1fY3VycmVudEJsb2NrQnVmZmVyID0gYWRvcHRDRihyYXdCbG9ja0J1
ZmZlcik7CiAgICAgICAgIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24gPSAwOwogCi0gICAg
ICAgIGVyciA9IENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1cnJlbnRCbG9ja0J1
ZmZlci5nZXQoKSk7CisgICAgICAgIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckFzc3VyZUJsb2Nr
TWVtb3J5KG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgaWYgKGVycikgewog
ICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb1NhbXBsZUJ1
ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIp
OwogICAgICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAt
MTExMCw3ICsxMTA4LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZp
ZGVvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICB3aGlsZSAoYnl0
ZXNUb1JlYWQpIHsKICAgICAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlvbiA9IDA7CiAg
ICAgICAgIHVpbnQ4X3QqIGJsb2NrQnVmZmVyRGF0YSA9IG51bGxwdHI7Ci0gICAgICAgIGF1dG8g
ZXJyID0gQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdl
dCgpLCBtX2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9u
LCBudWxscHRyLCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOworICAgICAgICBhdXRvIGVyciA9
IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVmZmVyLmdl
dCgpLCBtX2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uLCAmc2VnbWVudFNpemVBdFBvc2l0aW9u
LCBudWxscHRyLCAoY2hhcioqKSZibG9ja0J1ZmZlckRhdGEpOwogICAgICAgICBpZiAoZXJyKSB7
CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVy
R2V0RGF0YVBvaW50ZXIgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICAgICAgcmV0
dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTE0NCw3ICsxMTQyLDcgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxl
QnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICNpZiBFTkFCTEUoVlA5KQogICAgIHVpbnQ4X3QqIGJs
b2NrQnVmZmVyRGF0YSA9IG51bGxwdHI7CiAgICAgc2l6ZV90IHNlZ21lbnRTaXplQXRQb3NpdGlv
biA9IDA7Ci0gICAgYXV0byBlcnIgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIobV9jdXJy
ZW50QmxvY2tCdWZmZXIuZ2V0KCksIDAsICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIs
IChjaGFyKiopJmJsb2NrQnVmZmVyRGF0YSk7CisgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tC
dWZmZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgMCwgJnNlZ21l
bnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxv
Y2tCdWZmZXJHZXREYXRhUG9pbnRlciBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAg
IHJldHVybjsKQEAgLTExODgsOSArMTE4Niw5IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAg
ICAgICAgIGR1cmF0aW9uID0gdHJhY2suZGVmYXVsdF9kdXJhdGlvbi52YWx1ZSgpICogcHJlc2Vu
dGF0aW9uVGltZS50aW1lc2NhbGUgLyAxMDAwMDAwMDAwOwogCiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgcmF3U2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBzaXplX3QgZnJhbWVTaXplID0gQ01C
bG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOwotICAg
IENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmcgPSB7IENNVGltZU1ha2UoZHVyYXRpb24sIHByZXNl
bnRhdGlvblRpbWUudGltZXNjYWxlKSwgcHJlc2VudGF0aW9uVGltZSwgcHJlc2VudGF0aW9uVGlt
ZSB9OwotICAgIGVyciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgbV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9u
KCkuZ2V0KCksIHNhbXBsZUNvdW50LCAxLCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2Ft
cGxlQnVmZmVyKTsKKyAgICBzaXplX3QgZnJhbWVTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0
RGF0YUxlbmd0aChtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSk7CisgICAgQ01TYW1wbGVUaW1p
bmdJbmZvIHRpbWluZyA9IHsgUEFMOjpDTVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25U
aW1lLnRpbWVzY2FsZSksIHByZXNlbnRhdGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKKyAg
ICBlcnIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIHRoaXMtPmZvcm1hdERlc2NyaXB0aW9uKCku
Z2V0KCksIHNhbXBsZUNvdW50LCAxLCAmdGltaW5nLCAxLCAmZnJhbWVTaXplLCAmcmF3U2FtcGxl
QnVmZmVyKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9T
U0lCTEUoIkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIp
OwogICAgICAgICByZXR1cm47CkBAIC0xMjAwLDcgKzExOTgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01U
aW1lJiBwcgogICAgIG1fY3VycmVudEJsb2NrQnVmZmVyID0gbnVsbHB0cjsKICAgICBtX2N1cnJl
bnRCbG9ja0J1ZmZlclBvc2l0aW9uID0gMDsKIAotICAgIGF1dG8gYXR0YWNobWVudHNBcnJheSA9
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0
KCksIHRydWUpOworICAgIGF1dG8gYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CiAg
ICAgQVNTRVJUKGF0dGFjaG1lbnRzQXJyYXkpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkg
ewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkgcmV0dXJuZWQgTlVMTCIpOwpAQCAtMTIxMCw3ICsxMjA4
LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRl
U2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICBpZiAoIWlzS2V5KSB7CiAgICAgICAg
IGZvciAoQ0ZJbmRleCBpID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNB
cnJheSk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5
UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+
KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICAg
ICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfTm90U3luYywga0NGQm9vbGVhblRydWUpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0
VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBr
Q0ZCb29sZWFuVHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEyOTUsMTIgKzEyOTMsMTIg
QEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpj
b25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFk
ZXIsIGJ5dGVzUmVtYWluaW5nKTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gc3RyZWFtRGVz
Y3JpcHRpb24gPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKGZvcm1hdERlc2NyaXB0aW9uLmdldCgpKTsKKyAgICAgICAgYXV0byBzdHJlYW1EZXNjcmlw
dGlvbiA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlw
dGlvbihmb3JtYXREZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgICAgIGlmICghc3RyZWFtRGVzY3Jp
cHRpb24pIHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24gZmFpbGVkIik7CiAg
ICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmluZyk7CiAgICAgICAg
IH0KLSAgICAgICAgbV9wYWNrZXREdXJhdGlvbiA9IENNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRp
b24tPm1GcmFtZXNQZXJQYWNrZXQsIHN0cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7Cisg
ICAgICAgIG1fcGFja2V0RHVyYXRpb24gPSBQQUw6OkNNVGltZU1ha2Uoc3RyZWFtRGVzY3JpcHRp
b24tPm1GcmFtZXNQZXJQYWNrZXQsIHN0cmVhbURlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSk7CiAK
ICAgICAgICAgc2V0Rm9ybWF0RGVzY3JpcHRpb24oV1RGTW92ZShmb3JtYXREZXNjcmlwdGlvbikp
OwogICAgIH0gZWxzZSBpZiAoY29kZWMoKSA9PSBDb2RlY1R5cGU6Ok9wdXMpIHsKQEAgLTEzMjIs
NyArMTMyMCw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1Ry
YWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgbV9jdXJyZW50UGFja2V0
Qnl0ZU9mZnNldCA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2N1cnJlbnRQYWNrZXRTaXplID0gc3Rk
OjpudWxsb3B0OwogCi0gICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9IENNVGltZUdldFNlY29uZHMo
Q01UaW1lU3VidHJhY3QocHJlc2VudGF0aW9uVGltZSwgbV9zYW1wbGVQcmVzZW50YXRpb25UaW1l
KSkgKyBDTVRpbWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7Cisg
ICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhQQUw6OkNNVGlt
ZVN1YnRyYWN0KHByZXNlbnRhdGlvblRpbWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsg
UEFMOjpDTVRpbWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24pICogc2FtcGxlQ291bnQ7CiAg
ICAgaWYgKHNhbXBsZUR1cmF0aW9uID49IG1fbWluaW11bVNhbXBsZUR1cmF0aW9uKQogICAgICAg
ICBjcmVhdGVTYW1wbGVCdWZmZXIobWV0YWRhdGEucG9zaXRpb24pOwogCkBAIC0xMzM5LDIxICsx
MzM3LDIxIEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNy
ZWF0ZVNhbXBsZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPHNpCiAgICAgYXV0byBmdWxsUGFja2V0Qnl0
ZXNSZWFkID0gbV9wYWNrZXRCeXRlc1JlYWQgLSBtX3BhcnRpYWxCeXRlc1JlYWQ7CiAKICAgICBD
TUJsb2NrQnVmZmVyUmVmIGJsb2NrQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVyciA9IENN
QmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVs
bHB0ciwgZnVsbFBhY2tldEJ5dGVzUmVhZCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwg
MCwgZnVsbFBhY2tldEJ5dGVzUmVhZCwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFn
LCAmYmxvY2tCdWZmZXIpOworICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRl
V2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZ1bGxQYWNrZXRC
eXRlc1JlYWQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIGZ1bGxQYWNrZXRCeXRl
c1JlYWQsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKTsK
ICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNN
QmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVkIHdpdGggJWQiLCBlcnIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihibG9ja0J1
ZmZlcik7CiAKLSAgICBlcnIgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhtX3BhY2tl
dERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0KCksIDAsIGZ1bGxQYWNrZXRCeXRlc1JlYWQpOworICAg
IGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMobV9wYWNrZXREYXRhLmRh
dGEoKSwgYnVmZmVyLmdldCgpLCAwLCBmdWxsUGFja2V0Qnl0ZXNSZWFkKTsKICAgICBpZiAoZXJy
KSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJS
ZXBsYWNlRGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZUJ1ZmZlciA9IG51bGxwdHI7
Ci0gICAgZXJyID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2Ny
aXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0
aW9uKCkuZ2V0KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQcmVzZW50
YXRpb25UaW1lLCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVCdWZmZXIp
OworICAgIGVyciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tl
dERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIGZvcm1hdERl
c2NyaXB0aW9uKCkuZ2V0KCksIG1fcGFja2V0RGVzY3JpcHRpb25zLnNpemUoKSwgbV9zYW1wbGVQ
cmVzZW50YXRpb25UaW1lLCBtX3BhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZyYXdTYW1wbGVC
dWZmZXIpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NT
SUJMRSgiQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFp
bGVkIHdpdGggJWQiLCBlcnIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1t
CmluZGV4IGU5Zjg2ZGVhNDM4ZTg5NWU2M2RiZGUwN2M0ZDk1ZjliNWFlZjE4Y2MuLmFhNzM2Y2Yx
NDlhNDc0YmEyNjNjYWFjZDY2NDJkZTc4Zjc3ODg3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1t
CkBAIC00Nyw3ICs0Nyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSB3ZWJtOwogCiBWUDlUZXN0aW5nT3ZlcnJpZGVzJiBW
UDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKQpAQCAtMzYyLDExICszNjEsMTEgQEAgc3Rh
dGljIENGU3RyaW5nUmVmIGNvbnZlcnRUb0NNQ29sb3JQcmltYXJpZXModWludDhfdCBwcmltYXJp
ZXMpCiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6U01QVEVfU1RfMjQw
OgogICAgICAgICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJDb2xvclByaW1hcmllc19TTVBURV9DOwog
ICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX1JQXzQzMV8yOgot
ICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7
CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNf
RENJX1AzOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX0VH
XzQzMl8xOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmll
c19QM19ENjU7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQ
cmltYXJpZXNfUDNfRDY1OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6
OkJUXzIwMjBfTm9uY29uc3RhbnRfTHVtaW5hbmNlOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0
RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4gUEFM
OjprQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjA7CiAgICAgfQog
CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00MjAsMTggKzQxOSwxOCBAQCBzdGF0aWMgQ0ZTdHJp
bmdSZWYgY29udmVydFRvQ01UcmFuc2ZlckZ1bmN0aW9uKHVpbnQ4X3QgY2hhcmFjdGVyaXN0aWNz
KQogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OlNNUFRF
X1NUXzI0MDoKICAgICAgICAgcmV0dXJuIGtDVkltYWdlQnVmZmVyVHJhbnNmZXJGdW5jdGlvbl9T
TVBURV8yNDBNXzE5OTU7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3Rl
cmlzdGljczo6U01QVEVfU1RfMjA4NDoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BROworICAgICAgICByZXR1cm4gUEFM
OjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUTsK
ICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpCVF8yMDIw
XzEwYml0OgogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6
OkJUXzIwMjBfMTJiaXQ6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5z
ZmVyRnVuY3Rpb25fSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVz
Y3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjA7CiAgICAgY2FzZSBWUENvbmZpZ3Vy
YXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfNDI4XzE6Ci0gICAgICAgIHJl
dHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzE7
CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9TTVBURV9TVF80MjhfMTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFj
dGVyaXN0aWNzOjpCVF8yMTAwX0hMRzoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0
aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRzsKKyAgICAgICAgcmV0dXJuIFBBTDo6
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBfSExHOwogICAg
IGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OklFQ182MTk2Nl8y
XzE6Ci0gICAgICAgIHJldHVybiBjYW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fc1JHQigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgOiBudWxscHRyOworICAgICAgICByZXR1
cm4gUEFMOjpjYW5Mb2FkX0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fc1JHQigpID8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9zUkdCKCkgOiBudWxscHRyOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9u
VHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkxpbmVhcjoKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CisgICAgICAgIHJldHVybiBQQUw6
OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXI7CiAgICAgfQogCiAg
ICAgcmV0dXJuIG51bGxwdHI7CkBAIC00NjcsNyArNDY2LDcgQEAgc3RhdGljIENGU3RyaW5nUmVm
IGNvbnZlcnRUb0NNWUNiQ1JNYXRyaXgodWludDhfdCBjb2VmZmljaWVudHMpCiB7CiAgICAgc3dp
dGNoIChjb2VmZmljaWVudHMpIHsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZm
aWNpZW50czo6QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6Ci0gICAgICAgIHJldHVybiBr
Q01Gb3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVy
biBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMDsKICAgICBj
YXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZmaWNpZW50czo6QlRfNDcwXzdfQkc6CiAgICAg
Y2FzZSBWUENvbmZpZ3VyYXRpb25NYXRyaXhDb2VmZmljaWVudHM6OkJUXzYwMV83OgogICAgICAg
ICByZXR1cm4ga0NWSW1hZ2VCdWZmZXJZQ2JDck1hdHJpeF9JVFVfUl82MDFfNDsKQEAgLTU0Mywx
MSArNTQyLDExIEBAIHN0YXRpYyBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3Jl
YXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2RlY0NvbmZpCiAgICAgQ0ZUeXBlUmVmIGNvbmZp
Z3VyYXRpb25WYWx1ZXNbXSA9IHsgZGF0YS5nZXQoKSB9OwogICAgIGF1dG8gY29uZmlndXJhdGlv
bkRpY3QgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBj
b25maWd1cmF0aW9uS2V5cywgY29uZmlndXJhdGlvblZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChj
b25maWd1cmF0aW9uS2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKIAotICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4
dGVuc2lvbnNLZXlzIHsga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3Jp
cHRpb25FeHRlbnNpb25BdG9tcyB9OworICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNL
ZXlzIHsgUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlv
bkV4dGVuc2lvbkF0b21zIH07CiAgICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc1ZhbHVl
cyA9IHsgY29uZmlndXJhdGlvbkRpY3QuZ2V0KCkgfTsKIAogICAgIGlmIChyZWNvcmQudmlkZW9G
dWxsUmFuZ2VGbGFnID09IFZQQ29uZmlndXJhdGlvblJhbmdlOjpGdWxsUmFuZ2UpIHsKLSAgICAg
ICAgZXh0ZW5zaW9uc0tleXMuYXBwZW5kKGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1
bGxSYW5nZVZpZGVvKTsKKyAgICAgICAgZXh0ZW5zaW9uc0tleXMuYXBwZW5kKFBBTDo6a0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOwogICAgICAgICBleHRlbnNp
b25zVmFsdWVzLmFwcGVuZChrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KaW5kZXggY2VhMTU2YWUyZmJlMjVhZGEwMDc2Njhl
OTFkNTBlNTYxYzY0MmU0ZS4uOGVlZjNiMmVhNjA0YmQxOTgzZDc3ZDM4YmY1MjFhOGQyMWYyMGVk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQpAQCAtNDMsOSAr
NDMsMTIgQEAKICNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJWaWRlb1Rv
b2xib3hTb2Z0TGluay5oIgogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCi1XVEZfREVDTEFSRV9D
Rl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKKy8vIEVxdWl2YWxlbnQgdG8gV1RGX0RFQ0xB
UkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBOZWVkZWQgZHVlIHRvIHJlcXVp
cmVtZW50IG9mIHNwZWNpZnlpbmcgdGhlIFBBTCBuYW1lc3BhY2UuCit0ZW1wbGF0ZSA8Pgorc3Ry
dWN0IFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJSZWY+IHsKKyAgICBzdGF0aWMgaW5s
aW5lIENGVHlwZUlEIHR5cGVJRCh2b2lkKSB7IHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
VHlwZUlEKCk7IH0KK307CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzIsNyArNzUsNyBA
QCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c2V0VGltZWJhc2UoQ01UaW1lYmFz
ZVJlZiB0aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fdGltZWJhc2UpCi0g
ICAgICAgIENNVGltZWJhc2VSZW1vdmVUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0
KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VSZW1vdmVU
aW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkp
OwogCiAgICAgbV90aW1lYmFzZSA9IHRpbWViYXNlOwogCkBAIC04NCw3ICs4Nyw3IEBAIHZvaWQg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZShDTVRpbWViYXNlUmVmIHRp
bWViYXNlKQogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBkaXNwYXRjaF9hY3RpdmF0ZSht
X3RpbWVyU291cmNlLmdldCgpKTsKICAgICAgICAgfQotICAgICAgICBDTVRpbWViYXNlQWRkVGlt
ZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsK
KyAgICAgICAgUEFMOjpDTVRpbWViYXNlQWRkVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNl
LmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKICAgICB9CiB9CiAKQEAgLTEwNCwxMiArMTA3
LDEyIEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjptYXliZUJlY29tZVJlYWR5
Rm9yTW9yZU1lZGlhRGF0YSgpCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5x
dWV1ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGJvb2wgZGlzcGxheWlu
ZykKIHsKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIDAsIG51
bGxwdHIsICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1D
b3VudCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+
IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwot
ICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShz
YW1wbGVCdWZmZXIsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikp
CisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
QXJyYXkoc2FtcGxlQnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51
bGxwdHIpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDTUJ1ZmZlckNhbGxiYWNrcyBjb250
YWlucyA2NC1iaXQgcG9pbnRlcnMgdGhhdCBhcmVuJ3QgOC1ieXRlIGFsaWduZWQuIFRvIHN1cHBy
ZXNzIHRoZSBsaW5rZXIKQEAgLTEzNCw3ICsxMzcsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIs
CiAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGNhbGxiYWNrcy5jYWxsYmFja3MudmVyc2lv
bikgPT0gc2l6ZW9mKHVpbnQzMl90KSwgIlZlcnNpb24gZmllbGQgbXVzdCBiZSA0IGJ5dGVzIik7
CiAgICAgICAgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihCdWZmZXJDYWxsYmFja3MpID09IDQsICJD
TUJ1ZmZlckNhbGxiYWNrcyBzdHJ1Y3QgbXVzdCBoYXZlIDQgYnl0ZSBhbGlnbm1lbnQiKTsKIAot
ICAgICAgICBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVt
Q2FwYWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOworICAgICAgICBQQUw6
OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0
eSwgJmNhbGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fcHJvZHVjZXJR
dWV1ZSA9IGFkb3B0Q0Yob3V0UXVldWUpOwogICAgIH0KIApAQCAtMTU2LDcgKzE1OSw3IEBAIHZv
aWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlciwKICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoY2FsbGJh
Y2tzLmNhbGxiYWNrcy52ZXJzaW9uKSA9PSBzaXplb2YodWludDMyX3QpLCAiVmVyc2lvbiBmaWVs
ZCBtdXN0IGJlIDQgYnl0ZXMiKTsKICAgICAgICAgc3RhdGljX2Fzc2VydChhbGlnbm9mKEJ1ZmZl
ckNhbGxiYWNrcykgPT0gNCwgIkNNQnVmZmVyQ2FsbGJhY2tzIHN0cnVjdCBhbGlnbm1lbnQgbXVz
dCBiZSA0Iik7CiAKLSAgICAgICAgQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsK
KyAgICAgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtN
YXhpbXVtQ2FwYWNpdHksICZjYWxsYmFja3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOwogICAgICAg
ICBtX2NvbnN1bWVyUXVldWUgPSBhZG9wdENGKG91dFF1ZXVlKTsKICAgICB9CiAKQEAgLTE3Nywy
MCArMTgwLDIwIEBAIGJvb2wgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNv
ZGVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBiCiAgICAgaWYgKCFtX3RpbWViYXNl
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gY3VycmVudFRpbWUgPSBDTVRpbWVi
YXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKTsKLSAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0
VGltZSA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7Ci0g
ICAgYXV0byBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKLSAg
ICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBDTVRpbWVBZGQocHJlc2VudGF0aW9uU3RhcnRU
aW1lLCBkdXJhdGlvbik7Ci0gICAgaWYgKENNVGltZUNvbXBhcmUocHJlc2VudGF0aW9uRW5kVGlt
ZSwgY3VycmVudFRpbWUpID49IDApCisgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1l
YmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSk7CisgICAgYXV0byBwcmVzZW50YXRpb25TdGFy
dFRpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBs
ZSk7CisgICAgYXV0byBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihz
YW1wbGUpOworICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IFBBTDo6Q01UaW1lQWRkKHBy
ZXNlbnRhdGlvblN0YXJ0VGltZSwgZHVyYXRpb24pOworICAgIGlmIChQQUw6OkNNVGltZUNvbXBh
cmUocHJlc2VudGF0aW9uRW5kVGltZSwgY3VycmVudFRpbWUpID49IDApCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXko
c2FtcGxlLCBmYWxzZSk7CiAgICAgaWYgKCFhdHRhY2htZW50cykKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICBmb3IgKENGSW5kZXggaW5kZXggPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3Vu
dChhdHRhY2htZW50cyk7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgQ0ZEaWN0
aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0ID0gKENGRGljdGlvbmFyeVJlZilDRkFycmF5R2V0VmFs
dWVBdEluZGV4KGF0dGFjaG1lbnRzLCBpbmRleCk7Ci0gICAgICAgIENGQm9vbGVhblJlZiBkZXBl
bmRlZE9uID0gKENGQm9vbGVhblJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShhdHRhY2htZW50RGlj
dCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycyk7CisgICAgICAg
IENGQm9vbGVhblJlZiBkZXBlbmRlZE9uID0gKENGQm9vbGVhblJlZilDRkRpY3Rpb25hcnlHZXRW
YWx1ZShhdHRhY2htZW50RGljdCwgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5k
ZWRPbkJ5T3RoZXJzKTsKICAgICAgICAgaWYgKGRlcGVuZGVkT24gJiYgIUNGQm9vbGVhbkdldFZh
bHVlKGRlcGVuZGVkT24pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIw
MywxNCArMjA2LDE0IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZShDTVNhbXBsZUJ1CiAgICAgaWYgKGlzSW52YWxp
ZGF0ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2Ny
aXB0aW9uKHNhbXBsZSk7CisgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9y
bWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24o
c2FtcGxlKTsKICAgICBpZiAobV9kZWNvbXByZXNzaW9uU2Vzc2lvbiAmJiAhVlREZWNvbXByZXNz
aW9uU2Vzc2lvbkNhbkFjY2VwdEZvcm1hdERlc2NyaXB0aW9uKG1fZGVjb21wcmVzc2lvblNlc3Np
b24uZ2V0KCksIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24pKSB7CiAgICAgICAgIFZURGVjb21wcmVz
c2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKG1fZGVjb21wcmVzc2lvblNlc3Np
b24uZ2V0KCkpOwogICAgICAgICBtX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKICAg
ICB9CiAKICAgICBpZiAoIW1fZGVjb21wcmVzc2lvblNlc3Npb24pIHsKLSAgICAgICAgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1
ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZSk7CisgICAgICAgIENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZSk7CiAgICAgICAgIGF1dG8gdmlkZW9EZWNvZGVy
U3BlY2lmaWNhdGlvbiA9IEB7IChfX2JyaWRnZSBOU1N0cmluZyAqKWtWVFZpZGVvRGVjb2RlclNw
ZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlcjogQCggbV9o
YXJkd2FyZURlY29kZXJFbmFibGVkICkgfTsKIAogICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJp
YnV0ZXM7CkBAIC0yNTYsNyArMjU5LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246OmRlY29kZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGJvb2wgZGkKIAogICAg
IE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgVlRE
ZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lV2l0aE91dHB1dEhhbmRsZXIobV9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbi5nZXQoKSwgc2FtcGxlLCBmbGFncywgbnVsbHB0ciwgW3RoaXMsIGRpc3Bs
YXlpbmcsIHN0YXJ0VGltZV0oT1NTdGF0dXMgc3RhdHVzLCBWVERlY29kZUluZm9GbGFncyBpbmZv
RmxhZ3MsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25U
aW1lU3RhbXAsIENNVGltZSBwcmVzZW50YXRpb25EdXJhdGlvbikgewotICAgICAgICBkb3VibGUg
ZGVsdGFSYXRpbyA9IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkuc2Vjb25kcygp
IC8gQ01UaW1lR2V0U2Vjb25kcyhwcmVzZW50YXRpb25EdXJhdGlvbik7CisgICAgICAgIGRvdWJs
ZSBkZWx0YVJhdGlvID0gKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKS5zZWNvbmRz
KCkgLyBQQUw6OkNNVGltZUdldFNlY29uZHMocHJlc2VudGF0aW9uRHVyYXRpb24pOwogCiAgICAg
ICAgIHVwZGF0ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyhkZWx0YVJhdGlvKTsKICAgICAg
ICAgaGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChkaXNwbGF5aW5nLCBzdGF0dXMsIGluZm9GbGFn
cywgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcHJlc2VudGF0aW9uRHVyYXRp
b24pOwpAQCAtMjg5LDcgKzI5Miw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjpoYW5kbGVEZWNvbXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAgICAgICAg
ICsrbV9kcm9wcGVkVmlkZW9GcmFtZXM7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgaWYgKHN0YXR1cyAh
PSBub0VyciB8fCBub0VyciAhPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFn
ZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgJnJhd0ltYWdlQnVm
ZmVyRGVzY3JpcHRpb24pKSB7CisgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCBub0VyciAhPSBQ
QUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9j
YXRvckRlZmF1bHQsIHJhd0ltYWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbikp
IHsKICAgICAgICAgKyttX2NvcnJ1cHRlZFZpZGVvRnJhbWVzOwogICAgICAgICAtLW1fZnJhbWVz
QmVpbmdEZWNvZGVkOwogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgp
OwpAQCAtMzA0LDcgKzMwNyw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpo
YW5kbGVEZWNvbXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAgICAgfTsKIAog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd0ltYWdlU2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAg
ICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJEZXNjcmlwdGlv
bi5nZXQoKSwgJmltYWdlQnVmZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVCdWZmZXIpKSB7Cisg
ICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1
ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJEZXNj
cmlwdGlvbi5nZXQoKSwgJmltYWdlQnVmZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVCdWZmZXIp
KSB7CiAgICAgICAgICsrbV9jb3JydXB0ZWRWaWRlb0ZyYW1lczsKICAgICAgICAgLS1tX2ZyYW1l
c0JlaW5nRGVjb2RlZDsKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEo
KTsKQEAgLTMxOCwxMSArMzIxLDExIEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjpoYW5kbGVEZWNvbXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTCiAKIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZp
cnN0VmlkZW9GcmFtZSgpCiB7Ci0gICAgaWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgQ01CdWZmZXJR
dWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkKKyAgICBpZiAoIW1fcHJvZHVjZXJR
dWV1ZSB8fCBQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVy
UmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZm
ZXJSZWY+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQo
KSkpKTsKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQ
aXhlbEJ1ZmZlclJlZilDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUu
Z2V0KCkpOworICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9
IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVy
UXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CiAg
ICAgQVNTRVJUKENGR2V0VHlwZUlEKGltYWdlQnVmZmVyLmdldCgpKSA9PSBDVlBpeGVsQnVmZmVy
R2V0VHlwZUlEKCkpOwogCiAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsK
QEAgLTMzNSwyNSArMzM4LDI1IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjph
dXRvbWF0aWNEZXF1ZXVlKCkKICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGF1dG8gdGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUobV90
aW1lYmFzZS5nZXQoKSkpOworICAgIGF1dG8gdGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7CiAgICAgTE9HKE1lZGlhLCAiV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHB1cmdpbmcg
YWxsIHNhbXBsZXMgYmVmb3JlIHRpbWUoJXMpIiwgdGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgp
LmRhdGEoKSk7CiAKICAgICBNZWRpYVRpbWUgbmV4dEZpcmVUaW1lID0gTWVkaWFUaW1lOjpwb3Np
dGl2ZUluZmluaXRlVGltZSgpOwogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSBmYWxz
ZTsKIAotICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRf
Y2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSkpIHsKLSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFt
cCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3Rh
bXAoZmlyc3RTYW1wbGUpKTsKLSAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01l
ZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CisgICAgd2hp
bGUgKENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2Ft
cGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpKSB7CisgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
Zmlyc3RTYW1wbGUpKTsKKyAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlh
VGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKICAgICAg
ICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlvblRpbWVz
dGFtcCArIGR1cmF0aW9uOwogICAgICAgICBpZiAodGltZSA+IHByZXNlbnRhdGlvbkVuZFRpbWVz
dGFtcCkgewotICAgICAgICAgICAgQ0ZSZWxlYXNlKENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0
YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgQ0ZSZWxlYXNlKFBBTDo6
Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAg
ICAgICAgICAgICByZWxlYXNlZEltYWdlQnVmZmVycyA9IHRydWU7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBhdXRvIGJlZ2lu
ID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1l
U3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgICAgIGF1dG8gZW5kID0gUEFMOjp0
b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKFBB
TDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVl
dWUuZ2V0KCkpKTsKICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3Ry
aW5nKGJlZ2luKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwog
I2VuZGlmCiAKQEAgLTM2NSw3ICszNjgsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6YXV0b21hdGljRGVxdWV1ZSgpCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3Jl
TWVkaWFEYXRhKCk7CiAKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246OmF1dG9tYXRpY0RlcXVldWUoJXApIC0gcXVldWUgZW1wdHkiLCB0aGlzKTsKLSAgICBDTVRp
bWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZU5leHRGaXJlVGltZShtX3RpbWViYXNlLmdldCgp
LCBtX3RpbWVyU291cmNlLmdldCgpLCBQQUw6OnRvQ01UaW1lKG5leHRGaXJlVGltZSksIDApOwor
ICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUobV90
aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSwgUEFMOjp0b0NNVGltZShuZXh0Rmly
ZVRpbWUpLCAwKTsKIH0KIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVl
dWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYm9vbCBkaXNwbGF5aW5n
KQpAQCAtMzgzLDE3ICszODYsMTcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmVucXVldWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKICAgICBib29s
IHNob3VsZE5vdGlmeSA9IHRydWU7CiAKICAgICBpZiAoZGlzcGxheWluZyAmJiBtX3RpbWViYXNl
KSB7Ci0gICAgICAgIGF1dG8gY3VycmVudFJhdGUgPSBDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWVi
YXNlLmdldCgpKTsKLSAgICAgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUo
Q01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOwotICAgICAgICBhdXRvIHByZXNl
bnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVz
ZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7Ci0gICAgICAgIGF1dG8gcHJlc2VudGF0aW9uRW5k
VGltZSA9IHByZXNlbnRhdGlvblN0YXJ0VGltZSArIFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVC
dWZmZXJHZXREdXJhdGlvbihzYW1wbGUpKTsKKyAgICAgICAgYXV0byBjdXJyZW50UmF0ZSA9IFBB
TDo6Q01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7CisgICAgICAgIGF1dG8gY3Vy
cmVudFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUobV90aW1l
YmFzZS5nZXQoKSkpOworICAgICAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6
dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChz
YW1wbGUpKTsKKyAgICAgICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJlc2VudGF0aW9u
U3RhcnRUaW1lICsgUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRp
b24oc2FtcGxlKSk7CiAgICAgICAgIGlmIChjdXJyZW50VGltZSA8IHByZXNlbnRhdGlvblN0YXJ0
VGltZSB8fCBjdXJyZW50VGltZSA+PSBwcmVzZW50YXRpb25FbmRUaW1lKQogICAgICAgICAgICAg
c2hvdWxkTm90aWZ5ID0gZmFsc2U7CiAKICAgICAgICAgaWYgKGN1cnJlbnRSYXRlID4gMCAmJiBw
cmVzZW50YXRpb25FbmRUaW1lIDwgY3VycmVudFRpbWUpIHsKICNpZiAhTE9HX0RJU0FCTEVECi0g
ICAgICAgICAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0
Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAg
ICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVuZFBy
ZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAg
IGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0
UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICAg
ICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFBy
ZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAg
IExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRT
YW1wbGUoJXApIC0gZHJvcHBpbmcgZnJhbWUgbGF0ZSBieSAlcywgZnJhbWVzQmVpbmdEZWNvZGVk
KCVkKSwgcHJvZHVjZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhwcmVzZW50YXRp
b25FbmRUaW1lIC0gY3VycmVudFRpbWUpLnV0ZjgoKS5kYXRhKCksIG1fZnJhbWVzQmVpbmdEZWNv
ZGVkLCB0b1N0cmluZyhiZWdpbikudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCku
ZGF0YSgpKTsKICNlbmRpZgogICAgICAgICAgICAgKyttX2Ryb3BwZWRWaWRlb0ZyYW1lczsKQEAg
LTQwMSwxNyArNDA0LDE3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1
ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX3Byb2R1Y2VyUXVldWUuZ2V0KCksIHNh
bXBsZSk7CisgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX3Byb2R1Y2VyUXVldWUuZ2V0
KCksIHNhbXBsZSk7CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgYXV0byBiZWdpbiA9IFBBTDo6
dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1f
cHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShD
TUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpOwotICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01T
YW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7CisgICAgYXV0byBi
ZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50
YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgYXV0byBlbmQgPSBQ
QUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVT
dGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUg
PSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1l
U3RhbXAoc2FtcGxlKSk7CiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSglcCkgLSBwcmVzZW50YXRpb25UaW1lKCVzKSwgZnJh
bWVzQmVpbmdEZWNvZGVkKCVkKSwgcHJvZHVjZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0
cmluZyhwcmVzZW50YXRpb25UaW1lKS51dGY4KCkuZGF0YSgpLCBtX2ZyYW1lc0JlaW5nRGVjb2Rl
ZCwgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRh
dGEoKSk7CiAjZW5kaWYKIAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNl
U2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCks
IG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRp
c3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNv
dXJjZS5nZXQoKSk7CiAKICAgICBpZiAoIW1faGFzQXZhaWxhYmxlRnJhbWVDYWxsYmFjaykKICAg
ICAgICAgcmV0dXJuOwpAQCAtNDI2LDcgKzQyOSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUs
CiAKIGJvb2wgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlh
RGF0YSgpIGNvbnN0CiB7Ci0gICAgQ01JdGVtQ291bnQgcHJvZHVjZXJDb3VudCA9IG1fcHJvZHVj
ZXJRdWV1ZSA/IENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudChtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpIDogMDsKKyAgICBDTUl0ZW1Db3VudCBwcm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVl
ID8gUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSA6IDA7CiAgICAgcmV0dXJuIG1fZnJhbWVzQmVpbmdEZWNvZGVkICsgcHJvZHVjZXJDb3VudCA8
PSBrSGlnaFdhdGVyTWFyazsKIH0KIApAQCAtNDUyLDcgKzQ1NSw3IEBAIHZvaWQgV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpzdG9wUmVxdWVzdGluZ01lZGlhRGF0YSgpCiAKIHZvaWQgV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpub3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFt
ZShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY2FsbGJhY2spCiB7Ci0gICAgaWYgKGNhbGxiYWNrICYm
IG1fcHJvZHVjZXJRdWV1ZSAmJiAhQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVl
LmdldCgpKSkgeworICAgIGlmIChjYWxsYmFjayAmJiBtX3Byb2R1Y2VyUXVldWUgJiYgIVBBTDo6
Q01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgewogICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrXSB7CiAgICAgICAgICAgICBjYWxsYmFj
aygpOwogICAgICAgICB9KTsKQEAgLTQ2Myw3ICs0NjYsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoc3RkOjpmdW5j
dGlvbgogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBJbWFnZUZvclRpbWVG
bGFncyBmbGFncykKIHsKLSAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1
ZXVlLmdldCgpKSkgeworICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjppbWFnZUZvclRpbWUoJXApIC0gdGltZSglcyksIHF1ZXVlIGVtcHR5IiwgdGhp
cywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KQEAgLTQ3MSw5ICs0NzQsOSBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQogICAg
IGJvb2wgYWxsb3dFYXJsaWVyID0gZmxhZ3MgPT0gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
OjpBbGxvd0VhcmxpZXI7CiAgICAgYm9vbCBhbGxvd0xhdGVyID0gZmxhZ3MgPT0gV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpBbGxvd0xhdGVyOwogCi0gICAgTWVkaWFUaW1lIHN0YXJ0VGlt
ZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIE1lZGlhVGltZSBzdGFydFRpbWUg
PSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9u
VGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogI2lmICFMT0dfRElTQUJMRUQKLSAg
ICBNZWRpYVRpbWUgZW5kVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEVu
ZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBNZWRp
YVRpbWUgZW5kVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5k
UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogI2VuZGlmCiAg
ICAgaWYgKCFhbGxvd0xhdGVyICYmIHRpbWUgPCBzdGFydFRpbWUpIHsKICAgICAgICAgTE9HKE1l
ZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoJXApIC0gdGlt
ZSglcykgdG9vIGVhcmx5IGZvciBxdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyh0aW1l
KS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhzdGFydFRpbWUpLnV0ZjgoKS5kYXRhKCksIHRvU3Ry
aW5nKGVuZFRpbWUpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtNDgyLDI0ICs0ODUsMjQgQEAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VG
b3JUaW1lKGNvbnN0IE1lZGkKIAogICAgIGJvb2wgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSBmYWxz
ZTsKIAotICAgIHdoaWxlIChDTVNhbXBsZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRf
Y2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSkpIHsKLSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVzdGFt
cCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3Rh
bXAoZmlyc3RTYW1wbGUpKTsKLSAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01l
ZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CisgICAgd2hp
bGUgKENNU2FtcGxlQnVmZmVyUmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2Ft
cGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpKSB7CisgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
Zmlyc3RTYW1wbGUpKTsKKyAgICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gUEFMOjp0b01lZGlh
VGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKICAgICAg
ICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlvblRpbWVz
dGFtcCArIGR1cmF0aW9uOwogICAgICAgICBpZiAoIWFsbG93TGF0ZXIgJiYgcHJlc2VudGF0aW9u
VGltZXN0YW1wID4gdGltZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBp
ZiAoIWFsbG93RWFybGllciAmJiBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPCB0aW1lKSB7Ci0g
ICAgICAgICAgICBDRlJlbGVhc2UoQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9k
dWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1
ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAg
IHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKLSAgICAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2Ft
cGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KENNQnVmZmVy
UXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKLSAgICAgICAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJS
ZWYpQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKKyAg
ICAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRD
RihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURl
cXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOworICAgICAgICBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CiAgICAg
ICAgIEFTU0VSVChDRkdldFR5cGVJRChpbWFnZUJ1ZmZlci5nZXQoKSkgPT0gQ1ZQaXhlbEJ1ZmZl
ckdldFR5cGVJRCgpKTsKIAogICAgICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgICAgIENN
VGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFz
ZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgICAgICBQQUw6OkNNVGltZWJh
c2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQo
KSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1v
cmVNZWRpYURhdGEoKTsKIApAQCAtNTA4LDcgKzUxMSw3IEBAIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBN
ZWRpCiAgICAgfQogCiAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgIENNVGltZWJhc2VTZXRU
aW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90
aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0
Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNl
LmdldCgpKTsKIAogICAgIGlmIChyZWxlYXNlZEltYWdlQnVmZmVycykKICAgICAgICAgbWF5YmVC
ZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTUyMCw5ICs1MjMsOSBAQCBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZv
clRpbWUoY29uc3QgTWVkaQogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmZsdXNo
KCkKIHsKICAgICBtX2RlY29tcHJlc3Npb25RdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgbXV0YWJsZSB7Ci0gICAgICAgIENNQnVmZmVy
UXVldWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX3Byb2R1Y2VyUXVldWUuZ2V0KCkpOworICAgICAg
ICBQQUw6OkNNQnVmZmVyUXVldWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpOwogICAgICAgICBtX2VucXVlaW5nUXVldWUtPmRpc3BhdGNoU3luYyhbcHJvdGVjdGVk
VGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsKLSAgICAgICAgICAgIENNQnVmZmVyUXVl
dWVSZXNldChwcm90ZWN0ZWRUaGlzLT5tX2NvbnN1bWVyUXVldWUuZ2V0KCkpOworICAgICAgICAg
ICAgUEFMOjpDTUJ1ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9jb25zdW1lclF1ZXVl
LmdldCgpKTsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fZnJhbWVzU2luY2VMYXN0UW9z
Q2hlY2sgPSAwOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jdXJyZW50UW9zVGllciA9
IDA7CiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yZXNldFFvc1RpZXIoKTsKQEAgLTUzMywy
NCArNTM2LDI0IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCgpCiBD
TVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKENNQnVmZmVy
UmVmIGJ1Ziwgdm9pZCopCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gY2hlY2tl
ZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1
ZmZlckdldERlY29kZVRpbWVTdGFtcChzYW1wbGUpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKHNhbXBsZSk7CiB9CiAKIENNVGltZSBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmdldFByZXNlbnRhdGlvblRpbWUoQ01CdWZmZXJSZWYgYnVmLCB2
b2lkKikKIHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8
Q01TYW1wbGVCdWZmZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0UHJl
c2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKIH0KIAogQ01UaW1lIFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RHVyYXRpb24oQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikK
IHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1w
bGVCdWZmZXJSZWY+KGJ1Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24o
c2FtcGxlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBs
ZSk7CiB9CiAKIENGQ29tcGFyaXNvblJlc3VsdCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmNvbXBhcmVCdWZmZXJzKENNQnVmZmVyUmVmIGJ1ZjEsIENNQnVmZmVyUmVmIGJ1ZjIsIHZvaWQq
IHJlZmNvbikKIHsKLSAgICByZXR1cm4gKENGQ29tcGFyaXNvblJlc3VsdClDTVRpbWVDb21wYXJl
KGdldFByZXNlbnRhdGlvblRpbWUoYnVmMSwgcmVmY29uKSwgZ2V0UHJlc2VudGF0aW9uVGltZShi
dWYyLCByZWZjb24pKTsKKyAgICByZXR1cm4gKENGQ29tcGFyaXNvblJlc3VsdClQQUw6OkNNVGlt
ZUNvbXBhcmUoZ2V0UHJlc2VudGF0aW9uVGltZShidWYxLCByZWZjb24pLCBnZXRQcmVzZW50YXRp
b25UaW1lKGJ1ZjIsIHJlZmNvbikpOwogfQogCiB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6cmVzZXRRb3NUaWVyKCkKQEAgLTYwMiw3ICs2MDUsNyBAQCB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6dXBkYXRlUW9zV2l0aERlY29kZVRpbWVTdGF0aXN0aWNzKGRvdWJs
ZSByYXRpbwogICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZG91
YmxlIHJhdGUgPSBDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNlLmdldCgpKTsKKyAgICBkb3Vi
bGUgcmF0ZSA9IFBBTDo6Q01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7CiAgICAg
aWYgKCFyYXRlKQogICAgICAgICByYXRlID0gMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0K
aW5kZXggZTNmMDkyNzAzNDhlN2E1YWVmNzI2NmViNDcyZGRiYWU3M2JjMzQwNy4uZjMxNjlhYmMw
Mjc3MDgyZjBjZmNlNDcyNjc5ZTExMDc5N2M4YzlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZU
Lm1tCkBAIC00Miw3ICs0Miw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGlj
IGlubGluZSBDRlN0cmluZ1JlZiBjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkKIHsKQEAgLTEzOCw3
ICsxMzcsNyBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVDo6Y29udmVydFBpeGVsQnVmZmVyKENWUGl4ZWxCdQogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZmZXIoQ01TYW1w
bGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJl
dHVybiBjb252ZXJ0UGl4ZWxCdWZmZXIoQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3Vy
Y2VCdWZmZXIpLCBzaXplKTsKKyAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpLCBzaXplKTsKIH0KIAogUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0
Q01TYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRT
aXplJiBzaXplKQpAQCAtMTQ2LDkgKzE0NSw5IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJl
Zj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAg
ICAgaWYgKCFzb3VyY2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0
byBkZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc291cmNl
QnVmZmVyKTsKLSAgICBhdXRvIHNvdXJjZVNpemUgPSBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1
ZSkpOwotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVm
PihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOworICAgIGF1dG8g
ZGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc291
cmNlQnVmZmVyKTsKKyAgICBhdXRvIHNvdXJjZVNpemUgPSBGbG9hdFNpemUoUEFMOjpDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGRlc2NyaXB0aW9uLCB0
cnVlLCB0cnVlKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxC
dWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIp
KTsKICAgICBpZiAoc2l6ZSA9PSBleHBhbmRlZEludFNpemUoc291cmNlU2l6ZSkgJiYgbV9waXhl
bEZvcm1hdCA9PSBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSkK
ICAgICAgICAgcmV0dXJuIHJldGFpblB0cihzb3VyY2VCdWZmZXIpOwogCkBAIC0xNjAsNyArMTU5
LDcgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
Ojpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIGF1dG8gc3RhdHVzID0gQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCAxLCBudWxscHRy
LCAmaXRlbUNvdW50KTsKKyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCAxLCBudWxscHRyLCAmaXRlbUNvdW50
KTsKICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlh
LCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAl
ZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpA
QCAtMTY5LDcgKzE2OCw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgQ01TYW1wbGVU
aW1pbmdJbmZvKiB0aW1laW5nSW5mb1B0ciA9IG51bGxwdHI7CiAgICAgaWYgKGl0ZW1Db3VudCkg
ewogICAgICAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgICAgICBzdGF0
dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIs
IGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cik7CisgICAgICAgIHN0
YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNl
QnVmZmVyLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOwogICAg
ICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPRyhNZWRp
YSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkgZmFpbGVkIHdpdGggZXJyb3IgY29kZTog
JWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CkBAIC0xNzgsMTQgKzE3NywxNCBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IElt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIH0K
IAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51
bGxwdHI7Ci0gICAgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1h
Z2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCks
ICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0
ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGb3JJbWFnZUJ1ZmZlciByZXR1cm5lZDogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1
cykpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZl
clJlZiByZXNpemVkU2FtcGxlQnVmZmVyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4
ZWxCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCB0aW1laW5nSW5mb1B0ciwgJnJlc2l6
ZWRTYW1wbGVCdWZmZXIpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1
ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWVpbmdJbmZvUHRyLCAmcmVzaXplZFNh
bXBsZUJ1ZmZlcik7CiAgICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyOiBmYWlsZWQgdG8gY3JlYXRlIENN
U2FtcGxlQnVmZmVyIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1
cykpOwpAQCAtMjM3LDE2ICsyMzYsMTYgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihDVlBpeGUKICAgICB9
CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBu
dWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5w
dXRCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgYXV0byBzdGF0dXMgPSBQ
QUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9j
YXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCAmZm9ybWF0
RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVk
aWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6IGZhaWxlZCB0
byBpbml0aWFsaXplIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbiB3aXRoIGVycm9yIGNvZGU6ICVk
Iiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1dG8gY21U
aW1lID0gdG9DTVRpbWUoc2FtcGxlVGltZSk7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWlu
Z0luZm8gPSB7IGtDTVRpbWVJbnZhbGlkLCBjbVRpbWUsIGNtVGltZSB9OwotICAgIHN0YXR1cyA9
IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0
aW9uLCAmdGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7CisgICAgYXV0byBjbVRpbWUgPSBQQUw6
OnRvQ01UaW1lKHNhbXBsZVRpbWUpOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZv
ID0geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBjbVRpbWUsIGNtVGltZSB9OworICAgIHN0YXR1cyA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVz
Y3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9y
bWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgUkVMRUFTRV9MT0co
TWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXI6IGZhaWxl
ZCB0byBpbml0aWFsaXplIENNU2FtcGxlQnVmZmVyIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0
aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IGUwZGFh
Yzg1Yjg3M2FkNmFhOWI0YWIyZGI3YTAwOWNjMzdkNDc4OTUuLjMyYTA0NDk2Y2ZmN2Q4NDExMTIw
ZmNkMTMzZTZkNjc0MjU0YTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KQEAgLTQ3LDcg
KzQ3LDYgQEAgU09GVExJTktfQVZLSVRfRlJBTUVXT1JLKCkKIFNPRlRfTElOS19DTEFTU19PUFRJ
T05BTChBVktpdCwgQVZWYWx1ZVRpbWluZykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIAogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUFWS2l0KFBsYXliYWNrU2Vzc2lvbk1vZGVsJiBtb2RlbCkKICAgICA6
IG1fcGxheWVyQ29udHJvbGxlcihhZG9wdE5TKFtbV2ViQVZQbGF5ZXJDb250cm9sbGVyIGFsbG9j
XSBpbml0XSkpCkBAIC0xNDUsNyArMTQ0LDcgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VBVktpdDo6c2Vla2FibGVSYW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMmIHRpbWUKICAg
ICAgICAgZG91YmxlIHN0YXJ0ID0gdGltZVJhbmdlcy5zdGFydChpKS5yZWxlYXNlUmV0dXJuVmFs
dWUoKTsKICAgICAgICAgZG91YmxlIGVuZCA9IHRpbWVSYW5nZXMuZW5kKGkpLnJlbGVhc2VSZXR1
cm5WYWx1ZSgpOwogCi0gICAgICAgIENNVGltZVJhbmdlIHJhbmdlID0gQ01UaW1lUmFuZ2VNYWtl
KENNVGltZU1ha2VXaXRoU2Vjb25kcyhzdGFydCwgMTAwMCksIENNVGltZU1ha2VXaXRoU2Vjb25k
cyhlbmQtc3RhcnQsIDEwMDApKTsKKyAgICAgICAgQ01UaW1lUmFuZ2UgcmFuZ2UgPSBQQUw6OkNN
VGltZVJhbmdlTWFrZShQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhzdGFydCwgMTAwMCksIFBB
TDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOwogICAgICAgICBbc2Vl
a2FibGVSYW5nZXMgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENNVGltZVJhbmdlOnJhbmdl
XV07CiAgICAgfQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCmluZGV4IGVhNDIzYzcxN2M3YWU5
MWJkNGVlOTkwODdlMDdjNGU1YzM3ZTRjM2YuLjVkZjM0OWZjNmZjZGZjZmFlYTc1NTYzMjBmM2Fl
NmU2Njc2MzRlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQpAQCAtMzczLDcgKzM3Myw2IEBAIC0g
KHZvaWQpcGlwQWN0aW9uU3RvcDooUElQVmlld0NvbnRyb2xsZXIgKilwaXAKIEBlbmQKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlTWFjOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMoUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlTWFjJiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgOiBtX3BsYXliYWNr
U2Vzc2lvbkludGVyZmFjZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKaW5kZXggODg0MDk0Mjk3OTI2YzhhZWJkZWY2ZjNl
OTU3ODQyZjgzNDI4Yjg5Mi4uZDQxOWUwZTE5MjU1NWQ3MzYwODU4NTFmNTRjYTAwNDBkNDZiNjYz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtNDIsNyAr
NDIsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNy
ZWF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSwgY29uc3QgTWVkaWFSZWNvcmRlclByaXZh
dGVPcHRpb25zJiBvcHRpb25zKQogewpAQCAtODgsMTIgKzg3LDEyIEBAIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2Ft
cGxlQnVmZmVyCiB7CiAgICAgaWYgKHNob3VsZE11dGVWaWRlbygpKSB7CiAgICAgICAgIGlmICgh
bV9ibGFja0ZyYW1lKSB7Ci0gICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2Ft
cGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKLSAgICAgICAgICAgIGF1dG8gZGltZW5zaW9u
cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVz
Y3JpcHRpb24uZ2V0KCkpOworICAgICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRm
b3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAgICAgIGF1dG8gZGlt
ZW5zaW9ucyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhtX2Js
YWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgICAgICAgICBtX2JsYWNrRnJhbWUgPSBj
cmVhdGVCbGFja1BpeGVsQnVmZmVyKGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0
KTsKIAogICAgICAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2Ny
aXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9i
bGFja0ZyYW1lLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgICAgICAgICAgYXV0byBz
dGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVy
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERlc2NyaXB0
aW9uKTsKICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
dmlkZW9TYW1wbGVBdmFpbGFibGUgOjp1bmFibGUgdG8gY3JlYXRlIGEgYmxhY2sgZnJhbWUgZGVz
Y3JpcHRpb246ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgICAgICAg
ICBtX2JsYWNrRnJhbWUgPSBudWxscHRyOwpAQCAtMTAzLDggKzEwMiw4IEBAIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYg
c2FtcGxlQnVmZmVyCiAgICAgICAgIH0KIAogICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGUgPSBudWxscHRyOwotICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyB7IGtD
TVRpbWVJbnZhbGlkLCB0b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0aW9uVGltZSgpKSwg
dG9DTVRpbWUoc2FtcGxlQnVmZmVyLmRlY29kZVRpbWUoKSkgfTsKLSAgICAgICAgYXV0byBzdGF0
dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0Zy
YW1lRGVzY3JpcHRpb24uZ2V0KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKKyAgICAgICAgQ01T
YW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OnRv
Q01UaW1lKHNhbXBsZUJ1ZmZlci5wcmVzZW50YXRpb25UaW1lKCkpLCBQQUw6OnRvQ01UaW1lKHNh
bXBsZUJ1ZmZlci5kZWNvZGVUaW1lKCkpIH07CisgICAgICAgIGF1dG8gc3RhdHVzID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIChDVkltYWdlQnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9ibGFja0ZyYW1lRGVz
Y3JpcHRpb24uZ2V0KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKIAogICAgICAgICBpZiAoc3Rh
dHVzICE9IG5vRXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUgLSB1
bmFibGUgdG8gY3JlYXRlIGEgYmxhY2sgZnJhbWU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0
dXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0K
aW5kZXggNTFhM2UxOGEyY2VkZDNjZDVkYTkzZjM0ZWJmMzcxMWUwMjBmOGI2Mi4uNWUxMTBlY2Q3
ZGUzODQ2MWI0MjkwNGEwZWI0ODgzNDE4NDNlNzVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9B
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAgLTM2LDEzICszNiwxMiBAQAogI2luY2x1
ZGUgPHd0Zi9TY29wZS5oPgogCiAjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsu
aD4KKyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiAjZGVmaW5lIExPV19X
QVRFUl9USU1FX0lOX1NFQ09ORFMgMC4xCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKLQogc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoQ01CdWZmZXJRdWV1ZVRy
aWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgYXV0
byBjb21wcmVzc29yID0gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cj4obmV3IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpKTsKQEAgLTUyLDE1ICs1MSwxNSBA
QCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZQogfQogCiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCi0gICAgOiBtX3NlcmlhbERpc3BhdGNo
UXVldWUgeyBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciIpIH0KLSAgICAsIG1fbG93V2F0ZXJUaW1lIHsgQ01UaW1lTWFrZVdpdGhTZWNvbmRz
KExPV19XQVRFUl9USU1FX0lOX1NFQ09ORFMsIDEwMDApIH0KKyAgICA6IG1fc2VyaWFsRGlzcGF0
Y2hRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciIpKQorICAgICwgbV9sb3dXYXRlclRpbWUoUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29u
ZHMoTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05EUywgMTAwMCkpCiB7CiB9CiAKIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAg
aWYgKG1fY29udmVydGVyKSB7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZl
cnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsK
ICAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0KIH0KQEAgLTY4LDE5ICs2Nywx
OSBAQCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IoKQogYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01C
dWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3Qp
CiB7CiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBpbnB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRv
IGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1
ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZpbnB1dEJ1
ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1ZUdldENhbGxiYWNr
c0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmaW5wdXRCdWZmZXJRdWV1ZSkpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0ZSBmb3IgbV9pbnB1dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1faW5w
dXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0YoaW5wdXRCdWZmZXJRdWV1ZSk7CiAKICAgICBDTUJ1ZmZl
clF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVycm9yID0gQ01CdWZm
ZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZlclF1ZXVlR2V0Q2Fs
bGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsK
KyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNh
bXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZl
clF1ZXVlQ3JlYXRlIGZvciBtX291dHB1dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1fb3V0cHV0QnVmZmVyUXVl
dWUgPSBhZG9wdENGKG91dHB1dEJ1ZmZlclF1ZXVlKTsKLSAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFs
bFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2Jq
ZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVa
ZXJvLCBOVUxMKTsKKyAgICBQQUw6OkNNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1
dEJ1ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1
ZXVlVHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwgUEFMOjprQ01UaW1lWmVybywgTlVMTCk7
CiAKICAgICBtX2lzRW5jb2RpbmcgPSB0cnVlOwogICAgIHJldHVybiB0cnVlOwpAQCAtODksOCAr
ODgsOCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1
ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYQogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmZpbmlzaCgpCiB7CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRj
aFN5bmMoW3RoaXNdIHsKLSAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVy
VGltZShrQ01UaW1lSW52YWxpZCk7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVl
TWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKKyAgICAgICAgcHJvY2Vz
c1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKTsKKyAg
ICAgICAgYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRw
dXRCdWZmZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9y
LCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVl
TWFya0VuZE9mRGF0YSBmYWlsZWQgJWQiLCBlcnJvcik7CiAgICAgICAgIG1faXNFbmNvZGluZyA9
IGZhbHNlOwogICAgIH0pOwpAQCAtMTEyLDcgKzExMSw3IEBAIFVJbnQzMiBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmRlZmF1bHRPdXRwdXRCaXRSYXRlKGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNECiAKIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0
ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uLCBBdWRpb0Zvcm1hdElEIG91dHB1dEZvcm1hdElEKQogewotICAgIGNvbnN0
IGF1dG8gKmF1ZGlvRm9ybWF0TGlzdEl0ZW0gPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRS
aWNoZXN0RGVjb2RhYmxlRm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBjb25zdCBhdXRv
ICphdWRpb0Zvcm1hdExpc3RJdGVtID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRS
aWNoZXN0RGVjb2RhYmxlRm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBtX3NvdXJjZUZv
cm1hdCA9IGF1ZGlvRm9ybWF0TGlzdEl0ZW0tPm1BU0JEOwogCiAgICAgbWVtc2V0KCZtX2Rlc3Rp
bmF0aW9uRm9ybWF0LCAwLCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CkBA
IC0xMjEsMzQgKzEyMCwzNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5p
dEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIG1fZGVzdGlu
YXRpb25Gb3JtYXQubUNoYW5uZWxzUGVyRnJhbWUgPSBtX3NvdXJjZUZvcm1hdC5tQ2hhbm5lbHNQ
ZXJGcmFtZTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQp
OwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3Jt
YXRQcm9wZXJ0eV9Gb3JtYXRJbmZvLCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3Jt
YXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvRm9ybWF0R2V0UHJvcGVydHko
a0F1ZGlvRm9ybWF0UHJvcGVydHlfRm9ybWF0SW5mbywgMCwgTlVMTCwgJnNpemUsICZtX2Rlc3Rp
bmF0aW9uRm9ybWF0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
IkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0Zvcm1hdEdldFByb3BlcnR5IGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAg
QXVkaW9Db252ZXJ0ZXJSZWYgY29udmVydGVyOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9D
b252ZXJ0ZXJOZXcoJm1fc291cmNlRm9ybWF0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZl
cnRlcikpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcoJm1f
c291cmNlRm9ybWF0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgJmNvbnZlcnRlcikpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IgQXVkaW9Db252ZXJ0ZXJOZXcgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgbV9jb252ZXJ0ZXIgPSBjb252ZXJ0ZXI7CiAKICAg
ICBhdXRvIGNsZWFudXBJbkNhc2VPZkVycm9yID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAg
ICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBQQUw6OkF1ZGlv
Q29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CiAgICAgICAgIG1fY29udmVydGVyID0gbnVs
bHB0cjsKICAgICB9KTsKIAogICAgIHNpemVfdCBjb29raWVTaXplID0gMDsKLSAgICBjb25zdCB2
b2lkICpjb29raWUgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZShmb3Jt
YXREZXNjcmlwdGlvbiwgJmNvb2tpZVNpemUpOworICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IFBB
TDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRp
b24sICZjb29raWVTaXplKTsKICAgICBpZiAoY29va2llU2l6ZSkgewotICAgICAgICBpZiAoYXV0
byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0Nv
bnZlcnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29r
aWUpKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFBy
b3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29r
aWUsIChVSW50MzIpY29va2llU2l6ZSwgY29va2llKSkgewogICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGlu
ZyBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQi
LCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAK
ICAgICBzaXplID0gc2l6ZW9mKG1fc291cmNlRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1
cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgewor
ICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29u
dmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNp
emUsICZtX3NvdXJjZUZvcm1hdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFT
dHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0
ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE1OSw3ICsxNTgsNyBAQCBib29sIEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9y
bWF0RGVzY3JpcHRpb24oQwogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlv
bkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRp
b24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9
IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVy
dGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25G
b3JtYXQpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1
dFN0cmVhbURlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQpAQCAtMTY3LDE0ICsxNjYsMTQgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0
aW9uKEMKICAgICBpZiAobV9kZXN0aW5hdGlvbkZvcm1hdC5tRm9ybWF0SUQgPT0ga0F1ZGlvRm9y
bWF0TVBFRzRBQUMpIHsKICAgICAgICAgYm9vbCBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0
ZSA9IHRydWU7CiAgICAgICAgIGlmIChtX291dHB1dEJpdFJhdGUpIHsKLSAgICAgICAgICAgIGF1
dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b252ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXplb2YoKm1fb3V0cHV0Qml0UmF0ZSksICZtX291dHB1
dEJpdFJhdGUudmFsdWUoKSk7CisgICAgICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpBdWRpb0Nv
bnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRS
YXRlLCBzaXplb2YoKm1fb3V0cHV0Qml0UmF0ZSksICZtX291dHB1dEJpdFJhdGUudmFsdWUoKSk7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVC
aXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgc2hvdWxkU2V0RGVm
YXVsdE91dHB1dEJpdFJhdGUgPSAhIWVycm9yOwogICAgICAgICB9CiAgICAgICAgIGlmIChzaG91
bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSkgewogICAgICAgICAgICAgYXV0byBvdXRwdXRCaXRS
YXRlID0gZGVmYXVsdE91dHB1dEJpdFJhdGUobV9kZXN0aW5hdGlvbkZvcm1hdCk7CiAgICAgICAg
ICAgICBzaXplID0gc2l6ZW9mKG91dHB1dEJpdFJhdGUpOwotICAgICAgICAgICAgaWYgKGF1dG8g
ZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252
ZXJ0ZXJFbmNvZGVCaXRSYXRlLCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCisgICAgICAgICAgICBp
ZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZSwgJm91dHB1dEJpdFJhdGUpKQog
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcgZGVmYXVsdCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVC
aXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTgz
LDcgKzE4Miw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9D
b252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgICAgIC8vIElmIHRoZSBk
ZXN0aW5hdGlvbiBmb3JtYXQgaXMgVkJSLCB3ZSBuZWVkIHRvIGdldCBtYXggc2l6ZSBwZXIgcGFj
a2V0IGZyb20gdGhlIGNvbnZlcnRlci4KICAgICAgICAgc2l6ZSA9IHNpemVvZihtX21heE91dHB1
dFBhY2tldFNpemUpOwogCi0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJH
ZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0
cHV0UGFja2V0U2l6ZSwgJnNpemUsICZtX21heE91dHB1dFBhY2tldFNpemUpKSB7CisgICAgICAg
IGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVy
dGVyLCBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6
ZSwgJm1fbWF4T3V0cHV0UGFja2V0U2l6ZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1
ZGlvQ29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMjEx
LDYgKzIxMCw4IEBAIHNpemVfdCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNvbXB1dGVC
dWZmZXJTaXplRm9yQXVkaW9Gb3JtYXQoQXVkaW9TdHJlYW1CCiAKIHZvaWQgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZChDTVNhbXBsZUJ1ZmZl
clJlZiBidWZmZXIpCiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogICAgIGlmIChDTVRJ
TUVfSVNfSU5WQUxJRChtX3JlbWFpbmluZ1ByaW1lRHVyYXRpb24pKSB7CiAgICAgICAgIEF1ZGlv
Q29udmVydGVyUHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKICAgICAgICAgVUludDMyIHNp
emUgPSBzaXplb2YocHJpbWVJbmZvKTsKQEAgLTIzNiwyNSArMjM3LDI1IEBAIFJldGFpblB0cjxO
U051bWJlcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2RlclJlZnJl
c2hDb3VudCgpCiB7CiAgICAgVUludDMyIGRlbGF5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7CiAg
ICAgdWludDMyX3Qgb3JpZ2luYWxEZWxheU1vZGUgPSAwOwotICAgIGlmIChhdXRvIGVycm9yID0g
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0
eURlbGF5TW9kZSwgJmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgeworICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBr
QXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1v
ZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAg
ICB1aW50MzJfdCBvcHRpbWFsRGVsYXlNb2RlID0ga0F1ZGlvQ29kZWNEZWxheU1vZGVfT3B0aW1h
bDsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252
ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9wdGltYWxE
ZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0
UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5
U2l6ZSwgJm9wdGltYWxEZWxheU1vZGUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29k
ZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0
dXJuIG5pbDsKICAgICB9CiAKICAgICBVSW50MzIgcHJpbWVTaXplID0gc2l6ZW9mKEF1ZGlvQ29k
ZWNQcmltZUluZm8pOwogICAgIEF1ZGlvQ29kZWNQcmltZUluZm8gcHJpbWVJbmZvIHsgMCwgMCB9
OwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwgJnByaW1lSW5m
bykpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0
eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbywgJnByaW1lU2l6ZSwg
JnByaW1lSW5mbykpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5UHJp
bWVJbmZvIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAg
IH0KIAotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2lu
YWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVy
U2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRl
bGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRp
b0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAg
IHJldHVybiBuaWw7CiAgICAgfQpAQCAtMjY3LDE4ICsyNjgsMTggQEAgQ01TYW1wbGVCdWZmZXJS
ZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0
cyhVSW50MzIKICAgICBpZiAoIW1fZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlvbikgewogICAg
ICAgICBVSW50MzIgY29va2llU2l6ZSA9IDA7CiAKLSAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21w
cmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgTlVMTCk7CisgICAgICAgIGF1dG8gZXJy
b3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvKG1fY29udmVydGVyLCBrQXVk
aW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgTlVMTCk7CiAg
ICAgICAgIGlmICgoZXJyb3IgPT0gbm9FcnIpICYmICEhY29va2llU2l6ZSkgewogICAgICAgICAg
ICAgY29va2llLnJlc2l6ZShjb29raWVTaXplKTsKIAotICAgICAgICAgICAgaWYgKGF1dG8gZXJy
b3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0
ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llLCAmY29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3Bl
cnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llLCAm
Y29va2llU2l6ZSwgY29va2llLmRhdGEoKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5n
IGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCiAgICAgICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzdGluYXRpb25Gb3JtYXRE
ZXNjcmlwdGlvbjsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAs
IE5VTEwsIGNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1h
dERlc2NyaXB0aW9uKSkgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZtX2Rlc3RpbmF0aW9u
Rm9ybWF0LCAwLCBOVUxMLCBjb29raWVTaXplLCBjb29raWUuZGF0YSgpLCBOVUxMLCAmZGVzdGlu
YXRpb25Gb3JtYXREZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJl
dHVybiBuaWw7CiAgICAgICAgIH0KQEAgLTI5MCwyNiArMjkxLDI2IEBAIENNU2FtcGxlQnVmZmVy
UmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tl
dHMoVUludDMyCiAgICAgc2l6ZV90IGRhdGFTaXplID0gZmlsbEJ1ZmZlckxpc3QubUJ1ZmZlcnNb
MF0ubURhdGFCeXRlU2l6ZTsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXI7Ci0g
ICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtD
RkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBO
VUxMLCAwLCBkYXRhU2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxv
Y2tCdWZmZXIpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVh
dGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZGF0YVNpemUsIGtD
RkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXplLCBrQ01CbG9ja0J1ZmZlckFzc3Vy
ZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZl
ckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIG5pbDsKICAgICB9CiAgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKGJsb2NrQnVmZmVy
KTsKIAotICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMo
ZGF0YSwgYnVmZmVyLmdldCgpLCAwLCBkYXRhU2l6ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9
IFBBTDo6Q01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMoZGF0YSwgYnVmZmVyLmdldCgpLCAw
LCBkYXRhU2l6ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMg
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBidWZmZXIuZ2V0KCksIHRydWUsIE5VTEwsIE5VTEwsIG1fZGVzdGluYXRpb25Gb3Jt
YXREZXNjcmlwdGlvbi5nZXQoKSwgbnVtUGFja2V0cywgbV9jdXJyZW50TmF0aXZlUHJlc2VudGF0
aW9uVGltZVN0YW1wLCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zLmRhdGEoKSwgJnNh
bXBsZUJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNy
ZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdl
dCgpLCB0cnVlLCBOVUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24uZ2V0
KCksIG51bVBhY2tldHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCwgbV9k
ZXN0aW5hdGlvblBhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIpOwogICAg
IGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBh
Y2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICB9CiAKICAgICBpZiAoW21fZ2RyQ291bnROdW0gaW50VmFsdWVdKQotICAgICAg
ICBDTVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50
S2V5X0dyYWR1YWxEZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50
TnVtLmdldCgpLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOworICAgICAgICBQ
QUw6OkNNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIsIFBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0
YWNobWVudEtleV9HcmFkdWFsRGVjb2RlclJlZnJlc2gsIChfX2JyaWRnZSBDRlR5cGVSZWYpbV9n
ZHJDb3VudE51bS5nZXQoKSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKIAog
ICAgIHJldHVybiBzYW1wbGVCdWZmZXI7CiB9CkBAIC0zNDEsMjQgKzM0MiwyNCBAQCBPU1N0YXR1
cyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0
UGFja2V0cyhVSW50MzIqCiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJT
aXplID0gMDsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAoQ01CdWZm
ZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKKyAgICAgICAgICAgICAg
ICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkp
KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGF1dG8gc2Ft
cGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+
KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkp
KSk7Ci0gICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IENNU2FtcGxlQnVmZmVy
R2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAgIGF1dG8g
c2FtcGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9p
ZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVl
LmdldCgpKSkpKTsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKTsKICAgICAgICAg
ICAgICAgICBpZiAoIW1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIGZhaWxlZCIpOwogICAgICAgICAgICAgICAg
ICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgIG1f
Y3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbV9zYW1wbGVC
bG9ja0J1ZmZlclNpemUgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2Nr
QnVmZmVyLmdldCgpKTsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9
IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQo
KSk7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9
IDA7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChtX3NhbXBsZUJsb2NrQnVmZmVy
KSB7CiAgICAgICAgICAgICAgICAgc2l6ZV90IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYg
PSBzdGQ6Om1pbihudW1CeXRlc1RvQ29weSwgKG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplIC0gbV9j
dXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlcikpOwotICAgICAgICAgICAgICAgIGlmIChh
dXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZl
ci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0Nv
cHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNlQnVmZmVyLmRhdGEoKSArIGN1cnJlbnRPZmZzZXRJ
blNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6
OkNNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1f
Y3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBs
ZUJidWYsIChtX3NvdXJjZUJ1ZmZlci5kYXRhKCkgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZm
ZXIpKSkgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRl
cyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVy
cm9yOwogICAgICAgICAgICAgICAgIH0KQEAgLTM5MywyOCArMzk0LDI4IEBAIE9TU3RhdHVzIEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNr
ZXRzKFVJbnQzMioKICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eSht
X2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKFBBTDo6Q01CdWZmZXJR
dWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAgICAgICBi
cmVhazsKIAotICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBs
ZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRh
aW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgIG1fc2FtcGxlQmxv
Y2tCdWZmZXIgPSBhZG9wdENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihD
RlJldGFpbihDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkp
KSk7CisgICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVm
ZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0
YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgICAgICAgICBtX3NhbXBsZUJs
b2NrQnVmZmVyID0gYWRvcHRDRigoQ01CbG9ja0J1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4o
Q0ZSZXRhaW4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdl
dCgpKSkpKSk7CiAgICAgICAgICAgICBpZiAoIW1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIgZmFpbGVkIik7CiAgICAg
ICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgICAg
IG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZl
clNpemUgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdl
dCgpKSAvIDI7CisgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IFBBTDo6Q01C
bG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSkgLyAyOwog
ICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciA9IDA7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAg
c2l6ZV90IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1pbihudW1CeXRlc1Rv
Q29weSwgKG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplIC0gbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVC
bG9ja0J1ZmZlcikpOwotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVy
Q29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJ
blNhbXBsZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoZmlyc3RD
aGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAgIGlm
IChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJs
b2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBudW1C
eXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoZmlyc3RDaGFubmVsICsgY3VycmVudE9mZnNldElu
U291cmNlQnVmZmVyKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcyBmaXJzdCBjaGFubmVsIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBlcnJvcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChhdXRv
IGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5n
ZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2FtcGxlQmxvY2tC
dWZmZXJTaXplLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25kQ2hhbm5lbCAr
IGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZl
ci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciArIG1fc2FtcGxlQmxv
Y2tCdWZmZXJTaXplLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAoc2Vjb25kQ2hhbm5l
bCArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgc2Vjb25kIGNoYW5uZWwgZmFpbGVkIHdpdGggJWQi
LCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICAgICAgfQpA
QCAtNDM4LDYgKzQzOSw4IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKIAogdm9pZCBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRp
bWUoQ01UaW1lIGxvd1dhdGVyVGltZSkKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBG
b3IgQ01USU1FX0NPTVBBUkVfSU5MSU5FCisKICAgICBpZiAoIW1fY29udmVydGVyKSB7CiAgICAg
ICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTAxLDcgKzUwNCw3IEBAIHZvaWQgQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENN
VGltZSBsCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxl
QnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKLSAgICBhdXRvIGVycm9yID0gQ01C
dWZmZXJRdWV1ZUVucXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOworICAg
IGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVFbnF1ZXVlKG1faW5wdXRCdWZmZXJRdWV1
ZS5nZXQoKSwgYnVmZmVyKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFT
dHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUg
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGls
TG93V2F0ZXJUaW1lKG1fbG93V2F0ZXJUaW1lKTsKQEAgLTUyMCwxMiArNTIzLDEyIEBAIHZvaWQg
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZm
ZXJSZWYgYnVmZmVyKQogCiBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIChDTVNhbXBsZUJ1
ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRC
dWZmZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25z
dF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCkpKSk7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1
cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVy
UXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAg
IHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFM
OjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgp
KSkpKTsKIH0KIAogdW5zaWduZWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpiaXRSYXRl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmgKaW5kZXggZjVmODU1ODcxZmM3MDg1NjZmN2VmOGI5YTE2MWUyN2I4ZTVkODllZC4u
Yjc1NThkMjgwYzJlZjc5NjA2OGNhYzBjYzk2YjUwMzNkYzM3MDk3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKQEAgLTEyNyw4ICsx
MjcsOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBt
X3ZpZGVvRm9ybWF0RGVzY3JpcHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcj4gbV92aWRlb0NvbXByZXNzb3I7CiAgICAgUmV0YWluUHRyPEFWQXNz
ZXRXcml0ZXJJbnB1dD4gbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQ7Ci0gICAgQ01UaW1lIG1fbGFz
dFZpZGVvUHJlc2VudGF0aW9uVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07Ci0gICAgQ01UaW1lIG1f
bGFzdFZpZGVvRGVjb2RpbmdUaW1lIHsga0NNVGltZUludmFsaWQgfTsKKyAgICBDTVRpbWUgbV9s
YXN0VmlkZW9QcmVzZW50YXRpb25UaW1lOworICAgIENNVGltZSBtX2xhc3RWaWRlb0RlY29kaW5n
VGltZTsKICAgICBib29sIG1faGFzRW5jb2RlZFZpZGVvU2FtcGxlcyB7IGZhbHNlIH07CiAKICAg
ICBSZXRhaW5QdHI8V2ViQVZBc3NldFdyaXRlckRlbGVnYXRlPiBtX3dyaXRlckRlbGVnYXRlOwpA
QCAtMTM5LDkgKzEzOSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFN0b3BBZnRlckZs
dXNoaW5nU2FtcGxlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ZpcnN0VmlkZW9GcmFtZSB7IGZh
bHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gbV92aWRlb1RyYW5z
Zm9ybTsKLSAgICBDTVRpbWUgbV9yZXN1bWVkVmlkZW9UaW1lIHsga0NNVGltZVplcm8gfTsKLSAg
ICBDTVRpbWUgbV9jdXJyZW50VmlkZW9EdXJhdGlvbiB7IGtDTVRpbWVaZXJvIH07Ci0gICAgQ01U
aW1lIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSB7IGtDTVRpbWVaZXJvIH07CisgICAgQ01UaW1l
IG1fcmVzdW1lZFZpZGVvVGltZTsKKyAgICBDTVRpbWUgbV9jdXJyZW50VmlkZW9EdXJhdGlvbjsK
KyAgICBDTVRpbWUgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lOwogICAgIGRvdWJsZSBtX3RpbWVD
b2RlIHsgMCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IDYzYmQ2NTk4ZDAyYTVjNzAwNmRhOTI5ZmM5NGYxZjVm
NjZhNzE2ZGEuLjZhZDIwYmU4Y2I1NzkyM2EwZTc4NDJlMzcwMWQzM2E2YWEwM2FiNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
QEAgLTkzLDggKzkzLDYgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5h
bWVzcGFjZSBQQUw7Ci0KIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVv
LCBjb25zdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgYXV0
byB3cml0ZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKGhhc0F1
ZGlvLCBoYXNWaWRlbykpOwpAQCAtMTIyLDYgKzEyMCwxMSBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpjb21wcmVzc2VkQXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFjayh2b2lkICpt
ZWRpYQogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8pCiAgICAgOiBtX2hhc0F1ZGlvKGhhc0F1
ZGlvKQogICAgICwgbV9oYXNWaWRlbyhoYXNWaWRlbykKKyAgICAsIG1fbGFzdFZpZGVvUHJlc2Vu
dGF0aW9uVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKQorICAgICwgbV9sYXN0VmlkZW9EZWNvZGlu
Z1RpbWUoUEFMOjprQ01UaW1lSW52YWxpZCkKKyAgICAsIG1fcmVzdW1lZFZpZGVvVGltZShQQUw6
OmtDTVRpbWVaZXJvKQorICAgICwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbihQQUw6OmtDTVRpbWVa
ZXJvKQorICAgICwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKFBBTDo6a0NNVGltZVplcm8pCiB7
CiB9CiAKQEAgLTE3OSw3ICsxODIsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Ojpwcm9jZXNzTmV3Q29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycygpCiB7CiAgICAgQVNTRVJU
KG1faGFzVmlkZW8pOwogICAgIGlmICghbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uKSB7Ci0gICAg
ICAgIG1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVz
Y3JpcHRpb24obV92aWRlb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKKyAg
ICAgICAgbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKG1fdmlkZW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIo
KSk7CiAKICAgICAgICAgaWYgKG1faGFzQXVkaW8gJiYgIW1fYXVkaW9Gb3JtYXREZXNjcmlwdGlv
bikKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5Niw3ICsxOTksNyBAQCB2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjpwcm9jZXNzTmV3Q29tcHJlc3NlZEF1ZGlvU2FtcGxlQnVmZmVy
cygpCiB7CiAgICAgQVNTRVJUKG1faGFzQXVkaW8pOwogICAgIGlmICghbV9hdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKSB7Ci0gICAgICAgIG1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxl
QnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNh
bXBsZUJ1ZmZlcigpKTsKKyAgICAgICAgbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1fYXVkaW9Db21wcmVzc29yLT5nZXRP
dXRwdXRTYW1wbGVCdWZmZXIoKSk7CiAgICAgICAgIGlmIChtX2hhc1ZpZGVvICYmICFtX3ZpZGVv
Rm9ybWF0RGVzY3JpcHRpb24pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTIzOCw3ICsyNDEs
NyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3JpdGVyKCkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNlc3Np
b25BdFNvdXJjZVRpbWU6a0NNVGltZVplcm9dOworICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNl
c3Npb25BdFNvdXJjZVRpbWU6UEFMOjprQ01UaW1lWmVyb107CiAKICAgICBhcHBlbmRDb21wcmVz
c2VkU2FtcGxlQnVmZmVycygpOwogCkBAIC0zMDAsOCArMzAzLDggQEAgYm9vbCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVySWZQb3Nz
aWJsZSgpCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRDb21wcmVzc2Vk
VmlkZW9TYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogewogICAgIEFTU0VS
VChbbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQgaXNSZWFkeUZvck1vcmVNZWRpYURhdGFdKTsKLSAg
ICBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRh
dGlvblRpbWVTdGFtcChidWZmZXIpOwotICAgIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lID0gQ01T
YW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBtX2xhc3RWaWRlb1By
ZXNlbnRhdGlvblRpbWUgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0
YW1wKGJ1ZmZlcik7CisgICAgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKGJ1ZmZlcik7CiAgICAgbV9oYXNFbmNvZGVkVmlkZW9T
YW1wbGVzID0gdHJ1ZTsKIAogICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKSBhcHBl
bmRTYW1wbGVCdWZmZXI6YnVmZmVyXTsKQEAgLTMxNCwxNyArMzE3LDE3IEBAIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCkKIAog
c3RhdGljIGlubGluZSB2b2lkIGFwcGVuZEVuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uTWFya2Vy
KEFWQXNzZXRXcml0ZXJJbnB1dCAqYXNzZXRXcml0ZXJJbnB1dCwgQ01UaW1lIHByZXNlbnRhdGlv
blRpbWVTdGFtcCwgQ01UaW1lIGRlY29kaW5nVGltZVN0YW1wKQogewotICAgIENNU2FtcGxlVGlt
aW5nSW5mbyB0aW1pbmdJbmZvID0geyBrQ01UaW1lSW52YWxpZCwgcHJlc2VudGF0aW9uVGltZVN0
YW1wLCBkZWNvZGluZ1RpbWVTdGFtcH07CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0lu
Zm8gPSB7IFBBTDo6a0NNVGltZUludmFsaWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZGVjb2Rp
bmdUaW1lU3RhbXB9OwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyID0gTlVMTDsKLSAg
ICBhdXRvIGVycm9yID0gQ01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
TlVMTCwgdHJ1ZSwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5VTEws
ICZidWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIHRydWUsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEsICZ0
aW1pbmdJbmZvLCAwLCBOVUxMLCAmYnVmZmVyKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ciBhcHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlciBmYWlsZWQgQ01TYW1wbGVC
dWZmZXJDcmVhdGUgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoYnVmZmVyKTsKIAotICAgIENNU2V0QXR0YWNo
bWVudChzYW1wbGVCdWZmZXIuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5k
c1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtDRkJvb2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9k
ZV9TaG91bGRQcm9wYWdhdGUpOworICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZl
ci5nZXQoKSwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1Nh
bXBsZUR1cmF0aW9uLCBrQ0ZCb29sZWFuVHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJv
cGFnYXRlKTsKICAgICBpZiAoIVthc3NldFdyaXRlcklucHV0IGFwcGVuZFNhbXBsZUJ1ZmZlcjpz
YW1wbGVCdWZmZXIuZ2V0KCldKQogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZFNhbXBsZUJ1ZmZlciB0byB3cml0
ZXIgaW5wdXQgZmFpbGVkIik7CiB9CkBAIC0zODIsMTggKzM4NSwxOCBAQCB2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjpmbHVzaENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKEZ1bmN0aW9u
PHZvaWQoKT4mJgogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNv
cHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcChDTVNhbXBsZUJ1ZmZlclJlZiBvcmln
aW5hbEJ1ZmZlciwgQ01UaW1lIHN0YXJ0VGltZSkKIHsKICAgICBDTUl0ZW1Db3VudCBjb3VudCA9
IDA7Ci0gICAgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxC
dWZmZXIsIDAsIG5pbCwgJmNvdW50KTsKKyAgICBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCAwLCBuaWwsICZjb3VudCk7CiAKICAgICBW
ZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1lSW5mbyhjb3VudCk7Ci0gICAgQ01TYW1wbGVC
dWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIsIGNvdW50LCB0aW1l
SW5mby5kYXRhKCksICZjb3VudCk7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNv
dW50KTsKIAogICAgIGZvciAoYXV0byBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAg
dGltZUluZm9baV0uZGVjb2RlVGltZVN0YW1wID0ga0NNVGltZUludmFsaWQ7CisgICAgICAgIHRp
bWVJbmZvW2ldLmRlY29kZVRpbWVTdGFtcCA9IFBBTDo6a0NNVGltZUludmFsaWQ7CiAgICAgICAg
IHRpbWVJbmZvW2ldLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IHN0YXJ0VGltZTsKICAgICB9CiAK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChhdXRv
IGVycm9yID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1
ZmZlcikpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291
bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1ZmZlcikpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC00MDQsNyArNDA3LDcgQEAgdm9pZCBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1w
bGUmIHNhbXBsZSkKIHsKICAgICBpZiAoIW1fZmlyc3RWaWRlb0ZyYW1lKSB7CiAgICAgICAgIG1f
Zmlyc3RWaWRlb0ZyYW1lID0gdHJ1ZTsKLSAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gQ01D
bG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CisgICAgICAgIG1fcmVzdW1l
ZFZpZGVvVGltZSA9IFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVD
bG9jaygpKTsKICAgICAgICAgaWYgKHNhbXBsZS52aWRlb1JvdGF0aW9uKCkgIT0gTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246Ok5vbmUgfHwgc2FtcGxlLnZpZGVvTWlycm9yZWQoKSkgewogICAg
ICAgICAgICAgbV92aWRlb1RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVJvdGF0aW9u
KHN0YXRpY19jYXN0PGludD4oc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgKiBNX1BJIC8gMTgwKTsK
ICAgICAgICAgICAgIGlmIChzYW1wbGUudmlkZW9NaXJyb3JlZCgpKQpAQCAtNDEyLDggKzQxNSw4
IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVm
ZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvIHNh
bXBsZVRpbWUgPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRp
bWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICBzYW1wbGVUaW1lID0gQ01UaW1l
QWRkKHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOworICAgIGF1dG8gc2FtcGxl
VGltZSA9IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xv
Y2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgIHNhbXBsZVRp
bWUgPSBQQUw6OkNNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsK
ICAgICBpZiAoYXV0byBidWZmZXJXaXRoQ3VycmVudFRpbWUgPSBjb3B5U2FtcGxlQnVmZmVyV2l0
aEN1cnJlbnRUaW1lU3RhbXAoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxl
QnVmZmVyLCBzYW1wbGVUaW1lKSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNhbXBs
ZUJ1ZmZlcihidWZmZXJXaXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQpAQCAtNDIyLDcgKzQyNSw3
IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVm
ZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVy
ID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1
ZGlvU2FtcGxlVGltZSwgc2FtcGxlQ291bnQpKQogICAgICAgICBtX2F1ZGlvQ29tcHJlc3Nvci0+
YWRkU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7Ci0gICAgbV9jdXJyZW50QXVkaW9T
YW1wbGVUaW1lID0gQ01UaW1lQWRkKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgdG9DTVRpbWUo
TWVkaWFUaW1lKHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7CisgICAg
bV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVBZGQobV9jdXJyZW50QXVkaW9T
YW1wbGVUaW1lLCBQQUw6OnRvQ01UaW1lKE1lZGlhVGltZShzYW1wbGVDb3VudCwgZGVzY3JpcHRp
b24uc2FtcGxlUmF0ZSgpKSkpOwogfQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjpmaW5pc2hlZEZsdXNoaW5nU2FtcGxlcygpCkBAIC01MjMsMTAgKzUyNiwxMCBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjb21wbGV0ZUZldGNoRGF0YSgpCiB7CiAgICAgYXV0
byBjdXJyZW50VGltZUNvZGUgPSBtX3RpbWVDb2RlOwogICAgIGlmIChtX2hhc0F1ZGlvKQotICAg
ICAgICBtX3RpbWVDb2RlID0gQ01UaW1lR2V0U2Vjb25kcyhtX2N1cnJlbnRBdWRpb1NhbXBsZVRp
bWUpOworICAgICAgICBtX3RpbWVDb2RlID0gUEFMOjpDTVRpbWVHZXRTZWNvbmRzKG1fY3VycmVu
dEF1ZGlvU2FtcGxlVGltZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gc2FtcGxlVGltZSA9
IENNVGltZVN1YnRyYWN0KENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkp
LCBtX3Jlc3VtZWRWaWRlb1RpbWUpOwotICAgICAgICBtX3RpbWVDb2RlID0gQ01UaW1lR2V0U2Vj
b25kcyhDTVRpbWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbikpOworICAg
ICAgICBhdXRvIHNhbXBsZVRpbWUgPSBQQUw6OkNNVGltZVN1YnRyYWN0KFBBTDo6Q01DbG9ja0dl
dFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1l
KTsKKyAgICAgICAgbV90aW1lQ29kZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhQQUw6OkNNVGlt
ZUFkZChzYW1wbGVUaW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKSk7CiAgICAgfQogICAgIG1f
ZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRsZXIodGFrZURhdGEoKSwgY3VycmVudFRpbWVDb2RlKTsK
IH0KQEAgLTU1MCwxMyArNTUzLDEzIEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjp0YWtlRGF0YSgpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OnBhdXNlKCkKIHsKLSAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gQ01UaW1lU3Vi
dHJhY3QoQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1l
ZFZpZGVvVGltZSk7Ci0gICAgbV9jdXJyZW50VmlkZW9EdXJhdGlvbiA9IENNVGltZUFkZChyZWNv
cmRpbmdEdXJhdGlvbiwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CisgICAgYXV0byByZWNvcmRp
bmdEdXJhdGlvbiA9IFBBTDo6Q01UaW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6
OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgIG1f
Y3VycmVudFZpZGVvRHVyYXRpb24gPSBQQUw6OkNNVGltZUFkZChyZWNvcmRpbmdEdXJhdGlvbiwg
bV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OnJlc3VtZSgpCiB7Ci0gICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gQ01DbG9ja0dldFRp
bWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CisgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0g
UEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogfQog
CiBjb25zdCBTdHJpbmcmIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjptaW1lVHlwZSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmlu
ZGV4IDc2ZDU2ZDdiOGQxM2M3MmVhMzlmYzM0OTlkMTc5ODk5NzE3ZjBlNzguLmQwNzYwZjA3ZTM3
MDgxMjdmOWRlMmVmYWY5MmYwZTA3NzJmZDM4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCkBAIC0zNCwxMiArMzQsMTEgQEAKICNpbXBvcnQg
PFZpZGVvVG9vbGJveC9WVENvbXByZXNzaW9uU2Vzc2lvbi5oPgogI2ltcG9ydCA8d3RmL1NvZnRM
aW5raW5nLmg+CiAKKyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9y
dCA8cGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoU3RyaW5n
IG1pbWVUeXBlLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBj
YWxsYmFja09iamVjdCkKIHsKICAgICBhdXRvIHByb2ZpbGUgPSBQcm9maWxlOjpCYXNlbGluZTsK
QEAgLTY5LDcgKzY4LDcgQEAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IoQ01WaWRlb0NvZGVjVHlwZSBvdXRwdXQKIFZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiB7CiAgICAgaWYg
KG1fdnRTZXNzaW9uKSB7Ci0gICAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSht
X3Z0U2Vzc2lvbi5nZXQoKSk7CisgICAgICAgIFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25JbnZh
bGlkYXRlKG1fdnRTZXNzaW9uLmdldCgpKTsKICAgICAgICAgbV92dFNlc3Npb24gPSBudWxscHRy
OwogICAgIH0KIH0KQEAgLTc3LDEyICs3NiwxMiBAQCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6On5WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogYm9vbCBWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxs
YmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCiB7CiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBvdXRw
dXRCdWZmZXJRdWV1ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29y
dGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8g
ZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwg
UEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCks
ICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFT
dHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgdW5hYmxlIHRvIGNyZWF0ZSBidWZm
ZXIgcXVldWUgJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAg
bV9vdXRwdXRCdWZmZXJRdWV1ZSA9IG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIENNQnVmZmVyUXVl
dWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2Fs
bGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwg
a0NNVGltZVplcm8sIE5VTEwpOworICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2Vy
KG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NN
QnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBQQUw6OmtDTVRpbWVaZXJv
LCBOVUxMKTsKIAogICAgIG1faXNFbmNvZGluZyA9IHRydWU7CiAgICAgcmV0dXJuIHRydWU7CkBA
IC05NiwxMCArOTUsMTAgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNldEJp
dHNQZXJTZWNvbmQodW5zaWduZWQgYml0UmF0ZSkKIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjpmaW5pc2goKQogewogICAgIG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hT
eW5jKFt0aGlzXSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNv
bXBsZXRlRnJhbWVzKG1fdnRTZXNzaW9uLmdldCgpLCBrQ01UaW1lSW52YWxpZCk7CisgICAgICAg
IGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92
dFNlc3Npb24uZ2V0KCksIFBBTDo6a0NNVGltZUludmFsaWQpOwogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKIAotICAgICAgICBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0
cHV0QnVmZmVyUXVldWUuZ2V0KCkpOworICAgICAgICBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1
ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKIAogICAgICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKQEAgLTExNCw3ICsxMTMsNyBAQCB2
b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dmlkZW9Db21wcmVzc2lvbkNhbGxiYWNr
KHZvaWQgKnJlZkNvbiwgdm9pZCosCiAKICAgICBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
KmNvbXByZXNzb3IgPSBzdGF0aWNfY2FzdDxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IqPihy
ZWZDb24pOwogCi0gICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVFbnF1ZXVlKGNvbXByZXNz
b3ItPm1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9
IFBBTDo6Q01CdWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJRdWV1
ZS5nZXQoKSwgYnVmZmVyKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFT
dHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUg
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiB9CiAKQEAgLTEzMCw1MyArMTI5LDUzIEBAIENGU3Ry
aW5nUmVmIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dnRQcm9maWxlTGV2ZWwoKSBjb25z
dAogewogICAgIHN3aXRjaCAobV9wcm9maWxlKSB7CiAgICAgY2FzZSBQcm9maWxlOjpCYXNlbGlu
ZToKLSAgICAgICAgcmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZl
bDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0
b0xldmVsOwogICAgIGNhc2UgUHJvZmlsZTo6SGlnaDoKLSAgICAgICAgcmV0dXJuIGtWVFByb2Zp
bGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9m
aWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbDsKICAgICBjYXNlIFByb2ZpbGU6Ok1haW46Ci0g
ICAgICAgIHJldHVybiBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbDsKKyAgICAg
ICAgcmV0dXJuIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWw7CiAgICAg
fQogfQogCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9u
U2Vzc2lvbihDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24pCiB7
Ci0gICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvbkdldERpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24pOworICAgIENNVmlkZW9EaW1lbnNp
b25zIGRpbWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lv
bnMoZm9ybWF0RGVzY3JpcHRpb24pOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBOU0RpY3Rpb25h
cnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9IG5pbDsKICNlbHNlCi0gICAgTlNEaWN0aW9uYXJ5
ICplbmNvZGVyU3BlY2lmaWNhdGlvbnMgPSBAeyhfX2JyaWRnZSBOU1N0cmluZyAqKWtWVFZpZGVv
RW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rl
cjpAWUVTfTsKKyAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9IEB7KF9f
YnJpZGdlIE5TU3RyaW5nICopUEFMOjprVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJs
ZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXI6QFlFU307CiAjZW5kaWYKIAogICAgIFZU
Q29tcHJlc3Npb25TZXNzaW9uUmVmIHZ0U2Vzc2lvbjsKLSAgICBhdXRvIGVycm9yID0gVlRDb21w
cmVzc2lvblNlc3Npb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGltZW5zaW9ucy53aWR0
aCwgZGltZW5zaW9ucy5oZWlnaHQsIG1fb3V0cHV0Q29kZWNUeXBlLCAoX19icmlkZ2UgQ0ZEaWN0
aW9uYXJ5UmVmKWVuY29kZXJTcGVjaWZpY2F0aW9ucywgTlVMTCwgTlVMTCwgdmlkZW9Db21wcmVz
c2lvbkNhbGxiYWNrLCB0aGlzLCAmdnRTZXNzaW9uKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpW
VENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkaW1lbnNpb25z
LndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCwgbV9vdXRwdXRDb2RlY1R5cGUsIChfX2JyaWRnZSBD
RkRpY3Rpb25hcnlSZWYpZW5jb2RlclNwZWNpZmljYXRpb25zLCBOVUxMLCBOVUxMLCB2aWRlb0Nv
bXByZXNzaW9uQ2FsbGJhY2ssIHRoaXMsICZ2dFNlc3Npb24pOwogICAgIGlmIChlcnJvcikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuIE5POwogICAgIH0KICAgICBtX3Z0U2Vzc2lvbiA9IGFkb3B0
Q0YodnRTZXNzaW9uKTsKIAotICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNl
c3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJvb2xl
YW5UcnVlKTsKKyAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdl
dCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsIGtDRkJvb2xlYW5U
cnVlKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Np
b25Qcm9wZXJ0eUtleV9SZWFsVGltZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBlcnJv
ciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgbV9tYXhL
ZXlGcmFtZUludGVydmFsRHVyYXRpb24pOworICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNz
aW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRlcnZhbER1
cmF0aW9uKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24gZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7Ci0gICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eSht
X3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1l
UmF0ZSwgbV9leHBlY3RlZEZyYW1lUmF0ZSk7CisgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNl
c3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9F
eHBlY3RlZEZyYW1lUmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAotICAgIGVycm9yID0g
VlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfUHJvZmlsZUxldmVsLCB2dFByb2ZpbGVMZXZlbCgpKTsKKyAgICBlcnJvciA9IFZU
U2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9u
UHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCB2dFByb2ZpbGVMZXZlbCgpKTsKICAgICBpZiAoZXJy
b3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZmFpbGVkIHdpdGggJWQgZm9yIHByb2ZpbGUgJWQiLCBlcnJv
ciwgbV9wcm9maWxlKTsKICAgICAgICAgaWYgKG1fcHJvZmlsZSAhPSBQcm9maWxlOjpCYXNlbGlu
ZSkgewotICAgICAgICAgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lv
bi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIGtWVFByb2Zp
bGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCk7CisgICAgICAgICAgICBlcnJvciA9IFZU
U2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9u
UHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2Vs
aW5lX0F1dG9MZXZlbCk7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwg
TWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRTZXNzaW9uU2V0UHJv
cGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZmFpbGVkIHdpdGgg
JWQgZm9yIGRlZmF1bHQgcHJvZmlsZSIsIGVycm9yKTsKICAgICAgICAgfQogICAgIH0KIAogICAg
IGlmIChtX291dHB1dEJpdFJhdGUpIHsKLSAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNl
c3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9BdmVyYWdlQml0UmF0ZSwgKm1fb3V0cHV0Qml0UmF0ZSk7CisgICAgICAgIGVycm9yID0gc2V0
Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgKm1fb3V0cHV0Qml0UmF0ZSk7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblBy
b3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgIH0K
IAotICAgIGVycm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMo
bV92dFNlc3Npb24uZ2V0KCkpOworICAgIGVycm9yID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lv
blByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7CiAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogCiAgICAgcmV0dXJuIFlFUzsKQEAgLTE4NSwxNCArMTg0LDE0IEBAIGJv
b2wgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvCiB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7CiAgICAgaWYg
KCFtX3Z0U2Vzc2lvbikgewotICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Npb24oQ01T
YW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihidWZmZXIpKSkKKyAgICAgICAgaWYgKCFp
bml0Q29tcHJlc3Npb25TZXNzaW9uKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihidWZmZXIpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGlt
YWdlQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihidWZmZXIpOwotICAgIGF1
dG8gcHJlc2VudGF0aW9uVGltZVN0YW1wID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25U
aW1lU3RhbXAoYnVmZmVyKTsKLSAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRE
dXJhdGlvbihidWZmZXIpOwotICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkVu
Y29kZUZyYW1lKG1fdnRTZXNzaW9uLmdldCgpLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGlt
ZVN0YW1wLCBkdXJhdGlvbiwgTlVMTCwgdGhpcywgTlVMTCk7CisgICAgYXV0byBpbWFnZUJ1ZmZl
ciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihidWZmZXIpOworICAgIGF1dG8g
cHJlc2VudGF0aW9uVGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlv
blRpbWVTdGFtcChidWZmZXIpOworICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVm
ZmVyR2V0RHVyYXRpb24oYnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpWVENvbXByZXNz
aW9uU2Vzc2lvbkVuY29kZUZyYW1lKG1fdnRTZXNzaW9uLmdldCgpLCBpbWFnZUJ1ZmZlciwgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwgTlVMTCwgdGhpcywgTlVMTCk7CiAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUgZmFpbGVkIHdpdGggJWQi
LCBlcnJvcik7CiB9CiAKQEAgLTIwOCwxMiArMjA3LDEyIEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQog
CiBDTVNhbXBsZUJ1ZmZlclJlZiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdldE91dHB1
dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3Rf
Y2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQo
KSkpKTsKKyAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQ
QUw6OkNNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CiB9
CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4gYWRvcHRDRigoQ01T
YW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5k
UmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgIHJldHVybiBhZG9wdENG
KChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVl
RGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKIH0KIAogdW5z
aWduZWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpiaXRSYXRlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0LmNwcAppbmRleCBjM2ZlODIxYjljNTIwYzkyMjRlNWRlODg4ZTUxOGMzMTk2ZjMx
Y2I1Li5hMDI0MDg0YzI0ZTZkMzYzOTYwOGE2NDY1MmVjYzVkNmQ5ZWZhYzY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXIuaCIKICNlbmRpZgogCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJv
eFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEyMyw5ICsxMjQsOSBAQCB2b2lkIExvY2FsQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0KCkKICAgICBpZiAoIW1fcmVt
b3RlSU9Vbml0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
T3V0cHV0VW5pdFN0YXJ0KG1fcmVtb3RlSU9Vbml0KSkgeworICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX3JlbW90ZUlPVW5pdCkpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQ6OnN0YXJ0IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCwgZXJyb3IgPSAlZCIs
IGVycm9yKTsKLSAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJ
T1VuaXQpOworICAgICAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVt
b3RlSU9Vbml0KTsKICAgICAgICAgbV9yZW1vdGVJT1VuaXQgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMTM5LDExICsxNDAsMTEgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKG1faXNTdGFydGVkKSB7Ci0gICAgICAgIEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9y
ZW1vdGVJT1VuaXQpOworICAgICAgICBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJ
T1VuaXQpOwogICAgICAgICBtX2lzU3RhcnRlZCA9IGZhbHNlOwogICAgIH0KIAotICAgIEF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKKyAgICBQQUw6OkF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKICAgICBtX3JlbW90ZUlP
VW5pdCA9IG51bGxwdHI7CiB9CiAKQEAgLTE2MywxNCArMTY0LDE0IEBAIHZvaWQgTG9jYWxBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZO
ZWVkZWQoKQogICAgIGlvVW5pdERlc2NyaXB0aW9uLmNvbXBvbmVudFN1YlR5cGUgPSBrQXVkaW9V
bml0U3ViVHlwZV9EZWZhdWx0T3V0cHV0OwogI2VuZGlmCiAKLSAgICBBdWRpb0NvbXBvbmVudCBp
b0NvbXBvbmVudCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2Ny
aXB0aW9uKTsKKyAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IFBBTDo6QXVkaW9Db21w
b25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOwogICAgIEFTU0VSVChp
b0NvbXBvbmVudCk7CiAgICAgaWYgKCFpb0NvbXBvbmVudCkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBmaW5kIHJlbW90ZSBJTyB1bml0IGNvbXBvbmVu
dCIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBlcnJvciA9IEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQsICZyZW1vdGVJT1VuaXQpOworICAgIGF1dG8g
ZXJyb3IgPSBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQsICZyZW1v
dGVJT1VuaXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRl
QXVkaW9Vbml0IHVuYWJsZSB0byBvcGVuIHZwaW8gdW5pdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTc4LDcgKzE3OSw3IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQo
KQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBVSW50MzIgcGFyYW0gPSAxOwotICAg
IGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRV
bml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICZwYXJhbSwg
c2l6ZW9mKHBhcmFtKSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJl
bW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0
U2NvcGVfT3V0cHV0LCAwLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnJvcikg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBlbmFibGUg
dnBpbyB1bml0IG91dHB1dCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTg3LDcgKzE4OCw3IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0SWZOZWVkZWQoKQogCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIGlmIChtX2RldmljZUlEKSB7Ci0gICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERl
dmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2Rl
dmljZUlEKSk7CisgICAgICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1v
dGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9V
bml0U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKICAg
ICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9V
bml0IHVuYWJsZSB0byBzZXQgdW5pdCBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIChp
bnQpbV9kZXZpY2VJRCwgKGludCllcnJvciwgKGNoYXIqKSZlcnJvcik7CiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0xOTYsMTQgKzE5NywxNCBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKICNlbmRp
ZgogCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFjayA9IHsgTG9jYWxBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6cmVuZGVyaW5nQ2FsbGJhY2ssIHRo
aXMgfTsKLSAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1
ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFs
LCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOworICAgIGVycm9yID0gUEFMOjpBdWRp
b1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5k
ZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2Yo
Y2FsbGJhY2spKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVycm9yID0g
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBVSW50MzIgc2l6ZSA9
IHNpemVvZihvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKTsKLSAgICBlcnJv
ciAgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0
eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJm91dHB1dERlc2NyaXB0
aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksICZzaXplKTsKKyAgICBlcnJvciAgPSBQQUw6OkF1ZGlv
VW5pdEdldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFt
RGVzY3JpcHRpb24oKSwgJnNpemUpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwg
ZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjExLDEzICsyMTIsMTMg
QEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0Ojpj
cmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICAgICBvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1E
ZXNjcmlwdGlvbigpLm1TYW1wbGVSYXRlID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
c2FtcGxlUmF0ZSgpOwogCi0gICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJ
T1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9J
bnB1dCwgMCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIHNpemVvZihv
dXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKSk7CisgICAgZXJyb3IgPSBQQUw6
OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0
cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24u
c3RyZWFtRGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2Ny
aXB0aW9uKCkpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yID0gJWQi
LCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBlcnJvciA9IEF1ZGlvVW5p
dEluaXRpYWxpemUocmVtb3RlSU9Vbml0KTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0SW5p
dGlhbGl6ZShyZW1vdGVJT1VuaXQpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdDo6Y3JlYXRlQXVkaW9Vbml0IEF1ZGlvVW5pdEluaXRpYWxpemUoKSBmYWlsZWQsIGVycm9y
ID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5tbQppbmRleCA0Yjc4OGFlNWFhODdiNzI5ZTViZGNmOWNmNzEzODEyYzY3NzBhMzI1Li40ODVl
NGNlNGM2ZDhjMzI0NWI3NzlkNjFhNjc2Y2JiYjk3YmFkOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLm1tCkBAIC01MSw3ICs1MSw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlh
U29mdExpbmsuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2Ug
UEFMOwogCiBAaW50ZXJmYWNlIFdlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVyIDog
TlNPYmplY3Q8QVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0U2FtcGxlQnVmZmVyRGVsZWdhdGU+IHsK
ICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZSogbV9jYWxsYmFjazsKQEAgLTM1MSwxMCArMzUwLDEw
IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRl
KCkKICAgICAgICAgICAgIGlmIChmcmFtZVJhdGVSYW5nZSkgewogICAgICAgICAgICAgICAgIG1f
Y3VycmVudEZyYW1lUmF0ZSA9IGNsYW1wVG8obV9jdXJyZW50RnJhbWVSYXRlLCBmcmFtZVJhdGVS
YW5nZS5taW5GcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lUmF0ZSk7CiAKLSAgICAg
ICAgICAgICAgICBhdXRvIGZyYW1lRHVyYXRpb24gPSBDTVRpbWVNYWtlKDEsIG1fY3VycmVudEZy
YW1lUmF0ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKENNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlv
biwgZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbikgPCAwKQorICAgICAgICAgICAgICAg
IGF1dG8gZnJhbWVEdXJhdGlvbiA9IFBBTDo6Q01UaW1lTWFrZSgxLCBtX2N1cnJlbnRGcmFtZVJh
dGUpOworICAgICAgICAgICAgICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlv
biwgZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbikgPCAwKQogICAgICAgICAgICAgICAg
ICAgICBmcmFtZUR1cmF0aW9uID0gZnJhbWVSYXRlUmFuZ2UubWluRnJhbWVEdXJhdGlvbjsKLSAg
ICAgICAgICAgICAgICBlbHNlIGlmIChDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1l
UmF0ZVJhbmdlLm1heEZyYW1lRHVyYXRpb24pID4gMCkKKyAgICAgICAgICAgICAgICBlbHNlIGlm
IChQQUw6OkNNVGltZUNvbXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJh
bWVEdXJhdGlvbikgPiAwKQogICAgICAgICAgICAgICAgICAgICBmcmFtZUR1cmF0aW9uID0gZnJh
bWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlvbjsKIAogICAgICAgICAgICAgICAgIEFMV0FZU19M
T0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJzZXR0aW5nIGZyYW1lIHJhdGUgdG8g
IiwgbV9jdXJyZW50RnJhbWVSYXRlLCAiLCBkdXJhdGlvbiAiLCBQQUw6OnRvTWVkaWFUaW1lKGZy
YW1lRHVyYXRpb24pKTsKQEAgLTQxOCw3ICs0MTcsNyBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291
cmNlOjpzZXR1cFNlc3Npb24oKQogCiAgICAgbV9zZXNzaW9uID0gYWRvcHROUyhbUEFMOjphbGxv
Y0FWQ2FwdHVyZVNlc3Npb25JbnN0YW5jZSgpIGluaXRdKTsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgIEFWQ2FwdHVyZVNlc3Npb25TZXRBdXRob3JpemVkVG9Vc2VDYW1lcmFJbk11bHRp
cGxlRm9yZWdyb3VuZEFwcExheW91dChtX3Nlc3Npb24uZ2V0KCkpOworICAgIFBBTDo6QVZDYXB0
dXJlU2Vzc2lvblNldEF1dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5kQXBw
TGF5b3V0KG1fc2Vzc2lvbi5nZXQoKSk7CiAjZW5kaWYKICAgICBbbV9zZXNzaW9uIGFkZE9ic2Vy
dmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJydW5uaW5nIiBvcHRpb25zOk5T
S2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDoodm9pZCAqKW5pbF07CiAKQEAgLTQz
NCw2ICs0MzMsOCBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24oKQog
CiBBVkZyYW1lUmF0ZVJhbmdlKiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkZv
ckZyYW1lUmF0ZShkb3VibGUgcmF0ZSkKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBG
b3IgQ01USU1FX0NPTVBBUkVfSU5MSU5FCisKICAgICBBVkZyYW1lUmF0ZVJhbmdlICpiZXN0RnJh
bWVSYXRlUmFuZ2UgPSBuaWw7CiAgICAgZm9yIChBVkZyYW1lUmF0ZVJhbmdlICpmcmFtZVJhdGVS
YW5nZSBpbiBbW2RldmljZSgpIGFjdGl2ZUZvcm1hdF0gdmlkZW9TdXBwb3J0ZWRGcmFtZVJhdGVS
YW5nZXNdKSB7CiAgICAgICAgIGlmIChmcmFtZVJhdGVSYW5nZUluY2x1ZGVzUmF0ZSh7IFtmcmFt
ZVJhdGVSYW5nZSBtaW5GcmFtZVJhdGVdLCBbZnJhbWVSYXRlUmFuZ2UgbWF4RnJhbWVSYXRlXSB9
LCByYXRlKSkgewpAQCAtNTk4LDcgKzU5OSw3IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OmdlbmVyYXRlUHJlc2V0cygpCiAgICAgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+IHByZXNldHM7
CiAgICAgZm9yIChBVkNhcHR1cmVEZXZpY2VGb3JtYXQqIGZvcm1hdCBpbiBbZGV2aWNlKCkgZm9y
bWF0c10pIHsKIAotICAgICAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXQuZm9ybWF0RGVzY3JpcHRpb24p
OworICAgICAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CiAg
ICAgICAgIEludFNpemUgc2l6ZSA9IHsgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWln
aHQgfTsKICAgICAgICAgYXV0byBpbmRleCA9IHByZXNldHMuZmluZE1hdGNoaW5nKFsmc2l6ZV0o
YXV0byYgcHJlc2V0KSB7CiAgICAgICAgICAgICByZXR1cm4gc2l6ZSA9PSBwcmVzZXQtPnNpemU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKaW5kZXggNmUyNmM4ZmE0ZWNkMzBh
YzFlNTJmZWMzOGFmNTdkMGUzM2Q5YmMyNC4uZTE1NTQ2MmY1MTgxNTg4YmEzYmM5NDU2YzZiNmFl
OWFmZTIxYjVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcApAQCAtMTks
NyArMTksNyBAQAogICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogKElOQ0xVRElORyBORUdMSUdFUEFMOjpOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIApAQCAt
MzYsNyArMzYsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBib29sIGdl
dERldmljZUluZm8odWludDMyX3QgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUg
dHlwZSwgU3RyaW5nJiBwZXJzaXN0ZW50SUQsIFN0cmluZyYgbGFiZWwpCiB7CkBAIC0yMDUsNyAr
MjA0LDcgQEAgUmV0YWluUHRyPENNQ2xvY2tSZWY+IENvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRl
dmljZUNsb2NrKCkKICAgICAgICAgcmV0dXJuIG1fZGV2aWNlQ2xvY2s7CiAKICAgICBDTUNsb2Nr
UmVmIGNsb2NrOwotICAgIGF1dG8gZXJyID0gQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIHBlcnNpc3RlbnRJZCgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZj
bG9jayk7CisgICAgYXV0byBlcnIgPSBQQUw6OkNNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBwZXJzaXN0ZW50SWQoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAm
Y2xvY2spOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRD
LCAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKCVwKSBD
TUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhp
cywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMDNmM2U2MmEyNjM3YzNlOTAxYmFm
Njk0ZDNjNTI2NWVmYTc0YWViMi4uZjRiMzY1ODk0ZDM3Y2Q5NGZmMjFiN2ZiNTRmZGIyNjQxZjM2
ZmU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDgsNiArNDgs
OCBAQAogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2luY2x1ZGUgPHBhbC9j
Zi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTU3LDcgKzU5LDYgQEAKICNl
bmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYg
UExBVEZPUk0oTUFDKQogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKQpAQCAtMjAzLDcgKzIwNCw3IEBAIE9TU3Rh
dHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICBtX0RUU0NvbnZl
cnNpb25SYXRpbyA9IDFlLTkgKiBzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5udW1l
cikgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWViYXNlSW5mby5kZW5vbSk7CiAKICAgICBBdWRp
b0NvbXBvbmVudERlc2NyaXB0aW9uIGlvVW5pdERlc2NyaXB0aW9uID0geyBrQXVkaW9Vbml0VHlw
ZV9PdXRwdXQsIGtBdWRpb1VuaXRTdWJUeXBlX1ZvaWNlUHJvY2Vzc2luZ0lPLCBrQXVkaW9Vbml0
TWFudWZhY3R1cmVyX0FwcGxlLCAwLCAwIH07Ci0gICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25l
bnQgPSBBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7
CisgICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25lbnQgPSBQQUw6OkF1ZGlvQ29tcG9uZW50Rmlu
ZE5leHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKICAgICBBU1NFUlQoaW9Db21wb25l
bnQpOwogICAgIGlmICghaW9Db21wb25lbnQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0
byBmaW5kIHZwaW8gdW5pdCBjb21wb25lbnQiLCB0aGlzKTsKQEAgLTIxMiw3ICsyMTMsNyBAQCBP
U1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICNpZiAhTE9H
X0RJU0FCTEVECiAgICAgQ0ZTdHJpbmdSZWYgbmFtZSA9IG51bGxwdHI7Ci0gICAgQXVkaW9Db21w
b25lbnRDb3B5TmFtZShpb0NvbXBvbmVudCwgJm5hbWUpOworICAgIFBBTDo6QXVkaW9Db21wb25l
bnRDb3B5TmFtZShpb0NvbXBvbmVudCwgJm5hbWUpOwogICAgIGlmIChuYW1lKSB7CiAgICAgICAg
IG1faW9Vbml0TmFtZSA9IG5hbWU7CiAgICAgICAgIENGUmVsZWFzZShuYW1lKTsKQEAgLTIyMCw3
ICsyMjEsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgp
CiAgICAgfQogI2VuZGlmCiAKLSAgICBhdXRvIGVyciA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VO
ZXcoaW9Db21wb25lbnQsICZtX2lvVW5pdCk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlvQ29t
cG9uZW50SW5zdGFuY2VOZXcoaW9Db21wb25lbnQsICZtX2lvVW5pdCk7CiAgICAgaWYgKGVycikg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0
OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIG9wZW4gdnBpbyB1bml0LCBlcnJvciAlZCAo
JS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJy
OwpAQCAtMjI4LDEzICsyMjksMTMgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0
dXBBdWRpb1VuaXQoKQogCiAgICAgaWYgKCFlbmFibGVFY2hvQ2FuY2VsbGF0aW9uKCkpIHsKICAg
ICAgICAgdWludDMyX3QgcGFyYW0gPSAwOwotICAgICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9w
ZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJvY2Vzc2luZ0VuYWJsZUFH
Qywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFt
KSk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtB
VVZvaWNlSU9Qcm9wZXJ0eV9Wb2ljZVByb2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1VuaXRTY29w
ZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgICAgICBpZiAo
ZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9T
aGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIGF1dG9tYXRp
YyBnYWluIGNvbnRyb2wsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciop
JmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgICAgICB9CiAgICAgICAgIHBhcmFt
ID0gMTsKLSAgICAgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZv
aWNlSU9Qcm9wZXJ0eV9CeXBhc3NWb2ljZVByb2Nlc3NpbmcsIGtBdWRpb1VuaXRTY29wZV9HbG9i
YWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgICAgICBlcnIgPSBQQUw6
OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfQnlwYXNz
Vm9pY2VQcm9jZXNzaW5nLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFt
LCBzaXplb2YocGFyYW0pKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQo
JXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IGVjaG8gY2FuY2VsbGF0aW9uLCBlcnJvciAlZCAo
JS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJu
IGVycjsKQEAgLTI0Myw3ICsyNDQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVpbnQzMl90
IHBhcmFtID0gMTsKLSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1
ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlu
cHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsK
ICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gZW5hYmxlIHZwaW8g
dW5pdCBpbnB1dCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJy
KTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTI1NSw3ICsyNTYsNyBAQCBPU1N0YXR1cyBDb3Jl
QXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgICAgICAgICByZXR1cm4gZXJy
OwogICAgIH0KIAotICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVk
aW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2Jh
bCwgaW5wdXRCdXMsICZtX2NhcHR1cmVEZXZpY2VJRCwgc2l6ZW9mKG1fY2FwdHVyZURldmljZUlE
KSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlv
T3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWws
IGlucHV0QnVzLCAmbV9jYXB0dXJlRGV2aWNlSUQsIHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCkp
OwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1
bml0IGNhcHR1cmUgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KW1f
Y2FwdHVyZURldmljZUlELCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4g
ZXJyOwpAQCAtMjcwLDcgKzI3MSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNl
dHVwQXVkaW9Vbml0KCkKICAgICBpZiAoZXJyKQogICAgICAgICByZXR1cm4gZXJyOwogCi0gICAg
ZXJyID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShtX2lvVW5pdCk7CisgICAgZXJyID0gUEFMOjpBdWRp
b1VuaXRJbml0aWFsaXplKG1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0
KCVwKSBBdWRpb1VuaXRJbml0aWFsaXplKCkgZmFpbGVkLCBlcnJvciAlZCAoJS40cykiLCB0aGlz
LCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjkyLDcg
KzI5Myw3IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6dW5kdWNrKCkKIE9TU3RhdHVzIENv
cmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKIHsKICAgICBBVVJl
bmRlckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBtaWNyb3Bob25lQ2FsbGJhY2ssIHRoaXMg
fTsKLSAgICBhdXRvIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9P
dXRwdXRVbml0UHJvcGVydHlfU2V0SW5wdXRDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2Jh
bCwgaW5wdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgYXV0byBlcnIg
PSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJv
cGVydHlfU2V0SW5wdXRDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMs
ICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVN
aWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgbWljIHByb2MsIGVycm9y
ICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVy
biBlcnI7CkBAIC0zMDEsMTQgKzMwMiwxNCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0
Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uIG1pY3JvcGhvbmVQcm9jRm9ybWF0ID0geyB9OwogCiAgICAgVUludDMyIHNpemUgPSBzaXpl
b2YobWljcm9waG9uZVByb2NGb3JtYXQpOwotICAgIGVyciA9IEF1ZGlvVW5pdEdldFByb3BlcnR5
KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7CisgICAg
ZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNy
b3Bob25lUHJvY0Zvcm1hdCwgJnNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9w
aG9uZVByb2MoJXApIHVuYWJsZSB0byBnZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVk
ICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBl
cnI7CiAgICAgfQogCiAgICAgbWljcm9waG9uZVByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1w
bGVSYXRlKCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRp
b1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0
QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsIHNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9V
bml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQs
IGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQs
IHNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRD
LCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXApIHVuYWJs
ZSB0byBzZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChp
bnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0zMjMsNyArMzI0
LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVBy
b2MoKQogT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2Mo
KQogewogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IHNwZWFrZXJDYWxs
YmFjaywgdGhpcyB9OwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1Vu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3Bl
X0lucHV0LCBvdXRwdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CisgICAgYXV0
byBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJv
cGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVz
LCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJl
U3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJy
b3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0
dXJuIGVycjsKQEAgLTMzMiwxNCArMzMzLDE0IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24gc3BlYWtlclByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihz
cGVha2VyUHJvY0Zvcm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1Vu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1
dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBQQUw6
OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9y
bWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5h
YmxlIHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAo
aW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAogICAg
IHNwZWFrZXJQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOwotICAgIGVyciA9
IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9y
bWF0LCBzaXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQs
IG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9ybWF0LCBzaXplKTsKICAgICBpZiAoZXJyKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNv
bmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQs
IGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAg
IHJldHVybiBlcnI7CkBAIC00NTksNyArNDYwLDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0
OjpjbGVhbnVwQXVkaW9Vbml0KCkKICAgICB9CiAKICAgICBpZiAobV9pb1VuaXQpIHsKLSAgICAg
ICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9pb1VuaXQpOworICAgICAgICBQQUw6
OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1faW9Vbml0KTsKICAgICAgICAgbV9pb1Vu
aXQgPSBudWxscHRyOwogICAgIH0KIApAQCAtNDc3LDcgKzQ3OCw3IEBAIE9TU3RhdHVzIENvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBpZiAobV9pb1VuaXRTdGFydGVkKSB7Ci0gICAgICAgIGVyciA9IEF1ZGlvT3V0cHV0
VW5pdFN0b3AobV9pb1VuaXQpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0
b3AobV9pb1VuaXQpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZUF1ZGlvVW5p
dCglcCkgQXVkaW9PdXRwdXRVbml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0
aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAg
LTQ5MCw3ICs0OTEsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpyZWNvbmZpZ3Vy
ZUF1ZGlvVW5pdCgpCiAgICAgICAgIHJldHVybiBlcnI7CiAKICAgICBpZiAobV9pb1VuaXRTdGFy
dGVkKSB7Ci0gICAgICAgIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKKyAg
ICAgICAgZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CiAgICAgICAg
IGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1dFVuaXRT
dGFydCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIq
KSZlcnIpOwogICAgICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTUxNCw3ICs1MTUsNyBAQCBPU1N0
YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzdGFydEludGVybmFsKCkKIAogICAgIHVuZHVjaygp
OwogCi0gICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOworICAgIGVyciA9
IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3Rh
cnQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIs
IHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIGNsZWFudXBBdWRpb1VuaXQo
KTsKQEAgLTU1MSw3ICs1NTIsNyBAQCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0b3BJbnRl
cm5hbCgpCiAgICAgaWYgKCFtX2lvVW5pdCB8fCAhbV9pb1VuaXRTdGFydGVkKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBhdXRvIGVyciA9IEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9pb1VuaXQpOwor
ICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKICAgICBp
ZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1No
YXJlZFVuaXQ6OnN0b3AoJXApIEF1ZGlvT3V0cHV0VW5pdFN0b3AgZmFpbGVkIHdpdGggZXJyb3Ig
JWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtNTY1LDcgKzU2Niw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1
bHRJbnB1dERldmljZSh1aW50MzJfdCogZGV2aWNlSUQpCiAgICAgQVNTRVJUKG1faW9Vbml0KTsK
IAogICAgIFVJbnQzMiBwcm9wZXJ0eVNpemUgPSBzaXplb2YoKmRldmljZUlEKTsKLSAgICBhdXRv
IGVyciA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJv
cGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsIGRl
dmljZUlELCAmcHJvcGVydHlTaXplKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0
UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNl
LCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0eVNp
emUpOwogICAgIGlmIChlcnIpCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSglcCkgdW5hYmxlIHRvIGdldCBk
ZWZhdWx0IGlucHV0IGRldmljZSBJRCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIs
IChjaGFyKikmZXJyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3Bw
CmluZGV4IDNmNGU0ZGNmNDJjMGZhOTNlZjlhYjYyZGQyMmE5N2M1MTM4NzA2NjMuLjU4MmY0YjI2
Y2YxMThjNDk3MWFjZDdkMTgzMDkyMTk3ZTFlNzY4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYS5jcHAKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNsdWRlICJDb3JlVmlk
ZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFM
OwogCiBDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVh
dGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5kZXggYWE3ZmYwODc1
MDU0MjU4MmYxZWY5MTY3YTgxZTZmYjVhNTQ4ZjE1Mi4uYjg2YjA1ZThjNjY1YmMyZTgwNWYyN2Iz
OGIxYTRmZDMzMTNmOTJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAgLTQ0LDE0
ICs0NCwxMCBAQAogI2ltcG9ydCA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CiAjaW1w
b3J0IDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KIAorI2ltcG9ydCA8cGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4K
IAotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi0KLVNPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlv
Q29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRp
b0NvbnZlcnRlcikpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7
CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IGFsaWduVG8xNkJ5dGVzKHNpemVfdCBzaXplKQogewpA
QCAtMjIxLDcgKzIxNyw3IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUo
KQogICAgIG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+
KG1fc3RyZWFtRm9ybWF0LCBtX21heGltaXVtRnJhbWVDb3VudCk7CiAKICAgICBDTUZvcm1hdERl
c2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIENNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZShOVUxMLCAmbV9zdHJlYW1Gb3JtYXQsIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEws
ICZmb3JtYXREZXNjcmlwdGlvbik7CisgICAgUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUoTlVMTCwgJm1fc3RyZWFtRm9ybWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9y
bWF0RGVzY3JpcHRpb24pOwogICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1h
dERlc2NyaXB0aW9uKTsKIAogICAgIHNpemVfdCBzYW1wbGVDb3VudCA9IDIgKiByYXRlOwpAQCAt
MjQzLDcgKzIzOSw3IEBAIHZvaWQgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZl
cnModWludDMyX3QgZnJhbWVDb3VudCkKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAg
ICBBU1NFUlQobV9mb3JtYXREZXNjcmlwdGlvbik7CiAKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0g
Q01UaW1lTWFrZShtX3NhbXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOworICAgIENNVGltZSBz
dGFydFRpbWUgPSBQQUw6OkNNVGltZU1ha2UobV9zYW1wbGVzRW1pdHRlZCwgc2FtcGxlUmF0ZSgp
KTsKICAgICBtX3NhbXBsZXNFbWl0dGVkICs9IGZyYW1lQ291bnQ7CiAKICAgICBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoUEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpLCAqbV9hdWRpb0J1ZmZlckxp
c3QsIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihtX3N0cmVhbUZvcm1hdCksIGZyYW1lQ291bnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGIwNTlhMzI1
MWQ4Yjk2NTdiYTkwMTRjNDRmODA2M2FmODI3YjFkNDMuLmI2MGI4ODY2ZmJiODA0ODhjMjNmZTJi
NTc2OTJiMzBmODdlMzg2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMubW0KQEAgLTUxLDcgKzUxLDYgQEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBDYXB0
dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2Eu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCA1ODA5NGIzNDIwZjM5YzhmMjZjMTc3N2Ey
YWVkMDEyM2RiZWEyNjI4Li5hYTY5NmFkZGY3Zjc3OTI1OTE1Mjk1ODNjMjE2MGMxMjQ5MTFkNTVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5j
cHAKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUmVmPFJl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpj
cmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBh
dWRpb1RyYWNrLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQpCiB7CkBAIC0xMzEsNyArMTMwLDcgQEAg
dm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYTo6T25EYXRhKGNvbnN0IHZvaWQq
IGF1ZGlvRGF0YSwgaW50IGJpdHNQZXIKICAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSAw
OwogICAgIH0KIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fbnVtYmVyT2ZG
cmFtZXMsIHNhbXBsZVJhdGUpOworICAgIENNVGltZSBzdGFydFRpbWUgPSBQQUw6OkNNVGltZU1h
a2UobV9udW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgYXV0byBtZWRpYVRpbWUgPSBQ
QUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9udW1iZXJPZkZyYW1lcyArPSBudW1i
ZXJPZkZyYW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tCmluZGV4IDhkZjhmNjhmNmY3MjQwNDc1ZGJkNDMyMzA2YWEzYTU2OWY2ZTQ4Y2Yu
LjBjNzFlMWRiMTBmYTQzN2E3YzAwNDNkMzY0ZjQ0YmY3MjM3MTFjOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTQyLDcgKzQyLDYg
QEAgQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlh
U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsK
IAogUmVmPFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlOjpjcmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVy
ZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB0cmFja0lkKQogewpAQCAtMTczLDE5ICsxNzIs
MTkgQEAgdm9pZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZShjb25z
dCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lKQogICAgIH0KIAogICAgIENNU2FtcGxlVGltaW5n
SW5mbyB0aW1pbmdJbmZvOwotICAgIHRpbWluZ0luZm8ucHJlc2VudGF0aW9uVGltZVN0YW1wID0g
Q01UaW1lTWFrZShmcmFtZS50aW1lc3RhbXBfdXMoKSwgMTAwMDAwMCk7Ci0gICAgdGltaW5nSW5m
by5kZWNvZGVUaW1lU3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKLSAgICB0aW1pbmdJbmZvLmR1cmF0
aW9uID0ga0NNVGltZUludmFsaWQ7CisgICAgdGltaW5nSW5mby5wcmVzZW50YXRpb25UaW1lU3Rh
bXAgPSBQQUw6OkNNVGltZU1ha2UoZnJhbWUudGltZXN0YW1wX3VzKCksIDEwMDAwMDApOworICAg
IHRpbWluZ0luZm8uZGVjb2RlVGltZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKKyAgICB0
aW1pbmdJbmZvLmR1cmF0aW9uID0gUEFMOjprQ01UaW1lSW52YWxpZDsKIAogICAgIENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbjsKLSAgICBPU1N0YXR1cyBvc3Rh
dHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNj
cmlwdGlvbik7CisgICAgT1NTdGF0dXMgb3N0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VC
dWZmZXJSZWYpcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9zdGF0
dXMgIT0gbm9FcnIpIHsKICAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVO
VElGSUVSLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdp
dGggZXJyb3IgIiwgc3RhdGljX2Nhc3Q8aW50Pihvc3RhdHVzKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXI7Ci0gICAgb3N0YXR1
cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9u
LCAmdGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7CisgICAgb3N0YXR1cyA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAo
Q1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJ
bmZvLCAmc2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwog
ICAgIGlmIChvc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgIEVSUk9SX0xPR19JRihsb2dnZXJQ
dHIoKSwgTE9HSURFTlRJRklFUiwgIkZhaWxlZCB0byBjcmVhdGUgdGhlIHNhbXBsZSBidWZmZXIg
d2l0aCBlcnJvciAiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IDZiZjBjYTQ4N2Rk
NjRkYmVmNTM5ZDk0ODgwZjYyOGM3ZmExNjFiZjEuLmUzM2JiNmRhOWRkZGQwMWEwMGQ5OTZmZDll
ZjAyYWM5ODE0YTFlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZUNvY29hLmNwcApAQCAtNDUsNyArNDUsNiBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVS
U19FTkQKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlPiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZWY8TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU+JiYgdmlkZW9Tb3VyY2UpCiB7CkBAIC04NSw3ICs4NCw3IEBAIHZvaWQgUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlh
U2FtcGxlJiBzYW1wbGUpCiAgICAgfQogCiAgICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBs
ZSgpLnR5cGUgPT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7Ci0gICAgYXV0
byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVm
ZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxl
QnVmZmVyKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZm
ZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1T
YW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKICAgICBhdXRvIHBpeGVsRm9ybWF0VHlw
ZSA9IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwogCiAgICAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNvbnZlcnRlZEJ1ZmZlciA9IHBpeGVsQnVmZmVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dp
bmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KaW5kZXggNzhiYmNhZDEzOTk4
NjJmNTViOTcwYmU0NzdmMjUxNGM0ZjM0ODQ1NC4uMTI5M2RhNTU5ZjkyOWE3YWVlYzU0ZDA3YWE5
YWU0Zjk5NGY5NWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCkBA
IC00Niw3ICs0Niw2IEBACiBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENHSW1hZ2UpOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgYm9vbCBh
bnlPZkNHV2luZG93KGNvbnN0IEZ1bmN0aW9uPGJvb2woQ0ZEaWN0aW9uYXJ5UmVmIGluZm8sIHVu
c2lnbmVkIGlkLCBjb25zdCBTdHJpbmcmIHRpdGxlKT4mIHByZWRpY2F0ZSkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJY29uVXRpbGl0aWVzLm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0KaW5kZXggNGVhM2RlODZjYmI0
NDQxOWRhNmUxZjQ5M2JlYTgzOTA1NWRkMTg1ZS4uZjZiM2NlOTFkNTI1NjIyZDFkYjFmMjAxN2U4
MTExMTU1NTk2ZTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklj
b25VdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkljb25VdGls
aXRpZXMubW0KQEAgLTEyNCw3ICsxMjQsNyBAQCBSZXRhaW5QdHI8VUlJbWFnZT4gaWNvbkZvclZp
ZGVvRmlsZShOU1VSTCAqZmlsZSkKICAgICBbZ2VuZXJhdG9yIHNldEFwcGxpZXNQcmVmZXJyZWRU
cmFja1RyYW5zZm9ybTpZRVNdOwogCiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7Ci0gICAgUmV0
YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlUmVmID0gYWRvcHRDRihbZ2VuZXJhdG9yIGNvcHlDR0lt
YWdlQXRUaW1lOmtDTVRpbWVaZXJvIGFjdHVhbFRpbWU6bmlsIGVycm9yOiZlcnJvcl0pOworICAg
IFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZVJlZiA9IGFkb3B0Q0YoW2dlbmVyYXRvciBjb3B5
Q0dJbWFnZUF0VGltZTpQQUw6OmtDTVRpbWVaZXJvIGFjdHVhbFRpbWU6bmlsIGVycm9yOiZlcnJv
cl0pOwogICAgIGlmICghaW1hZ2VSZWYpIHsKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvciBjcmVh
dGluZyBpbWFnZSBmb3IgdmlkZW8gJyVAJzogJUAiLCBmaWxlLCBlcnJvcik7CiAgICAgICAgIHJl
dHVybiBmYWxsYmFja0ljb25Gb3JGaWxlKGZpbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQu
Y3BwCmluZGV4IGExNmQyNDI1NjQxZjM3YTE5ZDBjMDllNTRiYzNlZWY0YWEyODE4ZWEuLjBiYWMx
ZTI4OWU3NzcyZWFlN2U2YjM2OTgxMDg1OTRiN2E2ODY4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlh
V3JhcHBlZC5jcHAKQEAgLTM0LDE3ICszNCwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9v
bCBjcmVhdGVXcmFwcGVyKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQ01CYXNlVlRh
YmxlKiBiYXNlVlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiog
d3JhcHBlcikKIHsKLSAgICByZXR1cm4gQ01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFsbG9jYXRvciwg
YmFzZVZUYWJsZSwgY2xhc3NJRCwgd3JhcHBlcikgPT0gbm9FcnI7CisgICAgcmV0dXJuIFBBTDo6
Q01EZXJpdmVkT2JqZWN0Q3JlYXRlKGFsbG9jYXRvciwgYmFzZVZUYWJsZSwgY2xhc3NJRCwgd3Jh
cHBlcikgPT0gbm9FcnI7CiB9CiAKIHZvaWQqIHdyYXBwZXJTdG9yYWdlKENNQmFzZU9iamVjdFJl
ZiB3cmFwcGVyKQogewotICAgIHJldHVybiBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSh3
cmFwcGVyKTsKKyAgICByZXR1cm4gUEFMOjpDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSh3
cmFwcGVyKTsKIH0KIAogY29uc3QgQ01CYXNlVlRhYmxlKiB3cmFwcGVyVlRhYmxlKENNQmFzZU9i
amVjdFJlZiB3cmFwcGVyKQogewotICAgIHJldHVybiBDTUJhc2VPYmplY3RHZXRWVGFibGUod3Jh
cHBlcik7CisgICAgcmV0dXJuIFBBTDo6Q01CYXNlT2JqZWN0R2V0VlRhYmxlKHdyYXBwZXIpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3Bw
CmluZGV4IGMxODRlNDQ3YjJjZDQ0MmE4NDdlYzMxNjIzMzZiNmZhZjc4NzNjN2MuLjVlNzc4Y2Mw
YjdiZGE3NGUzZjc1Yzk5YjU4YmE4YmZhMjUxNzI5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0
UmVhZGVyLmNwcApAQCAtNDcsNyArNDcsNiBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKE1U
UGx1Z2luRm9ybWF0UmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGNvbnN0IHZvaWQq
IG5leHRMb2dJZGVudGlmaWVyKCkKQEAgLTI0NSw3ICsyNDQsNyBAQCBPU1N0YXR1cyBNZWRpYUZv
cm1hdFJlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdAogICAgIGlmIChtX2R1cmF0aW9uLmlzSW5kZWZpbml0ZSgpKQogICAgICAgICByZXR1
cm4ga0NNQmFzZU9iamVjdEVycm9yX1ZhbHVlTm90QXZhaWxhYmxlOwogCi0gICAgaWYgKGF1dG8g
bGVha2VkRHVyYXRpb24gPSBhZG9wdENGKENNVGltZUNvcHlBc0RpY3Rpb25hcnkoUEFMOjp0b0NN
VGltZShtX2R1cmF0aW9uKSwgYWxsb2NhdG9yKSkubGVha1JlZigpKSB7CisgICAgaWYgKGF1dG8g
bGVha2VkRHVyYXRpb24gPSBhZG9wdENGKFBBTDo6Q01UaW1lQ29weUFzRGljdGlvbmFyeShQQUw6
OnRvQ01UaW1lKG1fZHVyYXRpb24pLCBhbGxvY2F0b3IpKS5sZWFrUmVmKCkpIHsKICAgICAgICAg
KnJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmKj4odmFsdWVDb3B5KSA9IGxlYWtlZER1
cmF0aW9uOwogICAgICAgICByZXR1cm4gbm9FcnI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNh
bXBsZUJ5dGVSYW5nZS5jcHAKaW5kZXggZDgzZWZjZjQ3NzVjZTk2YjEyYTg3NjBmOGQxNzIzNGFi
MGYxZWU3ZC4uNGRlMWQwZWQyYTdiZTQ5ZTNjYmJiOTVlMzc3ZjU0NTA5ZmFjMDdhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2Ft
cGxlQnl0ZVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3Jt
YXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCkBAIC0yNSwxMiArMjUsMTIgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQnl0ZVJhbmdlLmgiCisj
aW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNpZiBFTkFCTEUoV0VCTV9G
T1JNQVRfUkVBREVSKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBNZWRpYVNhbXBsZUJ5dGVSYW5nZTo6TWVk
aWFTYW1wbGVCeXRlUmFuZ2UoTWVkaWFTYW1wbGUmIHNhbXBsZSwgTVRQbHVnaW5CeXRlU291cmNl
UmVmIGJ5dGVTb3VyY2UsIHVpbnQ2NF90IHRyYWNrSUQpCkBAIC01MCw3ICs1MCw3IEBAIE1lZGlh
U2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxl
LCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAgYXV0byBwbGF0Zm9ybVNhbXBsZSA9IHNhbXBsZS5wbGF0
Zm9ybVNhbXBsZSgpOwogICAgIHN3aXRjaCAocGxhdGZvcm1TYW1wbGUudHlwZSkgewogICAgIGNh
c2UgUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZToKLSAgICAgICAgbV9mb3JtYXRE
ZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1T
YW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlv
biA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBs
ZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsYXRm
b3JtU2FtcGxlOjpCeXRlUmFuZ2VTYW1wbGVUeXBlOgogICAgICAgICBtX2Zvcm1hdERlc2NyaXB0
aW9uID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLmJ5dGVSYW5nZVNhbXBsZS5zZWNvbmQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFT
YW1wbGVDdXJzb3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcAppbmRleCBjZTI5MDZkYzQ0MjliODc1MTRhN2IwMGMz
MjE3MzkyZDUwN2IzZjk1Li5mYmU0MjI3MzA2ZjgwZjYxYzEyN2MzMzhjNzFlZmE1NGEyZDIwYzg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
TWVkaWFTYW1wbGVDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKQEAgLTQzLDcgKzQzLDYgQEAgV1RG
X0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpblNhbXBsZUN1cnNvcik7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIHN0YXRpYyBNZWRpYVRpbWUgYXNzdW1lZERlY29kZVRpbWUoY29uc3QgTWVkaWFUaW1l
JiBwcmVzZW50YXRpb25UaW1lLCBEZWNvZGVPcmRlclNhbXBsZU1hcCYgbWFwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tS
ZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhVHJhY2tSZWFkZXIuY3BwCmluZGV4IDkwODYxYzg0ZGRlNmM2NmRkYjg3NzkzYWIyMzA2YTY2
ZTRkZWI3MzEuLjFkYzFjYWUwMzAwOGUwYTIwYTQ0YWM3M2QxYWEzNzI1MzU3ZjIwZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRy
YWNrUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgV1RGX0RFQ0xBUkVf
Q0ZfVFlQRV9UUkFJVChNVFBsdWdpblRyYWNrUmVhZGVyKTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQ01C
YXNlQ2xhc3NJRCBNZWRpYVRyYWNrUmVhZGVyOjp3cmFwcGVyQ2xhc3NJRCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rp
dml0aWVzQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91
cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3IubW0KaW5kZXggMTdkNzlmMTYx
MDU2YTAxMGE0ZWFjNTgyZmQyNzg2OGYzODhhNjIxMS4uMWUzOGRlNWRiZGE5ZTE1NzEyOGYxZjQw
ZGFhZDFjNDkxOTBlMzAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRp
ZXNDb29yZGluYXRvci5tbQpAQCAtMTAyLDggKzEwMiw2IEBAIEBlbmQKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIFJlZjxHcm91cEFjdGl2aXRpZXNDb29y
ZGluYXRvcj4gR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6OmNyZWF0ZShHcm91cEFjdGl2aXRp
ZXNTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdyb3VwQWN0
aXZpdGllc0Nvb3JkaW5hdG9yKHNlc3Npb24pKTsKQEAgLTE1NCw3ICsxNTIsNyBAQCB2b2lkIEdy
b3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjpsZWF2ZSgpCiAKIHZvaWQgR3JvdXBBY3Rpdml0aWVz
Q29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgQ29vcmRpbmF0b3JDb21wbGV0aW9uSGFu
ZGxlciYmIGNhbGxiYWNrKQogewotICAgIFttX3BsYXliYWNrQ29vcmRpbmF0b3IgY29vcmRpbmF0
ZVNlZWtUb1RpbWU6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDEwMDApIG9wdGlvbnM6MF07
CisgICAgW21fcGxheWJhY2tDb29yZGluYXRvciBjb29yZGluYXRlU2Vla1RvVGltZTpQQUw6OkNN
VGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCAxMDAwKSBvcHRpb25zOjBdOwogICAgIGNhbGxiYWNr
KHN0ZDo6bnVsbG9wdCk7CiB9CiAKQEAgLTIxMSwxMCArMjA5LDEwIEBAIHZvaWQgR3JvdXBBY3Rp
dml0aWVzQ29vcmRpbmF0b3I6Omlzc3VlUGxheUNvbW1hbmQoQVZEZWxlZ2F0aW5nUGxheWJhY2tD
b29yZGluYXRvCiAKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gaXRlbVRpbWU7CiAgICAgaWYg
KENNVElNRV9JU19OVU1FUklDKHBsYXlDb21tYW5kLml0ZW1UaW1lKSkKLSAgICAgICAgaXRlbVRp
bWUgPSBDTVRpbWVHZXRTZWNvbmRzKHBsYXlDb21tYW5kLml0ZW1UaW1lKTsKKyAgICAgICAgaXRl
bVRpbWUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMocGxheUNvbW1hbmQuaXRlbVRpbWUpOwogICAg
IHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gaG9zdFRpbWU7CiAgICAgaWYgKENNVElNRV9J
U19OVU1FUklDKHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKQotICAgICAgICBob3N0VGltZSA9
IE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1dGVUaW1lKENNQ2xvY2tDb252ZXJ0SG9zdFRp
bWVUb1N5c3RlbVVuaXRzKHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKTsKKyAgICAgICAgaG9z
dFRpbWUgPSBNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFic29sdXRlVGltZShQQUw6OkNNQ2xvY2tD
b252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzKHBsYXlDb21tYW5kLmhvc3RDbG9ja1RpbWUpKTsK
IAogICAgIGNsaWVudCgpLT5wbGF5U2Vzc2lvbihpdGVtVGltZSwgaG9zdFRpbWUsIFtjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCkgewogICAgICAgICBjYWxsYmFjaygpOwpAQCAt
MjQ2LDcgKzI0NCw3IEBAIHZvaWQgR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I6Omlzc3VlU2Vl
a0NvbW1hbmQoQVZEZWxlZ2F0aW5nUGxheWJhY2tDb29yZGluYXRvCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBjbGllbnQoKS0+c2Vla1Nlc3Npb25Ub1RpbWUoQ01UaW1lR2V0U2Vjb25k
cyhzZWVrQ29tbWFuZC5pdGVtVGltZSksIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAo
Ym9vbCkgbXV0YWJsZSB7CisgICAgY2xpZW50KCktPnNlZWtTZXNzaW9uVG9UaW1lKFBBTDo6Q01U
aW1lR2V0U2Vjb25kcyhzZWVrQ29tbWFuZC5pdGVtVGltZSksIFtjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSAoYm9vbCkgbXV0YWJsZSB7CiAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
cm94eUNvY29hLm1tCmluZGV4IDQyNzk2OWMyODIxMThhYzNjM2Q3NzA4M2VhYjgyZDk1ZmQwYWJl
ZmYuLjE3MWQ5Y2E0ODQ5MTVkN2FmNGVlYWQ2OTcwOTk5MWU1MDRkNDI3OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
CkBAIC0yNjksNyArMjY5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRBdWRpb0NvbXBv
bmVudFJlZ2lzdHJhdGlvbnMoKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKLSAgICBp
ZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFjYW5Mb2FkX0F1
ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMoKSkK
KyAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwg
IVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJS
ZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwg
MCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIG11dGFibGUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNh
Z2VNYW5hZ2VyQ29jb2EubW0KaW5kZXggZjM3ODRmYzI3MTJiMGRmNjM4NzEyMDQ3Y2Q3MmY4NTMw
Yzc3NzIzNC4uMmE4M2Q5NzEwYmY3MjU1ZTU5Mzg1YzFiMWY2NTkzNGMyNjMwNTU1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRp
YVVzYWdlTWFuYWdlckNvY29hLm1tCkBAIC00Miw3ICs0Miw2IEBAIEBlbmQKIE5TX0FTU1VNRV9O
T05OVUxMX0VORAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGJvb2wgdXNhZ2VUcmFja2luZ0F2YWls
YWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggYzMyM2E2YTc4YjQ1MDA1YjY3NzQw
ODYyYjYyOWIxNmZiYjgwZjQwYi4uZjg5MWE1MzMxNDUwYmYxN2VhZjk1YjAwZTMxOGRhZTNjNzM4
NzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewot
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA5NWJiZDU0ODNjZmVhMTdjOTEyZWQ1YjVmMTNm
NDMxZmFlMzcxMjY3Li44YTU5YWUxYTI4ZmE0M2E5YjJmMjE1NzYyMTE4OWFlOTc2ZDEwMmRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KaW5kZXggYTFhODI3ZGYxZGQxZjE2MjI3YzEzZWM2ZWUzMDg0ZTlkMjYxZjQ1Ni4uMGQ2
ZGUxZjJhOTkwNjA5ZWU5YTA1MDJlOGQ5NDhjMzkwZmExMWRmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMzk1LDcgKzEz
OTUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlv
bnMoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiAKLSAgICBpZiAoIWlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8
ICFjYW5Mb2FkX0F1ZGlvVG9vbGJveENvcmVfQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lz
dHJhdGlvbnMoKSkKKyAgICBpZiAoIVBBTDo6aXNBdWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZh
aWxhYmxlKCkgfHwgIVBBTDo6Y2FuTG9hZF9BdWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50
QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
cmVnaXN0cmF0aW9ucyA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkpOwo=
</data>
<flag name="commit-queue"
          id="454396"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432372</attachid>
            <date>2021-06-28 01:49:54 -0700</date>
            <delta_ts>2021-06-28 02:16:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210628184952.patch</filename>
            <type>text/plain</type>
            <size>314372</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc2MGFmZjhiNzMzNTgy
NDE3ZjA3N2M5MDRjOTQ4ZmYyMzgxZWU5Yy4uZGZiN2RkYjllMTQ1ZWFjZjUzOTZhNmI0ZGE3ZDcx
YmQ5Yjc2NTAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlcyBv
ZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFVuaWZ5IEF1ZGlvVG9vbGJveCwgQ29yZU1lZGlhLCBWaWRlb1Rvb2xib3ggYW5k
IE1lZGlhVG9vbGJveCdzIG1ldGhvZAorICAgICAgICBkZWZpbml0aW9ucyBhbmQgdGhlaXIgdXNl
LCBlbnN1cmluZyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzb2Z0LWxpbmtlZC4KKyAgICAgICAgVW5p
ZmllZCBidWlsZHMgYW5kIHRoZSBpbmNvbnNpc3RlbnQgdXNlIG9mIGV4cGxpY2l0bHkgdXNpbmcg
dGhlIFBBTCBuYW1lc3BhY2UKKyAgICAgICAgY2F1c2VkIHNvbWUgY2FsbHMgdG8gYmUgYW1iaWd1
b3VzIGxlYWRpbmcgdG8gY29tcGlsYXRpb24gZXJyb3JzOyBzb21lCisgICAgICAgIGNvZGUgd291
bGQgYWxzbyB1c2UgdGhlIHNvZnRsaW5rZWQgbWV0aG9kcyB3aGlsZSBvdGhlcnMgY2FsbGVkIGlu
dG8gdGhlIGZyYW1ld29ya3MKKyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIFRvIGdldCBhcm91
bmQgdGhvc2Ugd2UgZW5zdXJlIHRoYXQgYW55IGNhbGxzIHRvIEF1ZGlvVG9vbGJveCBvciBDb3Jl
TWVkaWEgaXMgYWx3YXlzIHVzaW5nCisgICAgICAgIHRoZSBmdWxseSByZXNvbHZlZCBQQUwgbmFt
ZS4KKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGB1c2luZyBuYW1lc3BhY2UgUEFMO2Agc3Rh
dGVtZW50cyB3aGVyZXZlciBhcHBsaWNhYmxlLgorICAgICAgICBObyBjaGFuZ2UgaW4gb2JzZXJ2
YWJsZSBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5w
cmVwYXJlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUltYWdlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50
TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlk
Q2hhbmdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpk
ZXN0cm95TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjp2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJS
ZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGVJbWFnZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnBy
ZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkZWNvZGVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6ZHVyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpzaXplSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFW
Rk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZG9l
c0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1ZmZl
ckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1wbGVC
dWZmZXJOb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6cHJlc2VudGF0aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1w
bGVBVkZPYmpDOjppc0RpdmlzYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OmRpdmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZm
ZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3Vt
ZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpB
dWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0NNQ29sb3JQcmltYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01U
cmFuc2ZlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0NNWUNiQ1JNYXRy
aXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJh
aXQ8Q01TYW1wbGVCdWZmZXJSZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmRlY29kZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjph
dXRvbWF0aWNEZXF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5I
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRh
dGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVr
YWJsZVJhbmdlc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93
V2F0ZXJUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0Nv
bXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFz
c2V0V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVk
aW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmlj
ZUNsb2NrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpj
b25maWd1cmVNaWNyb3Bob25lUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVk
aW9TaGFyZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2E6Ok9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW06CisKIDIwMjEtMDYtMjEgIEplYW4t
WXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1l
dGhvZCBpbiBBdWRpb0ZpbGVSZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGI2MjY3YzdmNmU5
Y2YwNmRlZDAwMDMzZTFlMmEwZGE5MjY1MTU3ZDcuLjk1OTEyMWY2NzgxNzJiNGVlODA2Njc2ZjBk
YTcxNzg5ZDdjY2Q2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIx
LTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgTm90
IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgor
ICAgICAgICAqIHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWV0aG9kcyB3aG9z
ZSBkZWZpbml0aW9ucyB3ZXJlIHNjYXR0ZXJlZCBhY3Jvc3MKKyAgICAgICAgdGhlIGNvZGUuCisg
ICAgICAgICogcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBw
YWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaDogU2FtZSBhcyBhYm92ZS4KKyAgICAgICAg
KiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9BdWRp
b1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisgICAgICAgICogcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kczsgUmVzaHVmZmxlZCBkZWZpbml0aW9ucyBhcyBtYW55
IGRpZG4ndAorICAgICAgICBleGlzdCBvbiBXaW5kb3dzLCB5ZXQgY291bGQgcG90ZW50aWFsbHkg
YmUgbG9hZGVkIGFuZCBlcnJvci4KKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29mdExp
bmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlz
c2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAgICAg
ICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9j
b2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIwMjEt
MDYtMjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01v
ZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIG1vZGVsIHJlc291cmNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDZhODIzZDYxYWQxMDEwMzJiYmUxOTRhNjJiNWI2MTU2
ZDIzY2FiMTIuLjA5YzJlYTMyOWMyYzBjYTZlZTZmN2JhM2EyYzQ0YWRmODM0OGU1ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTUzLDggKzUzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiAjaWYgIVVTRShMSUJXRUJSVEMpCiBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFBlZXJDb25uZWN0aW9uQmFja2VuZD4gY3JlYXRlTm9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQoUlRDUGVlckNvbm5lY3Rpb24mKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
Lm1tCmluZGV4IDQwMGY5YjhkMTZiNTkzYjQ4NWUwMGM3Zjc4ZjU5ZGU5OGRjMzdkOWYuLjc0OTk0
ZTJjNTEwMGVjYWJhNjE1OTBmYjExODBhYTBiYzM3YjBkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0KQEAgLTU4LDcgKzU4LDYgQEAKICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHN0YXRpYyBKU1ZhbHVlICpqc1ZhbHVlV2l0aFZh
bHVlSW5Db250ZXh0KGlkLCBKU0NvbnRleHQgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5j
cHAKaW5kZXggNWIxMzViMzlhNWEwYTFkODAxYmU2ODc4ZmJkZmY2NzY2YzJlOGFjZS4uZjFjMmFm
MzNjNWZhMmFiNmZjNTE2Njk5ODNmYTcwZTc2OTY0MDI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZUNvY29hLmNwcApAQCAtMzcsOCArMzcsNiBAQAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5oPgogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGlubGluZSBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24gc3RyZWFtRGVzY3JpcHRpb24oc2l6ZV90IHNhbXBsZVJhdGUsIHNp
emVfdCBjaGFubmVsQ291bnQpCkBAIC03MSw3ICs2OSw3IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y29uc3VtZUF1ZGlvKEF1ZGlvQnVzJiBidXMsIHNpemVfdCBudW1iZXJPZkZyYW1l
cykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRp
bWVNYWtlKG1fbnVtYmVyT2ZGcmFtZXMsIG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSk7
CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX251bWJlck9mRnJhbWVz
LCBtX2N1cnJlbnRTZXR0aW5ncy5zYW1wbGVSYXRlKCkpOwogICAgIGF1dG8gbWVkaWFUaW1lID0g
UEFMOjp0b01lZGlhVGltZShzdGFydFRpbWUpOwogICAgIG1fbnVtYmVyT2ZGcmFtZXMgKz0gbnVt
YmVyT2ZGcmFtZXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQXVk
aW9Ub29sYm94U29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rv
b2xib3hTb2Z0TGluay5jcHAKaW5kZXggNjdiNzhmNDZhNzgxMTc4ODhmMDBkMDg5N2RiYTU3ZTdh
YzUzODUwMi4uMzMzYWEyMjRjNzFhNzUwY2Q5YTBmNjlmNzgzZGQwMTU5NzUxMGFjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAK
QEAgLTI2LDIwICsyNiw0NiBAQAogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKIAorI2luY2x1ZGUg
PEF1ZGlvVG9vbGJveC9BdWRpb0NvbXBvbmVudC5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9B
dWRpb0NvbnZlcnRlci5oPgorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0ZpbGUuaD4KICNp
bmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Gb3JtYXQuaD4KLQorI2luY2x1ZGUgPEF1ZGlvVG9v
bGJveC9BdWRpb1VuaXQuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0Zp
bGUuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09S
S19GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94KQogU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVX
T1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBQQUxfRVhQ
T1JUKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJS
ZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJ
RCwgVUludDMyKiBvdXRTaXplLCBCb29sZWFuKiBvdXRXcml0YWJsZSksIChpbkF1ZGlvQ29udmVy
dGVyLCBpblByb3BlcnR5SUQsIG91dFNpemUsIG91dFdyaXRhYmxlKSkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Zvcm1hdEdldFByb3BlcnR5
LCBPU1N0YXR1cywgKEF1ZGlvRm9ybWF0UHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBp
blNwZWNpZmllclNpemUsIGNvbnN0IHZvaWQqIGluU3BlY2lmaWVyLCBVSW50MzIqIGlvUHJvcGVy
dHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluUHJvcGVydHlJRCwgaW5TcGVj
aWZpZXJTaXplLCBpblNwZWNpZmllciwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURh
dGEpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiog
aW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVy
KSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRl
cikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVk
aW9Db252ZXJ0ZXJEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9D
b252ZXJ0ZXIpLCAoaW5BdWRpb0NvbnZlcnRlcikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2
b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIGlu
UHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHksIE9T
U3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0
ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZv
aWQqIG91dFByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIGlv
UHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4
QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIFVJ
bnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBpbklucHV0RGF0
YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGlu
TnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJGaWxs
Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVy
dGVyLCBBdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jIGluSW5wdXREYXRhUHJvYywg
dm9pZCogaW5JbnB1dERhdGFQcm9jVXNlckRhdGEsIFVJbnQzMiogaW9PdXRwdXREYXRhUGFja2V0
U2l6ZSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhLCBBdWRpb1N0cmVhbVBhY2tldERl
c2NyaXB0aW9uKiBvdXRQYWNrZXREZXNjcmlwdGlvbiksIChpbkF1ZGlvQ29udmVydGVyLCBpbklu
cHV0RGF0YVByb2MsIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBpb091dHB1dERhdGFQYWNrZXRT
aXplLCBvdXRPdXRwdXREYXRhLCBvdXRQYWNrZXREZXNjcmlwdGlvbikpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQs
IE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb091dHB1dFVuaXRTdG9wLCBPU1N0YXR1cywg
KEF1ZGlvVW5pdCBjaSksIChjaSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUws
IEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVzLCAo
QXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbkluc3RhbmNlKSwgKGluSW5zdGFuY2UpKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50
Q29weU5hbWUsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIENGU3RyaW5n
UmVmKiBvdXROYW1lKSwgKGluQ29tcG9uZW50LCBvdXROYW1lKSkKKwogU09GVF9MSU5LX0ZVTkNU
SU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBdWRpb1Rvb2xib3hDb3Jl
LCBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChDRkRh
dGFSZWYqIG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAob3V0QnVuZGxlUmVnaXN0cmF0aW9ucyks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJS
ZWdpc3RyYXRpb25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMp
LCAoaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgUEFMX0VYUE9SVCkKIAorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1
cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxlKSwgKGluQXVkaW9GaWxlKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVPcGVuV2l0aENh
bGxiYWNrcywgT1NTdGF0dXMsICh2b2lkICppbkNsaWVudERhdGEsIEF1ZGlvRmlsZV9SZWFkUHJv
YyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5jLCBBdWRpb0ZpbGVf
R2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQcm9jIGluU2V0U2l6
ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9GaWxlSUQgKm91dEF1
ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVGdW5jLCBpbkdldFNp
emVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVkaW9GaWxlKSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0Zp
bGVEaXNwb3NlLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChp
bkV4dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlv
VG9vbGJveCwgRXh0QXVkaW9GaWxlR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxl
UmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwg
VUludDMyICppb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQgKm91dFByb3BlcnR5RGF0YSksIChpbkV4
dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5
RGF0YSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
RXh0QXVkaW9GaWxlUmVhZCwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0Zp
bGUsIFVJbnQzMiAqaW9OdW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGlu
RXh0QXVkaW9GaWxlLCBpb051bWJlckZyYW1lcywgaW9EYXRhKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSwg
T1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25zdCB2
b2lkICppblByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9wZXJ0eUlELCBpblBy
b3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQsIE9T
U3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5GaWxlSUQsIEJvb2xlYW4gaW5Gb3JXcml0aW5nLCBFeHRB
dWRpb0ZpbGVSZWYgKm91dEV4dEF1ZGlvRmlsZSksIChpbkZpbGVJRCwgaW5Gb3JXcml0aW5nLCBv
dXRFeHRBdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRp
b1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5VUkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkws
IEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0Zp
bGUpKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Db21wb25lbnRGaW5kTmV4dCwgQXVkaW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBp
bkNvbXBvbmVudCwgY29uc3QgQXVkaW9Db21wb25lbnREZXNjcmlwdGlvbiogaW5EZXNjKSwgKGlu
Q29tcG9uZW50LCBpbkRlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBB
dWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcsIE9TU3RhdHVzLCAoQXVkaW9D
b21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UqIG91dEluc3RhbmNl
KSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAo
QXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29w
ZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwgdm9pZCogb3V0RGF0YSwgVUlu
dDMyKiBpb0RhdGFTaXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50LCBvdXRE
YXRhLCBpb0RhdGFTaXplKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVk
aW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5pdCBpblVu
aXQpLCAoaW5Vbml0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb1VuaXRTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0
LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlv
VW5pdEVsZW1lbnQgaW5FbGVtZW50LCBjb25zdCB2b2lkKiBpbkRhdGEsIFVJbnQzMiBpbkRhdGFT
aXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNp
emUpKQogCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaAppbmRleCA0OWUzMmUxNzk0MDM2M2I4
NDk3NzQ0MzViZDIwOTVlNjRhYjQ4ODFiLi5kZGYxM2EwMjdhNDVhMjJiODM5OGQxMzVlOGUwYjNk
ZmM2ODU1MmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9v
bGJveFNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xi
b3hTb2Z0TGluay5oCkBAIC0yNiwyNyArMjYsMTE0IEBACiAKICNpZiBVU0UoQVZGT1VOREFUSU9O
KQogCisjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L1NvZnRMaW5raW5nLmg+CiAKIHR5cGVkZWYgVUludDMyIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJ
RDsKIHR5cGVkZWYgVUludDMyIEF1ZGlvRm9ybWF0UHJvcGVydHlJRDsKIHR5cGVkZWYgc3RydWN0
IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb247
CiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0NvbnZlcnRlciogQXVkaW9Db252ZXJ0ZXJSZWY7
Cit0eXBlZGVmIHN0cnVjdCBBdWRpb0J1ZmZlckxpc3QgQXVkaW9CdWZmZXJMaXN0OwordHlwZWRl
ZiBPU1N0YXR1cyAoKkF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVByb2MpKEF1ZGlvQ29u
dmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsCisgICAgVUludDMyKiBpb051bWJlckRhdGFQYWNr
ZXRzLAorICAgIEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhLAorICAgIEF1ZGlvU3RyZWFtUGFja2V0
RGVzY3JpcHRpb24qKiBvdXREYXRhUGFja2V0RGVzY3JpcHRpb24sCisgICAgdm9pZCogaW5Vc2Vy
RGF0YSk7CisKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUV4dEF1ZGlvRmlsZSogRXh0QXVkaW9GaWxl
UmVmOwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9GaWxlSUQqIEF1ZGlvRmlsZUlEOwordHlw
ZWRlZiBVSW50MzIgQXVkaW9GaWxlVHlwZUlEOwordHlwZWRlZiBVSW50MzIgRXh0QXVkaW9GaWxl
UHJvcGVydHlJRDsKK3R5cGVkZWYgT1NTdGF0dXMgKCpBdWRpb0ZpbGVfUmVhZFByb2MpKAorICAg
IHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBTSW50NjQgaW5Qb3NpdGlvbiwKKyAgICBVSW50MzIg
cmVxdWVzdENvdW50LAorICAgIHZvaWQqIGJ1ZmZlciwKKyAgICBVSW50MzIqIGFjdHVhbENvdW50
KTsKK3R5cGVkZWYgT1NTdGF0dXMgKCpBdWRpb0ZpbGVfV3JpdGVQcm9jKSgKKyAgICB2b2lkKiBp
bkNsaWVudERhdGEsCisgICAgU0ludDY0IGluUG9zaXRpb24sCisgICAgVUludDMyIHJlcXVlc3RD
b3VudCwKKyAgICBjb25zdCB2b2lkKiBidWZmZXIsCisgICAgVUludDMyKiBhY3R1YWxDb3VudCk7
Cit0eXBlZGVmIFNJbnQ2NCAoKkF1ZGlvRmlsZV9HZXRTaXplUHJvYykoCisgICAgdm9pZCogaW5D
bGllbnREYXRhKTsKK3R5cGVkZWYgT1NTdGF0dXMgKCpBdWRpb0ZpbGVfU2V0U2l6ZVByb2MpKAor
ICAgIHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBTSW50NjQgaW5TaXplKTsKK3R5cGVkZWYgc3Ry
dWN0IE9wYXF1ZUF1ZGlvQ29tcG9uZW50KiBBdWRpb0NvbXBvbmVudDsKKworI2lmIFRBUkdFVF9P
U19JUEhPTkUgfHwgKGRlZmluZWQoQVVESU9DT01QT05FTlRfTk9DQVJCT05JTlNUQU5DRVMpICYm
IEFVRElPQ09NUE9ORU5UX05PQ0FSQk9OSU5TVEFOQ0VTKQordHlwZWRlZiBzdHJ1Y3QgT3BhcXVl
QXVkaW9Db21wb25lbnRJbnN0YW5jZSogQXVkaW9Db21wb25lbnRJbnN0YW5jZTsKKyNlbHNlCit0
eXBlZGVmIHN0cnVjdCBDb21wb25lbnRJbnN0YW5jZVJlY29yZCogQXVkaW9Db21wb25lbnRJbnN0
YW5jZTsKKyNlbmRpZgordHlwZWRlZiBBdWRpb0NvbXBvbmVudEluc3RhbmNlIEF1ZGlvVW5pdDsK
KwordHlwZWRlZiBzdHJ1Y3QgQXVkaW9Db21wb25lbnREZXNjcmlwdGlvbiBBdWRpb0NvbXBvbmVu
dERlc2NyaXB0aW9uOwordHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0UHJvcGVydHlJRDsKK3R5cGVk
ZWYgVUludDMyIEF1ZGlvVW5pdFNjb3BlOwordHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0RWxlbWVu
dDsKIAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94KQog
U09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSkKIAor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHlJbmZvLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVk
aW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
Miogb3V0U2l6ZSwgQm9vbGVhbiogb3V0V3JpdGFibGUpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Q
cm9wZXJ0eUlELCBvdXRTaXplLCBvdXRXcml0YWJsZSkpCisjZGVmaW5lIEF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHlJbmZvIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFBy
b3BlcnR5SW5mbwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJS
ZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJ
RCwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSksIChp
bkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJv
cGVydHlEYXRhKSkKICNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSBzb2Z0TGlua19B
dWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1
cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVk
aW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlvQ29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRl
c3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRpb0NvbnZlcnRlcikpCiAjZGVmaW5lIEF1ZGlvQ29udmVy
dGVyTmV3IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlck5ldworU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyRGlz
cG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyKSwgKGlu
QXVkaW9Db252ZXJ0ZXIpKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckRpc3Bvc2Ugc29mdExpbmtf
QXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyRGlzcG9zZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9T
U3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0
ZXJQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29u
c3Qgdm9pZCogaW5Qcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlE
LCBpblByb3BlcnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKICNkZWZpbmUgQXVkaW9Db252
ZXJ0ZXJTZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJTZXRQ
cm9wZXJ0eQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvRm9ybWF0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluU3BlY2lmaWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVj
aWZpZXIsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEp
LCAoaW5Qcm9wZXJ0eUlELCBpblNwZWNpZmllclNpemUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5
RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCiAjZGVmaW5lIEF1ZGlvRm9ybWF0R2V0UHJvcGVy
dHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvRm9ybWF0R2V0UHJvcGVydHkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckNv
bnZlcnRDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9D
b252ZXJ0ZXIsIFVJbnQzMiBpbk51bWJlclBDTUZyYW1lcywgY29uc3QgQXVkaW9CdWZmZXJMaXN0
KiBpbklucHV0RGF0YSwgQXVkaW9CdWZmZXJMaXN0KiBvdXRPdXRwdXREYXRhKSwgKGluQXVkaW9D
b252ZXJ0ZXIsIGluTnVtYmVyUENNRnJhbWVzLCBpbklucHV0RGF0YSwgb3V0T3V0cHV0RGF0YSkp
CisjZGVmaW5lIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIgc29mdExpbmtfQXVk
aW9Ub29sYm94X0F1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckZpbGxD
b21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0
ZXIsIEF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVByb2MgaW5JbnB1dERhdGFQcm9jLCB2
b2lkKiBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgVUludDMyKiBpb091dHB1dERhdGFQYWNrZXRT
aXplLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEsIEF1ZGlvU3RyZWFtUGFja2V0RGVz
Y3JpcHRpb24qIG91dFBhY2tldERlc2NyaXB0aW9uKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluSW5w
dXREYXRhUHJvYywgaW5JbnB1dERhdGFQcm9jVXNlckRhdGEsIGlvT3V0cHV0RGF0YVBhY2tldFNp
emUsIG91dE91dHB1dERhdGEsIG91dFBhY2tldERlc2NyaXB0aW9uKSkKKyNkZWZpbmUgQXVkaW9D
b252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlciBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252
ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0LCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBjaSksIChjaSkpCisjZGVmaW5lIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IHNvZnRMaW5rX0F1ZGlv
VG9vbGJveF9BdWRpb091dHB1dFVuaXRTdGFydAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0VW5pdFN0b3AsIE9TU3RhdHVzLCAoQXVk
aW9Vbml0IGNpKSwgKGNpKSkKKyNkZWZpbmUgQXVkaW9PdXRwdXRVbml0U3RvcCBzb2Z0TGlua19B
dWRpb1Rvb2xib3hfQXVkaW9PdXRwdXRVbml0U3RvcAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlLCBP
U1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgaW5JbnN0YW5jZSksIChpbkluc3RhbmNl
KSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2Ugc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRDb3B5TmFtZSwgT1NT
dGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQ0ZTdHJpbmdSZWYqIG91dE5hbWUp
LCAoaW5Db21wb25lbnQsIG91dE5hbWUpKQorI2RlZmluZSBBdWRpb0NvbXBvbmVudENvcHlOYW1l
IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbXBvbmVudENvcHlOYW1lCisKIFNPRlRfTElO
S19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVk
aW9Db21wb25lbnRGZXRjaFNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVm
KiBvdXRCdW5kbGVSZWdpc3RyYXRpb25zKSwgKG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpKQogI2Rl
ZmluZSBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucyBzb2Z0TGlua0F1ZGlv
VG9vbGJveENvcmVBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucwogU09GVF9M
SU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3hDb3JlLCBB
dWRpb0NvbXBvbmVudEFwcGx5U2VydmVyUmVnaXN0cmF0aW9ucywgT1NTdGF0dXMsIChDRkRhdGFS
ZWYgaW5CdW5kbGVSZWdpc3RyYXRpb25zKSwgKGluQnVuZGxlUmVnaXN0cmF0aW9ucykpCiAjZGVm
aW5lIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zIHNvZnRMaW5rQXVkaW9U
b29sYm94Q29yZUF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zCiAKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9z
ZSwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkF1ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCisj
ZGVmaW5lIEF1ZGlvRmlsZUNsb3NlIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVDbG9z
ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlv
RmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZvaWQqIGluQ2xpZW50RGF0YSwgQXVk
aW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2MgaW5Xcml0ZUZ1
bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0ZpbGVfU2V0U2l6
ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVIaW50LCBBdWRp
b0ZpbGVJRCogb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVuYywgaW5Xcml0
ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVIaW50LCBvdXRB
dWRpb0ZpbGUpKQorI2RlZmluZSBBdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNrcyBzb2Z0TGlua19B
dWRpb1Rvb2xib3hfQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVEaXNwb3NlLCBPU1N0
YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSksIChpbkV4dEF1ZGlvRmlsZSkp
CisjZGVmaW5lIEV4dEF1ZGlvRmlsZURpc3Bvc2Ugc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1
ZGlvRmlsZURpc3Bvc2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9U
b29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVS
ZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBV
SW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluRXh0
QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlE
YXRhKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29s
Ym94X0V4dEF1ZGlvRmlsZUdldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlUmVhZCwgT1NTdGF0dXMsIChFeHRBdWRp
b0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJbnQzMiogaW9OdW1iZXJGcmFtZXMsIEF1ZGlvQnVm
ZmVyTGlzdCogaW9EYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpb051bWJlckZyYW1lcywgaW9EYXRh
KSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlUmVhZCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVk
aW9GaWxlUmVhZAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3gsIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBp
bkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQz
MiBpblByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQqIGluUHJvcGVydHlEYXRhKSwgKGluRXh0
QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURh
dGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQsIE9TU3RhdHVz
LCAoQXVkaW9GaWxlSUQgaW5GaWxlSUQsIEJvb2xlYW4gaW5Gb3JXcml0aW5nLCBFeHRBdWRpb0Zp
bGVSZWYqIG91dEV4dEF1ZGlvRmlsZSksIChpbkZpbGVJRCwgaW5Gb3JXcml0aW5nLCBvdXRFeHRB
dWRpb0ZpbGUpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVXcmFwQXVkaW9GaWxlSUQgc29mdExpbmtf
QXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRAorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9wZW5VUkwsIE9T
U3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxl
KSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVPcGVuVVJM
IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVPcGVuVVJMCisKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmRO
ZXh0LCBBdWRpb0NvbXBvbmVudCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBB
dWRpb0NvbXBvbmVudERlc2NyaXB0aW9uKiBpbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykp
CisjZGVmaW5lIEF1ZGlvQ29tcG9uZW50RmluZE5leHQgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1
ZGlvQ29tcG9uZW50RmluZE5leHQKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3LCBPU1N0YXR1cywgKEF1ZGlv
Q29tcG9uZW50IGluQ29tcG9uZW50LCBBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBvdXRJbnN0YW5j
ZSksIChpbkNvbXBvbmVudCwgb3V0SW5zdGFuY2UpKQorI2RlZmluZSBBdWRpb0NvbXBvbmVudElu
c3RhbmNlTmV3IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9V
bml0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJv
cGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGlu
RWxlbWVudCwgdm9pZCogb3V0RGF0YSwgVUludDMyKiBpb0RhdGFTaXplKSwgKGluVW5pdCwgaW5J
RCwgaW5TY29wZSwgaW5FbGVtZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKKyNkZWZpbmUgQXVk
aW9Vbml0R2V0UHJvcGVydHkgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvVW5pdEdldFByb3Bl
cnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVk
aW9Vbml0SW5pdGlhbGl6ZSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwgKGluVW5pdCkp
CisjZGVmaW5lIEF1ZGlvVW5pdEluaXRpYWxpemUgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
VW5pdEluaXRpYWxpemUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9U
b29sYm94LCBBdWRpb1VuaXRTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0
LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlv
VW5pdEVsZW1lbnQgaW5FbGVtZW50LCBjb25zdCB2b2lkKiBpbkRhdGEsIFVJbnQzMiBpbkRhdGFT
aXplKSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNp
emUpKQorI2RlZmluZSBBdWRpb1VuaXRTZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hf
QXVkaW9Vbml0U2V0UHJvcGVydHkKKwogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCmluZGV4IGMx
NDM5MmJhMmM5MTQyZDUxYjQ3NGU3ZDI0NDgwYjk3MTlmOGE0YzYuLjVmMmZiMDVlNDM4NGM5ZTE1
MTUxMWYzYzIwY2E1ODE1NDBjMDFhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3Rm
L1NvZnRMaW5raW5nLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxDb3JlTWVk
aWEvQ01CdWZmZXJRdWV1ZS5oPgogI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KICNl
bmRpZgogCkBAIC01Myw4ICs1NCwxMCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREYXRhQgogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYsIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlVGltaW5nSW5mbywgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBDTUl0ZW1JbmRleCBzYW1wbGVJbmRleCwgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdJbmZv
T3V0KSwgKHNidWYsIHNhbXBsZUluZGV4LCB0aW1pbmdJbmZvT3V0KSwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TVNhbXBsZUJ1ZmZlckRhdGFJc1JlYWR5LCBCb29sZWFuLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb21wYXJlLCBpbnQzMl90LCAoQ01UaW1l
IHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKKwogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
VGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRp
bWUyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb21wYXJlLCBpbnQzMl90LCAoQ01UaW1lIHRpbWUx
LCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252
ZXJ0U2NhbGUsIENNVGltZSwgKENNVGltZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01U
aW1lUm91bmRpbmdNZXRob2QgbWV0aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAo
dGltZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1ZSwg
aW50MzJfdCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01U
aW1lTWFrZVdpdGhTZWNvbmRzLCBDTVRpbWUsIChGbG9hdDY0IHNlY29uZHMsIGludDMyX3QgcHJl
ZmVycmVkVGltZVNjYWxlKSwgKHNlY29uZHMsIHByZWZlcnJlZFRpbWVTY2FsZSksIFBBTF9FWFBP
UlQpCkBAIC02Miw2ICs2NSwxNSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJh
bmdlR2V0RW5kLCBDTVRpbWUsIChDTVRpbWVSYW5nZSByYW5nZSksIChyYW5nZSksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01UaW1lUmFuZ2VNYWtlLCBDTVRpbWVSYW5nZSwgKENNVGltZSBzdGFydCwgQ01UaW1l
IGR1cmF0aW9uKSwgKHN0YXJ0LCBkdXJhdGlvbiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VF
cXVhbCwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlMSwgQ01UaW1lUmFuZ2UgcmFuZ2UyKSwg
KHJhbmdlMSwgcmFuZ2UyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBDTVRpbWUsIChD
TVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRp
bWUxLCB0aW1lMiksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUsIEJvb2xl
YW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFuZ2UsIHRpbWUpLCBQQUxf
RVhQT1JUKQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENNVGltZSwgUEFMX0VYUE9SVCkKK1NPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1l
WmVybywgQ01UaW1lLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5LCBDTVRp
bWUsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwga0NNVGltZVJhbmdlSW52YWxpZCwgQ01UaW1lUmFuZ2UsIFBBTF9F
WFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUsIFBBTF9FWFBPUlQpCiAKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21z
LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJp
bWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCkBAIC03NCw2ICs4Niw3IEBA
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSwgQ0ZTdHJpbmdS
ZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8y
MDIwLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKKwogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRU
eXBlX0VuZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVu
dFR5cGVfTWlkZGxlLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxp
Z25tZW50VHlwZV9TdGFydCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCkBAIC05MywyMCArMTA2
LDIzIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBrQ01UZXh0TWFya3VwQXR0cmlidXRlCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEF0dHJpYnV0ZV9X
cml0aW5nRGlyZWN0aW9uU2l6ZVBlcmNlbnRhZ2UsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IGtDTVRleHRWZXJ0aWNhbExheW91dF9MZWZ0VG9SaWdodCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0LCBDRlN0cmluZ1JlZiwgUEFM
X0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBrQ01UaW1lSW52YWxpZCwgQ01UaW1lLCBQQUxfRVhQT1JUKQotU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVa
ZXJvLCBDTVRpbWUsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZVBvc2l0aXZlSW5maW5pdHksIENNVGlt
ZSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgQ29yZU1l
ZGlhLCBrQ01UaW1lUmFuZ2VJbnZhbGlkLCBDTVRpbWVSYW5nZSk7CiAKICNpZiBQTEFURk9STShD
T0NPQSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlLCBGb3VyQ2hhckNvZGUs
IChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01G
b3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZSwgQ01NZWRpYVR5cGUsIChDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCisKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQXNz
dXJlQmxvY2tNZW1vcnksIE9TU3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIpLCAo
dGhlQnVmZmVyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIsIE9T
U3RhdHVzLCAoQ01CbG9ja0J1ZmZlclJlZiB0aGVCdWZmZXIsIHNpemVfdCBvZmZzZXQsIHNpemVf
dCogbGVuZ3RoQXRPZmZzZXRPdXQsIHNpemVfdCogdG90YWxMZW5ndGhPdXQsIGNoYXIqKiBkYXRh
UG9pbnRlck91dCksICh0aGVCdWZmZXIsIG9mZnNldCwgbGVuZ3RoQXRPZmZzZXRPdXQsIHRvdGFs
TGVuZ3RoT3V0LCBkYXRhUG9pbnRlck91dCksIFBBTF9FWFBPUlQpCisKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlv
bkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlciwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsICh2
b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lciwg
T1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxp
c3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBub3Rp
ZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCwgVUludDMyIGZsYWdzKSwgKGNlbnRlciwgbGlz
dGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9iamVjdCwgZmxhZ3MpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIsIE9TU3RhdHVzLCAoQ01Ob3Rp
ZmljYXRpb25DZW50ZXJSZWYgY2VudGVyLCBjb25zdCB2b2lkKiBsaXN0ZW5lciwgQ01Ob3RpZmlj
YXRpb25DYWxsYmFjayBjYWxsYmFjaywgQ0ZTdHJpbmdSZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2
b2lkKiBvYmplY3QpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwg
b2JqZWN0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9v
bGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01J
dGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZv
ICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNv
bnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCks
IChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNr
LCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVt
U2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRy
aWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxv
Y2F0b3IsIHNidWYsIHNidWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRv
ciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVU
aW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5
LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNC
dWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91
dCksIFBBTF9FWFBPUlQpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5LCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBD
TUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1T
YW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXpl
RW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVm
KiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNjcmlw
dGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJy
YXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNhbXBsZUJ1ZmZlck91
dCksIFBBTF9FWFBPUlQpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVh
biBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRh
UmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVt
Q291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBz
YW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0
IHNpemVfdCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChh
bGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBt
YWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2Ft
cGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVz
LCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlQ29weSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxl
QnVmZmVyUmVmIHNidWYsIENNU2FtcGxlQnVmZmVyUmVmKiBzYnVmQ29weU91dCksIChhbGxvY2F0
b3IsIHNidWYsIHNidWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1p
bmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBD
TVNhbXBsZUJ1ZmZlclJlZiogc0J1ZkNvcHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYs
IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1h
Z2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwg
Y29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVm
KiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBz
YW1wbGVUaW1pbmcsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRl
Rm9ySW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVklt
YWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZm
ZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtl
RGF0YVJlYWR5UmVmY29uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1
ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGRhdGFS
ZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5nLCBzYW1wbGVCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wLCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQpAQCAtMTE2LDE0ICsxMzIsMTUgQEAgU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0UHJlc2UKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uLCBD
TVRpbWUsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVmZmVyUmVm
IHNidWYsIEJvb2xlYW4gY3JlYXRlSWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZOZWNlc3Nh
cnkpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5
LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHRpbWluZ0Fy
cmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvICp0aW1pbmdBcnJheU91dCwgQ01JdGVtQ291
bnQgKnRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1pbmdBcnJheUVudHJp
ZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCBQQUxfRVhQ
T1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMyX3Qg
bmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3VGlt
ZXNjYWxlLCBtZXRob2QpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNv
dW50IHRpbWluZ0FycmF5RW50cmllcywgQ01TYW1wbGVUaW1pbmdJbmZvKiB0aW1pbmdBcnJheU91
dCwgQ01JdGVtQ291bnQqIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCB0aW1p
bmdBcnJheUVudHJpZXMsIHRpbWluZ0FycmF5T3V0LCB0aW1pbmdBcnJheUVudHJpZXNOZWVkZWRP
dXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplLCBzaXpl
X3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyU2V0RGF0YUJ1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVm
LCBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciksIChzYnVmLCBidWZmZXIpLCBQQUxfRVhQT1JUKQor
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01HZXRBdHRhY2htZW50LCBDRlR5cGVSZWYsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFy
Z2V0LCBDRlN0cmluZ1JlZiBrZXksIENNQXR0YWNobWVudE1vZGUqIGF0dGFjaG1lbnRNb2RlT3V0
KSwgKHRhcmdldCwga2V5LCBhdHRhY2htZW50TW9kZU91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TZXRB
dHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdS
ZWYga2V5LCBDRlR5cGVSZWYgdmFsdWUsIENNQXR0YWNobWVudE1vZGUgYXR0YWNobWVudE1vZGUp
LCAodGFyZ2V0LCBrZXksIHZhbHVlLCBhdHRhY2htZW50TW9kZSksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01S
ZW1vdmVBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZT
dHJpbmdSZWYga2V5KSwgKHRhcmdldCwga2V5KSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3Jl
YXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFzZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxs
b2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQpLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1l
YmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0
KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBD
TVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1l
YmFzZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdldFJhdGUsIEZsb2F0NjQsIChDTVRpbWVi
YXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0
UmF0ZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlLCBGbG9hdDY0IHJhdGUpLCAo
dGltZWJhc2UsIHJhdGUpLCBQQUxfRVhQT1JUKQpAQCAtMTQ0LDExICsxNjEsMTMgQEAgU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVm
ZmVyUXVldWVEZXF1ZXVlQW4KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSwgT1NTdGF0dXMsIChDTUJ1
ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclJlZiBidWZmZXIpLCAocXVldWUsIGJ1ZmZlciks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUlzRW1wdHksIEJvb2xlYW4sIChDTUJ1ZmZlclF1
ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVm
ZmVyQ291bnQsIENNSXRlbUNvdW50LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSks
IFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxl
QnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3MgKiwgKCksICgpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0
IENNQnVmZmVyQ2FsbGJhY2tzKiwgKCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVH
ZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBx
dWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRh
dGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSks
IFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENN
QnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJh
Y2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9u
LCBDTVRpbWUgdGltZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0
KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVmY29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tl
bk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVn
ZXJUaHJlc2hvbGQsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJR
dWV1ZVRyaWdnZXJDYWxsYmFjayB0cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24s
IENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNv
dW50IHRyaWdnZXJUaHJlc2hvbGQsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJU
b2tlbk91dCksIChxdWV1ZSwgdHJpZ2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2Vy
Q29uZGl0aW9uLCB0cmlnZ2VyVGhyZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVS
ZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXREdXJhdGlv
biwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQp
CiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwg
UEFMX0VYUE9SVCkKQEAgLTE2OCw0MCArMTg3LDQwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBs
CiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgQ0ZTdHJp
bmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCwg
Q0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICos
IChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkK
KworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwg
c2l6ZV90IGxheW91dFNpemUsIGNvbnN0IEF1ZGlvQ2hhbm5lbExheW91dCogbGF5b3V0LCBzaXpl
X3QgbWFnaWNDb29raWVTaXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5
UmVmIGV4dGVuc2lvbnMsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChh
bGxvY2F0b3IsIGFzYmQsIGxheW91dFNpemUsIGxheW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdp
Y0Nvb2tpZSwgZXh0ZW5zaW9ucywgb3V0RGVzYyksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIGRlc2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qLCAoQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0
SXRlbSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VY
UE9SVCkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgc3RydWN0dXJlQWxsb2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6
ZV90IGJsb2NrTGVuZ3RoLCBDRkFsbG9jYXRvclJlZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01C
bG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNlKiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9m
ZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywg
Q01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBt
ZW1vcnlCbG9jaywgYmxvY2tMZW5ndGgsIGJsb2NrQWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJj
ZSwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxf
RVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxv
Y2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZm
ZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0T3V0LCBzaXpl
X3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENG
QWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2Nr
QnVmZmVyUmVmICpibG9ja0J1ZmZlck91dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91
dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJi
dWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBibG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwg
T1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QqIGJ1ZmZlckxpc3RTaXpl
TmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJM
aXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JS
ZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYq
IGJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJM
aXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFs
bG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldE51bVNhbXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziks
IChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JS
YW5nZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVy
UmVmIHNidWYsIENGUmFuZ2Ugc2FtcGxlUmFuZ2UsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0
KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2FtcGxlUmFuZ2UsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVm
ZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVfdCogc2l6ZUFy
cmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCBz
aXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNOZWVkZWRPdXQp
LCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVm
ZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VE
YXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQgKm1ha2VEYXRhUmVh
ZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRl
bUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tl
dERlc2NyaXB0aW9uICpwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmICpzQnVm
T3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2Fs
bGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVz
LCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRv
ciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNv
bnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2Nh
dG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCksIFBBTF9FWFBPUlQp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZm
ZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFj
ayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBs
ZXMsIENNVGltZSBzYnVmUFRTLCBjb25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uKiBw
YWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRv
ciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRh
UmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNr
ZXREZXNjcmlwdGlvbnMsIHNCdWZPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENN
VGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGNvbnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3Jp
cHRpb24qIHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZl
ck91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1w
bGVzLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIHBhY2tldERlc2NyaXB0aW9ucywgc2FtcGxlQnVm
ZmVyT3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVk
aW9CdWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENGQWxsb2Nh
dG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxv
Y2F0b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3Qp
LCAoc2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3Ms
IGJ1ZmZlckxpc3QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXpl
X3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBt
YWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYg
ZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9j
YXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29v
a2llLCBleHRlbnNpb25zLCBvdXREZXNjKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRNYWdpY0Nvb2tpZSwgY29uc3Qgdm9pZCosIChDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZGVzYywgc2l6ZV90KiBzaXplT3V0KSwgKGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQ
T1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQs
IGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJl
c2VudGF0aW9uVGltZVN0YW1wLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENN
VGltZSBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCAoc2J1Ziwgb3V0cHV0UHJlc2VudGF0
aW9uVGltZVN0YW1wKSwgUEFMX0VYUE9SVCkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrLCBD
TUNsb2NrUmVmLCAodm9pZCksICgpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRUaW1lLCBDTVRp
bWUsIChDTUNsb2NrUmVmIGNsb2NrKSwgKGNsb2NrKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrQ29u
dmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cywgdWludDY0X3QsIChDTVRpbWUgaG9zdFRpbWUpLCAo
aG9zdFRpbWUpLCBQQUxfRVhQT1JUKQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBs
ZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKiBDTVNBTVBM
RUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVC
dWZmZXIsIENNSXRlbUNvdW50IGluZGV4LCB2b2lkICpyZWZjb24pLCB2b2lkICpyZWZjb24pLCAo
c2J1ZiwgY2FsbGJhY2ssIHJlZmNvbiksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxs
QmxvY2tGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9T
U3RhdHVzICheIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1
ZmZlclJlZiwgQ01JdGVtQ291bnQpKSwgKHNidWYsIGhhbmRsZXIpLCBQQUxfRVhQT1JUKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJS
ZWYgc2J1ZiwgT1NTdGF0dXMgKCpDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2sp
KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQq
IHJlZmNvbiksIHZvaWQqIHJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VY
UE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF5DTVNBTVBMRUJVRkZFUkNBTExfTk9F
U0NBUEUgaGFuZGxlcikoQ01TYW1wbGVCdWZmZXJSZWYsIENNSXRlbUNvdW50KSksIChzYnVmLCBo
YW5kbGVyKSwgUEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRv
ciwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQorCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRp
b25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0LCBDRlN0cmluZ1JlZiwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fc1JHQiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09D
T0EpCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwg
KGFsbG9jYXRvciwgY2xvY2tPdXQpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGlt
ZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMiksIFBBTF9FWFBP
UlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01UaW1lTWluaW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIp
LCAodGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwg
Qm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUgdGltZSksIChyYW5nZSwgdGltZSks
IFBBTF9FWFBPUlQpCi0KLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lLCBQQUxfRVhQT1JUKQot
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
CiAKICNpZiBQTEFURk9STShNQUMpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1
cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZTdHJpbmdSZWYgZGV2aWNlVUlELCBDTUNs
b2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGRldmljZVVJRCwgY2xvY2tPdXQpLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiogY2xvY2tP
dXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJh
c2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSwgdm9pZCosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9i
amVjdCksIChiYXNlT2JqZWN0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXRWVGFibGUs
IGNvbnN0IENNQmFzZVZUYWJsZSosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNl
T2JqZWN0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTURlcml2ZWRPYmplY3RDcmVhdGUsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBDTUJhc2VWVGFibGUqIHZUYWJsZSwgQ01C
YXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIGJhc2VPYmplY3QpLCAoYWxsb2Nh
dG9yLCB2VGFibGUsIGNsYXNzSUQsIGJhc2VPYmplY3QpLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDc1MjViOTE5YzY5
NWQzNjA5N2IxMTEwMzJiOTRmNzQ3ZjE1MWYxZjAuLjNlMTY2ZmI3OWIyMWI5OGI1NDhmMzhmYTdi
YmU2YTM0ZjQwMzkzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmgKQEAgLTYzLDEyICs2MywxNSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLAog
I2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm8gc29mdExpbmtfQ29yZU1l
ZGlhX0NNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mbwogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHksIEJv
b2xlYW4sIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBs
ZUJ1ZmZlckRhdGFJc1JlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckRhdGFJ
c1JlYWR5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01U
aW1lQ29udmVydFNjYWxlLCBDTVRpbWUsIChDTVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2Nh
bGUsIENNVGltZVJvdW5kaW5nTWV0aG9kIG1ldGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1l
dGhvZCkpCi0jZGVmaW5lIENNVGltZUNvbnZlcnRTY2FsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01U
aW1lQ29udmVydFNjYWxlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01JdGVt
Q291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBz
YW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIGNvbnN0
IHNpemVfdCogc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVy
T3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBs
ZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVT
aXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzYW1wbGVCdWZmZXJPdXQpKQorI2RlZmluZSBD
TVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
ckNyZWF0ZVJlYWR5CisKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVRpbWVBZGQsIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRp
bWUxLCB0aW1lMikpCiAjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
QWRkCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1l
Q29tcGFyZSwgaW50MzJfdCwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMikpCiAjZGVmaW5lIENNVGltZUNvbXBhcmUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUNv
bXBhcmUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRp
bWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGltZSB0aW1lLCBpbnQzMl90IG5ld1RpbWVzY2Fs
ZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9kKSwgKHRpbWUsIG5ld1RpbWVzY2FsZSwgbWV0
aG9kKSkKKyNkZWZpbmUgQ01UaW1lQ29udmVydFNjYWxlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRp
bWVDb252ZXJ0U2NhbGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiAj
ZGVmaW5lIENNVGltZUdldFNlY29uZHMgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUdldFNlY29u
ZHMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVN
YWtlLCBDTVRpbWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2FsZSksICh2YWx1ZSwg
dGltZXNjYWxlKSkKQEAgLTgzLDMzICs4Niw0NyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VNYWtlLCBDTVRpbWVSYW5nZSwgKENNVAog
I2RlZmluZSBDTVRpbWVSYW5nZU1ha2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZVJhbmdlTWFr
ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJh
bmdlRXF1YWwsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZTEsIENNVGltZVJhbmdlIHJhbmdl
MiksIChyYW5nZTEsIHJhbmdlMikpCiAjZGVmaW5lIENNVGltZVJhbmdlRXF1YWwgc29mdExpbmtf
Q29yZU1lZGlhX0NNVGltZVJhbmdlRXF1YWwKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENN
VGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorI2RlZmluZSBDTVRpbWVNYXhpbXVtIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVRpbWVNYXhpbXVtCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBD
TVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKKyNkZWZpbmUgQ01UaW1lTWluaW11bSBzb2Z0
TGlua19Db3JlTWVkaWFfQ01UaW1lTWluaW11bQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29udGFpbnNUaW1lLCBCb29sZWFuLCAoQ01U
aW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJhbmdlLCB0aW1lKSkKKyNkZWZpbmUgQ01U
aW1lUmFuZ2VDb250YWluc1RpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZVJhbmdlQ29udGFp
bnNUaW1lCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBr
Q01UaW1lSW52YWxpZCwgQ01UaW1lKQorI2RlZmluZSBrQ01UaW1lSW52YWxpZCBnZXRfQ29yZU1l
ZGlhX2tDTVRpbWVJbnZhbGlkKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lKQorI2RlZmluZSBrQ01UaW1lWmVybyBnZXRf
Q29yZU1lZGlhX2tDTVRpbWVaZXJvKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSwgQ01UaW1lKQorI2RlZmluZSBr
Q01UaW1lUG9zaXRpdmVJbmZpbml0eSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVQb3NpdGl2ZUluZmlu
aXR5KCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01U
aW1lUmFuZ2VJbnZhbGlkLCBDTVRpbWVSYW5nZSk7CisjZGVmaW5lIGtDTVRpbWVSYW5nZUludmFs
aWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lUmFuZ2VJbnZhbGlkKCkKK1NPRlRfTElOS19DT05TVEFO
VF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQor
I2RlZmluZSBrQ01UaW1lSW5kZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRl
KCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMs
IENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1w
bGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcygpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRp
b25Db2xvclByaW1hcmllc19EQ0lfUDMsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RD
SV9QMyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1h
dERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVz
Y3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNj
cmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19J
VFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwIGdldF9D
b3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRp
b25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRp
b25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVz
X1AzX0Q2NSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5z
aW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1IGdldF9Db3JlTWVk
aWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xv
clByaW1hcmllc19QM19ENjUoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJp
bWFyaWVzX1AzX0Q2NSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmlt
YXJpZXNfUDNfRDY1KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbywgQ0ZTdHJp
bmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERl
c2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0
RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJh
bmdlVmlkZW8oKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFu
Z2VWaWRlbyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1bGxS
YW5nZVZpZGVvKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCwgQ0ZTdHJp
bmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0
aW9uX0lUVV9SXzIwMjAoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9JVFVfUl8yMDIwKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1Jf
MjEwMF9ITEcsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVu
c2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcg
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNj
cmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcoKQorI2RlZmluZSBrQ01Gb3Jt
YXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjEwMF9ITEcoKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIsIENGU3RyaW5nUmVmKQotI2RlZmluZSBr
Q01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fTGluZWFyIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhcigpCisjZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIgZ2V0X0NvcmVNZWRp
YV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyKCkKIFNPRlRfTElO
S19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRF
X1NUXzIwODRfUFEoKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fU01QVEVfU1RfMjA4NF9QUSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fU01QVEVfU1RfNDI4XzEsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVf
U1RfNDI4XzEgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEoKQorI2RlZmlu
ZSBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfNDI4XzEgZ2V0
X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1Rf
NDI4XzEoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtD
TUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCwgQ0ZTdHJpbmdSZWYpCi0j
ZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9u
WUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9u
RXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAyMCgpCi1T
T0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NN
Rm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0
LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fUHJv
dGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0KCkKLVNPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQiwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtD
TUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9zUkdCIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKQorI2RlZmluZSBrQ01G
b3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjAoKQorCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5
cGVfRW5kLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVf
RW5kIGdldF9Db3JlTWVkaWFfa0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kKCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0TWFya3VwQWxp
Z25tZW50VHlwZV9NaWRkbGUsIENGU3RyaW5nUmVmKQpAQCAtMTQ4LDE0ICsxNjUsNiBAQCBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZlcnRpY2Fs
TGF5b3V0X0xlZnRUb1JpZ2h0LAogI2RlZmluZSBrQ01UZXh0VmVydGljYWxMYXlvdXRfTGVmdFRv
UmlnaHQgZ2V0X0NvcmVNZWRpYV9rQ01UZXh0VmVydGljYWxMYXlvdXRfTGVmdFRvUmlnaHQoKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRWZXJ0
aWNhbExheW91dF9SaWdodFRvTGVmdCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTVRleHRWZXJ0
aWNhbExheW91dF9SaWdodFRvTGVmdCBnZXRfQ29yZU1lZGlhX2tDTVRleHRWZXJ0aWNhbExheW91
dF9SaWdodFRvTGVmdCgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwga0NNVGltZUludmFsaWQsIENNVGltZSkKLSNkZWZpbmUga0NNVGltZUludmFsaWQgZ2V0
X0NvcmVNZWRpYV9rQ01UaW1lSW52YWxpZCgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNVGltZVplcm8sIENNVGltZSkKLSNkZWZpbmUga0NNVGltZVpl
cm8gUEFMOjpnZXRfQ29yZU1lZGlhX2tDTVRpbWVaZXJvKCkKLVNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSwgQ01UaW1l
KQotI2RlZmluZSBrQ01UaW1lUG9zaXRpdmVJbmZpbml0eSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVQ
b3NpdGl2ZUluZmluaXR5KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBrQ01UaW1lUmFuZ2VJbnZhbGlkLCBDTVRpbWVSYW5nZSk7Ci0jZGVmaW5lIGtDTVRp
bWVSYW5nZUludmFsaWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lUmFuZ2VJbnZhbGlkKCkKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQogCkBAIC0xNjMsMTkgKzE3MiwyMSBAQCBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlh
U3ViVHlwZQogI2RlZmluZSBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlv
bkdldE1lZGlhVHlwZSwgQ01NZWRpYVR5cGUsIChDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2Mp
LCAoZGVzYykpCiAjZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUgc29mdExp
bmtfQ29yZU1lZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUKKwogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVy
R2V0RGVmYXVsdExvY2FsQ2VudGVyLCBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgKHZvaWQpLCAo
KSkKICNkZWZpbmUgQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIgc29m
dExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVy
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmlj
YXRpb25DZW50ZXJBZGRMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJl
ZiBjZW50ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNh
bGxiYWNrLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCwgVUlu
dDMyIGZsYWdzKSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9i
amVjdCwgZmxhZ3MpKQogI2RlZmluZSBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50
ZXJSZW1vdmVMaXN0ZW5lciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50
ZXIsIGNvbnN0IHZvaWQqIGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNr
LCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIs
IGxpc3RlbmVyLCBjYWxsYmFjaywgbm90aWZpY2F0aW9uLCBvYmplY3QpKQogI2RlZmluZSBDTU5v
dGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTU5vdGlm
aWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4g
ZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJl
YWR5Q2FsbGJhY2ssIHZvaWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNv
dW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyAqc2Ft
cGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBz
aXplX3QgKnNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxs
b2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFr
ZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIG51bVNhbXBs
ZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBudW1TYW1wbGVTaXplRW50cmllcywg
c2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSkKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFu
IGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFS
ZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNh
bXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1wbGVTaXplRW50cmllcywgY29uc3Qg
c2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmT3V0KSwgKGFs
bG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1h
a2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1w
bGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMs
IHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRl
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIENNU2FtcGxlQnVmZmVyUmVmICpzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNi
dWZDb3B5T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2J1ZkNv
cHlPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYnVmQ29weU91dCkpCiAjZGVmaW5lIENNU2FtcGxl
QnVmZmVyQ3JlYXRlQ29weSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVU
aW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJSZWYgKnNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwg
b3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwg
c0J1ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENN
SXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5m
byogc2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChh
bGxvY2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGlt
aW5nQXJyYXksIHNCdWZDb3B5T3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5
V2l0aE5ld1RpbWluZwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2Ft
cGxlVGltaW5nSW5mbyAqc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1Zk91dCks
IChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGltaW5n
LCBzQnVmT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAo
YWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywg
c0J1Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZm
ZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVh
ZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxs
YmFjaywgdm9pZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRp
bWluZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGlt
YWdlQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFk
eVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc2FtcGxlQnVmZmVyT3V0
KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlcgpAQCAtMTkzLDE5ICsy
MDQsMjEgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW8KICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJH
ZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxl
QnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2ht
ZW50c0FycmF5LCBDRkFycmF5UmVmLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQm9vbGVhbiBj
cmVhdGVJZk5lY2Vzc2FyeSksIChzYnVmLCBjcmVhdGVJZk5lY2Vzc2FyeSkpCiAjZGVmaW5lIENN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5Ci1TT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1p
bmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291
bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWluZ0luZm8gKnRpbWluZ0FycmF5T3V0
LCBDTUl0ZW1Db3VudCAqdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNidWYsIHRpbWlu
Z0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWluZ0FycmF5RW50cmllc05lZWRlZE91
dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWlu
Z0luZm8qIHRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCogdGltaW5nQXJyYXlFbnRyaWVzTmVl
ZGVkT3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWlu
Z0FycmF5RW50cmllc05lZWRlZE91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mb0FycmF5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplLCBzaXplX3QsIChDTVNhbXBs
ZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldFRvdGFs
U2FtcGxlU2l6ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBs
ZVNpemUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNh
bXBsZUJ1ZmZlclNldERhdGFCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgQ01CbG9ja0J1ZmZlclJlZiBidWZmZXIpLCAoc2J1ZiwgYnVmZmVyKSkKICNkZWZpbmUgQ01T
YW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
clNldERhdGFCdWZmZXIKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNR2V0QXR0YWNobWVudCwgQ0ZUeXBlUmVmLCAoQ01BdHRhY2htZW50QmVhcmVyUmVm
IHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDTUF0dGFjaG1lbnRNb2RlKiBhdHRhY2htZW50TW9k
ZU91dCksICh0YXJnZXQsIGtleSwgYXR0YWNobWVudE1vZGVPdXQpKQogI2RlZmluZSBDTUdldEF0
dGFjaG1lbnQgc29mdExpbmtfQ29yZU1lZGlhX0NNR2V0QXR0YWNobWVudAogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwg
KENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ0ZUeXBlUmVm
IHZhbHVlLCBDTUF0dGFjaG1lbnRNb2RlIGF0dGFjaG1lbnRNb2RlKSwgKHRhcmdldCwga2V5LCB2
YWx1ZSwgYXR0YWNobWVudE1vZGUpKQogI2RlZmluZSBDTVNldEF0dGFjaG1lbnQgc29mdExpbmtf
Q29yZU1lZGlhX0NNU2V0QXR0YWNobWVudAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNUmVtb3ZlQXR0YWNobWVudCwgdm9pZCwgKENNQXR0YWNobWVudEJl
YXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSksICh0YXJnZXQsIGtleSkpCiAjZGVmaW5l
IENNUmVtb3ZlQXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01SZW1vdmVBdHRhY2htZW50
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFz
ZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYgKnRpbWViYXNlT3V0KSwg
KGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKKworU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVy
Q2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1h
c3RlckNsb2NrLCBDTVRpbWViYXNlUmVmKiB0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3Rl
ckNsb2NrLCB0aW1lYmFzZU91dCkpCiAjZGVmaW5lIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVy
Q2xvY2sgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2sK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNl
R2V0VGltZSwgQ01UaW1lLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSkpCiAj
ZGVmaW5lIENNVGltZWJhc2VHZXRUaW1lIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlR2V0
VGltZQpAQCAtMjI3LDcgKzI0MCw3IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvCiAjZGVmaW5l
IENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHkgc29mdExp
bmtfQ29yZU1lZGlhX0NNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRp
YXRlbHkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRp
bWVDb3B5QXNEaWN0aW9uYXJ5LCBDRkRpY3Rpb25hcnlSZWYsIChDTVRpbWUgdGltZSwgQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yKSwgKHRpbWUsIGFsbG9jYXRvcikpCiAjZGVmaW5lIENNVGltZUNv
cHlBc0RpY3Rpb25hcnkgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUNvcHlBc0RpY3Rpb25hcnkK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiAqb3V0RGVzYyksIChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBvdXRE
ZXNjKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGltYWdlQnVmZmVy
LCBvdXREZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1h
Z2VCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZUZvckltYWdlQnVmZmVyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucywgQ01WaWRlb0RpbWVu
c2lvbnMsIChDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9EZXNjKSwgKHZpZGVvRGVz
YykpCiAjZGVmaW5lIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMgc29mdExp
bmtfQ29yZU1lZGlhX0NNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMKQEAgLTI0
OSwyMyArMjYyLDIzIEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlCiAjZGVmaW5lIENNQnVmZmVy
UXVldWVHZXRCdWZmZXJDb3VudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdldEJ1
ZmZlckNvdW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1
ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEZp
cnN0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVl
R2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRT
YW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAqLCAoKSwgKCkpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3Mq
LCAoKSwgKCkpCiAjZGVmaW5lIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNh
bXBsZUJ1ZmZlcnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NG
b3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wLCBD
TVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZm
ZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01C
dWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcAorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlciwg
T1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNh
bGxiYWNrIGNhbGxiYWNrLCB2b2lkKiByZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2VyQ29uZGl0
aW9uIGNvbmRpdGlvbiwgQ01UaW1lIHRpbWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRy
aWdnZXJUb2tlbk91dCksIChxdWV1ZSwgY2FsbGJhY2ssIHJlZmNvbiwgY29uZGl0aW9uLCB0aW1l
LCB0cmlnZ2VyVG9rZW5PdXQpKQorI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIg
c29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcgogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJbnN0YWxs
VHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYg
cXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgdHJpZ2dlckNhbGxiYWNrLCB2b2lk
KiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNvbmRpdGlvbiB0cmlnZ2VyQ29u
ZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmlnZ2VyVGhyZXNob2xkLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dl
clRva2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIHRyaWdnZXJDYWxsYmFjaywgdHJpZ2dl
clJlZmNvbiwgdHJpZ2dlckNvbmRpdGlvbiwgdHJpZ2dlclRocmVzaG9sZCwgdHJpZ2dlclRva2Vu
T3V0KSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJl
c2hvbGQgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJ
bnRlZ2VyVGhyZXNob2xkCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1
ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCiAjZGVmaW5lIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRh
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXREdXJh
dGlvbiwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCisjZGVmaW5l
IENNQnVmZmVyUXVldWVHZXREdXJhdGlvbiBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1
ZUdldER1cmF0aW9uCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSwgQ0ZTdHJpbmdSZWYpCiAj
ZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5IGdldF9Db3JlTWVkaWFf
a0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkoKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3lu
YywgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyBn
ZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYygpCi1TT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtl
eV9EaXNwbGF5SW1tZWRpYXRlbHksIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01TYW1wbGVBdHRh
Y2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUF0dGFj
aG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5KCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5
T3RoZXJzLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0Rl
cGVuZGVkT25CeU90aGVycyBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNE
ZXBlbmRlZE9uQnlPdGhlcnMoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRGlzcGxheUVtcHR5TWVkaWFJ
bW1lZGlhdGVseSwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1l
bnRLZXlfRGlzcGxheUVtcHR5TWVkaWFJbW1lZGlhdGVseSBnZXRfQ29yZU1lZGlhX2tDTVNhbXBs
ZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRGlzcGxheUVtcHR5TWVkaWFJbW1lZGlhdGVseSgpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVy
QXR0YWNobWVudEtleV9EcmFpbkFmdGVyRGVjb2RpbmcsIENGU3RyaW5nUmVmKQpAQCAtMjgwLDEw
ICsyOTMsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfU2FtcGwKICNkZWZpbmUga0NNU2FtcGxlQnVm
ZmVyQXR0YWNobWVudEtleV9TYW1wbGVSZWZlcmVuY2VCeXRlT2Zmc2V0IGdldF9Db3JlTWVkaWFf
a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9TYW1wbGVSZWZlcmVuY2VCeXRlT2Zmc2V0KCkK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVC
dWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJlZmVyZW5jZVVSTCwgQ0ZTdHJpbmdSZWYpCiAjZGVm
aW5lIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfU2FtcGxlUmVmZXJlbmNlVVJMIGdldF9D
b3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9TYW1wbGVSZWZlcmVuY2VVUkwo
KQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVi
YXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCBDRlN0cmluZ1JlZikKLSNkZWZp
bmUga0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQgZ2V0X0NvcmVN
ZWRpYV9rQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCgpCi1TT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3Rp
ZmljYXRpb25fVGltZUp1bXBlZCwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTVRpbWViYXNlTm90
aWZpY2F0aW9uX1RpbWVKdW1wZWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lYmFzZU5vdGlmaWNhdGlv
bl9UaW1lSnVtcGVkKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwgQ0ZTdHJpbmdS
ZWYpCisjZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5IGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHkoKQor
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0
dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMsIENGU3RyaW5nUmVmKQorI2RlZmluZSBr
Q01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzIGdldF9Db3JlTWVkaWFf
a0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycygpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQ29uc3Vt
ZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01T
YW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCBnZXRfQ29yZU1l
ZGlhX2tDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkKCkK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVC
dWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uLCBDRlN0cmluZ1Jl
ZikKQEAgLTI5Myw3MSArMzA2LDc5IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1CiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgZ2V0X0NvcmVNZWRpYV9rQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1RyaW1EdXJhdGlvbkF0U3RhcnQsIENGU3RyaW5nUmVm
KQogI2RlZmluZSBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfVHJp
bUR1cmF0aW9uQXRTdGFydCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRL
ZXlfVHJpbUR1cmF0aW9uQXRTdGFydCgpCiAKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hh
bmdlZCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVj
dGl2ZVJhdGVDaGFuZ2VkIGdldF9Db3JlTWVkaWFfa0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZm
ZWN0aXZlUmF0ZUNoYW5nZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQsIENGU3RyaW5nUmVm
KQorI2RlZmluZSBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkIGdldF9Db3JlTWVk
aWFfa0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCgpCisKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRp
b0NoYW5uZWxMYXlvdXQqIGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9p
ZCogbWFnaWNDb29raWUsIENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBs
YXlvdXQsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2Mp
KQorI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgc29mdExpbmtfQ29yZU1l
ZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2lj
Q29va2llLCBjb25zdCB2b2lkKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjLCBz
aXplX3QqIHNpemVPdXQpLCAoZGVzYywgc2l6ZU91dCkpCiAjZGVmaW5lIENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVz
Y3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiAqLCAoQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiwgKENN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogI2RlZmluZSBDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHNvZnRMaW5rX0NvcmVN
ZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRM
aXN0SXRlbSosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKKyNk
ZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCBz
b2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29k
YWJsZUZvcm1hdAorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaywgT1NTdGF0dXMsIChDRkFsbG9j
YXRvclJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZvaWQqIG1lbW9yeUJsb2NrLCBzaXplX3QgYmxv
Y2tMZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2NrQWxsb2NhdG9yLCBjb25zdCBDTUJsb2NrQnVm
ZmVyQ3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJsb2NrU291cmNlLCBzaXplX3Qgb2Zmc2V0VG9E
YXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9ja0J1ZmZlckZsYWdzIGZsYWdzLCBDTUJsb2Nr
QnVmZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChzdHJ1Y3R1cmVBbGxvY2F0b3IsIG1lbW9yeUJs
b2NrLCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0b3IsIGN1c3RvbUJsb2NrU291cmNlLCBvZmZz
ZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBibG9ja0J1ZmZlck91dCkpCiAjZGVmaW5lIENN
QmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxv
Y2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhS
ZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNp
emVfdCAqYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlz
dE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxs
b2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFn
cywgQ01CbG9ja0J1ZmZlclJlZiAqYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNp
emVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxs
b2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90KiBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVk
aW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxs
b2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlB
bGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmKiBibG9ja0J1ZmZlck91
dCksIChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVy
TGlzdFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdz
LCBibG9ja0J1ZmZlck91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJM
aXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVm
ZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE51bVNh
bXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNk
ZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlckdldE51bVNhbXBsZXMKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxl
Rm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtICosIChDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZGVzYyksIChkZXNjKSkKLSNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdAorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9y
eSwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpKQor
I2RlZmluZSBDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkgc29mdExpbmtfQ29yZU1lZGlh
X0NNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciwgT1NTdGF0
dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciwgc2l6ZV90IG9mZnNldCwgc2l6ZV90KiBs
ZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0b3RhbExlbmd0aE91dCwgY2hhcioqIGRhdGFQb2lu
dGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGhBdE9mZnNldE91dCwgdG90YWxMZW5n
dGhPdXQsIGRhdGFQb2ludGVyT3V0KSkKKyNkZWZpbmUgQ01CbG9ja0J1ZmZlckdldERhdGFQb2lu
dGVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIKKwogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1w
bGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1
Zk91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlU2l6ZUFycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IENNSXRlbUNvdW50IHNpemVBcnJheUVudHJpZXMsIHNpemVfdCogc2l6ZUFycmF5T3V0LCBDTUl0
ZW1Db3VudCogc2l6ZUFycmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCBzaXplQXJyYXlFbnRy
aWVzLCBzaXplQXJyYXlPdXQsIHNpemVBcnJheUVudHJpZXNOZWVkZWRPdXQpKQogI2RlZmluZSBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXkKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVz
Y3JpcHRpb25zLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1
ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtl
RGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkICptYWtlRGF0YVJl
YWR5UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0
ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRpbWUgc2J1ZlBUUywgY29uc3QgQXVkaW9TdHJlYW1QYWNr
ZXREZXNjcmlwdGlvbiAqcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1
Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNh
bGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxl
cywgc2J1ZlBUUywgcGFja2V0RGVzY3JpcHRpb25zLCBzQnVmT3V0KSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRl
V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2Ft
cGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9p
ZCogbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1
ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVC
dWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1h
a2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRp
b24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCkpCiAj
ZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2Ny
aXB0aW9ucwotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAo
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRv
ciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNv
bnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2Nh
dG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCkpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJl
ZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1l
IHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlv
biogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0
KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNhbXBsZXMs
IHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVzY3JpcHRpb25zLCBzYW1wbGVCdWZmZXJP
dXQpKQorI2RlZmluZSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVz
Y3JpcHRpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVy
TGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJlZiBi
YnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1
aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0KSwgKHNidWYs
IGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZmZXJM
aXN0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVy
TGlzdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1
ZGlvQnVmZmVyTGlzdAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVy
UmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyU2V0RGF0YVJlYWR5IHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlclNldERhdGFSZWFkeQotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxheW91dFNpemUsIGNvbnN0IEF1
ZGlvQ2hhbm5lbExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWNDb29raWVTaXplLCBjb25zdCB2
b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVuc2lvbnMsIENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3IsIGFzYmQsIGxheW91dFNpemUs
IGxheW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwgZXh0ZW5zaW9ucywgb3V0RGVz
YykpCi0jZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50
YXRpb25UaW1lU3RhbXAsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01UaW1l
IG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChzYnVmLCBvdXRwdXRQcmVzZW50YXRpb25U
aW1lU3RhbXApKQorI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRp
bWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50
YXRpb25UaW1lU3RhbXAKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrLCBDTUNsb2NrUmVmLCAodm9pZCksICgpKQot
I2RlZmluZSBDTUNsb2NrR2V0SG9zdFRpbWVDbG9jayAgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xv
Y2tHZXRIb3N0VGltZUNsb2NrCisjZGVmaW5lIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0SG9zdFRpbWVDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tHZXRUaW1lLCBDTVRpbWUsIChDTUNs
b2NrUmVmIGNsb2NrKSwgKGNsb2NrKSkKLSNkZWZpbmUgQ01DbG9ja0dldFRpbWUgIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTUNsb2NrR2V0VGltZQorI2RlZmluZSBDTUNsb2NrR2V0VGltZSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01DbG9ja0dldFRpbWUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cywgdWlu
dDY0X3QsIChDTVRpbWUgaG9zdFRpbWUpLCAoaG9zdFRpbWUpKQogI2RlZmluZSBDTUNsb2NrQ29u
dmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cyBzb2Z0TGlua19Db3JlTWVkaWFfQ01DbG9ja0NvbnZl
cnRIb3N0VGltZVRvU3lzdGVtVW5pdHMKIAotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUsIE9TU3RhdHVz
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCogQ01TQU1QTEVCVUZGRVJDQUxM
X05PRVNDQVBFIGNhbGxiYWNrKShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRl
bUNvdW50IGluZGV4LCB2b2lkICpyZWZjb24pLCB2b2lkICpyZWZjb24pLCAoc2J1ZiwgY2FsbGJh
Y2ssIHJlZmNvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxs
YmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwg
dm9pZCogcmVmY29uKSwgdm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pKQog
I2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxvY2tGb3JFYWNoU2Ft
cGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICheIENNU0FN
UExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVt
Q291bnQpKSwgKHNidWYsIGhhbmRsZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSwgT1NT
dGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNNU0FNUExFQlVGRkVS
Q0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01JdGVtQ291bnQpKSwg
KHNidWYsIGhhbmRsZXIpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hT
YW1wbGUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNh
bXBsZQogCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCi0KLSNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb0Nsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01D
bG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3JlYXRlLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiogY2xvY2tPdXQpLCAo
YWxsb2NhdG9yLCBjbG9ja091dCkpCiAjZGVmaW5lIENNQXVkaW9DbG9ja0NyZWF0ZSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01BdWRpb0Nsb2NrQ3JlYXRlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWF4aW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUx
LCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKLSNkZWZpbmUgQ01UaW1lTWF4aW11bSBz
b2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWF4aW11bQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1pbmltdW0sIENNVGltZSwgKENNVGltZSB0aW1l
MSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCi0jZGVmaW5lIENNVGltZU1pbmltdW0g
c29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1pbmltdW0KLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwg
KENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUgdGltZSksIChyYW5nZSwgdGltZSkpCi0jZGVmaW5l
IENNVGltZVJhbmdlQ29udGFpbnNUaW1lIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVSYW5nZUNv
bnRhaW5zVGltZQogCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKLSNkZWZpbmUga0NNVGltZUluZGVmaW5pdGUg
Z2V0X0NvcmVNZWRpYV9rQ01UaW1lSW5kZWZpbml0ZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRl
bnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFsRm9ybWF0LCBDRlN0cmluZ1JlZikKKyNkZWZp
bmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fUHJvdGVjdGVkQ29udGVudE9yaWdpbmFs
Rm9ybWF0IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fUHJvdGVj
dGVkQ29udGVudE9yaWdpbmFsRm9ybWF0KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fc1JHQiwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9zUkdCIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFu
c2ZlckZ1bmN0aW9uX3NSR0IoKQogCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNl
bmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0Ny
ZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRl
dmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNs
b2NrT3V0KSkKLSNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlICBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZTdHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2Nr
UmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRldmljZVVJRCwgY2xvY2tPdXQpKQorI2RlZmlu
ZSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZp
Y2VDbG9ja0NyZWF0ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlLCB2b2lkKiwgKENNQmFzZU9iamVjdFJl
ZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpKQotI2RlZmluZSBDTUJhc2VPYmplY3RHZXREZXJp
dmVkU3RvcmFnZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXREZXJpdmVk
U3RvcmFnZQorI2RlZmluZSBDTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFnZSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJhc2VPYmplY3RHZXRWVGFibGUsIGNvbnN0
IENNQmFzZVZUYWJsZSosIChDTUJhc2VPYmplY3RSZWYgYmFzZU9iamVjdCksIChiYXNlT2JqZWN0
KSkKLSNkZWZpbmUgQ01CYXNlT2JqZWN0R2V0VlRhYmxlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlh
X0NNQmFzZU9iamVjdEdldFZUYWJsZQorI2RlZmluZSBDTUJhc2VPYmplY3RHZXRWVGFibGUgc29m
dExpbmtfQ29yZU1lZGlhX0NNQmFzZU9iamVjdEdldFZUYWJsZQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNRGVyaXZlZE9iamVjdENyZWF0ZSwgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogdlRhYmxl
LCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiogYmFzZU9iamVjdCksIChh
bGxvY2F0b3IsIHZUYWJsZSwgY2xhc3NJRCwgYmFzZU9iamVjdCkpCi0jZGVmaW5lIENNRGVyaXZl
ZE9iamVjdENyZWF0ZSBQQUw6OnNvZnRMaW5rX0NvcmVNZWRpYV9DTURlcml2ZWRPYmplY3RDcmVh
dGUKKyNkZWZpbmUgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTURl
cml2ZWRPYmplY3RDcmVhdGUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCBm
NTFjYmJiMTY2NjNiODFlY2UyMDFlOGFkNTcyNWMyNTEyMWY1NmZiLi43MmY0MTE0ZWVhYWRmNjIw
Y2UzNzAyMzA5OTQ3NjZiNDhjNzk1YjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMzQsMTMgKzM0LDE5IEBAIFNPRlRf
TElOS19GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpZGVvVG9vbGJveCwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29s
Ym94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBDRlN0cmlu
Z1JlZikKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwgQ0ZT
dHJpbmdSZWYpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJv
eCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCitTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Np
b25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9Qcm9maWxlTGV2ZWwsIENGU3RyaW5nUmVmKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9S
X1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9F
bmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLCBDRlN0cmluZ1JlZikKK1NPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2
ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0hp
Z2hfQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
KFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwg
Q0ZTdHJpbmdSZWYpCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9U
b29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29k
ZWNUeXBlIGNvZGVjVHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBD
RkRpY3Rpb25hcnlSZWYgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJl
ZiBjb21wcmVzc2VkRGF0YUFsbG9jYXRvciwgVlRDb21wcmVzc2lvbk91dHB1dENhbGxiYWNrIG91
dHB1dENhbGxiYWNrLCB2b2lkKiBvdXRwdXRDYWxsYmFja1JlZkNvbiwgVlRDb21wcmVzc2lvblNl
c3Npb25SZWYqIGNvbXByZXNzaW9uU2Vzc2lvbk91dCksIChhbGxvY2F0b3IsIHdpZHRoLCBoZWln
aHQsIGNvZGVjVHlwZSwgZW5jb2RlclNwZWNpZmljYXRpb24sIHNvdXJjZUltYWdlQnVmZmVyQXR0
cmlidXRlcywgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIG91dHB1dENhbGxiYWNrLCBvdXRwdXRD
YWxsYmFja1JlZkNvbiwgY29tcHJlc3Npb25TZXNzaW9uT3V0KSkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBs
ZXRlRnJhbWVzLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENN
VGltZSBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNlc3Npb24sIGNvbXBs
ZXRlVW50aWxQcmVzZW50YXRpb25UaW1lU3RhbXApKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUs
IE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZJbWFnZUJ1ZmZl
clJlZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIGR1
cmF0aW9uLCBDRkRpY3Rpb25hcnlSZWYgZnJhbWVQcm9wZXJ0aWVzLCB2b2lkKiBzb3VyY2VGcmFt
ZVJlZmNvbiwgVlRFbmNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9uLCBpbWFn
ZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwgZnJhbWVQcm9wZXJ0aWVz
LCBzb3VyY2VGcmFtZVJlZmNvbiwgaW5mb0ZsYWdzT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVU
b0VuY29kZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9u
KSwgKHNlc3Npb24pKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rv
b2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSwgdm9pZCwgKFZUQ29tcHJlc3Np
b25TZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCiAKIFNPRlRfTElOS19GVU5DVElPTl9N
QVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVmlkZW9Ub29sYm94LCBWVFJlc3Ry
aWN0VmlkZW9EZWNvZGVycywgT1NTdGF0dXMsIChWVFZpZGVvRGVjb2RlclJlc3RyaWN0aW9ucyBy
ZXN0cmljdGlvbkZsYWdzLCBjb25zdCBDTVZpZGVvQ29kZWNUeXBlKiBhbGxvd2VkQ29kZWNUeXBl
TGlzdCwgQ01JdGVtQ291bnQgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgKHJlc3RyaWN0aW9uRmxh
Z3MsIGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBhbGxvd2VkQ29kZWNUeXBlQ291bnQpLCBQQUxfRVhQ
T1JUKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJv
eFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRM
aW5rLmgKaW5kZXggZWMwZmYwMWNjMWZlMWEyMTA2Y2M3YTdmMDJlOGM4NGI3ZGQwZGE4NC4uNjBh
OGZmMzc0MmQ0OTYxMDdiMTRmYWM3YzQxMzczYWJjNmQ2OTRhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaApAQCAtMzcsOSArMzcsMjAg
QEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2UKICNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24gZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbigpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVENvbXByZXNzaW9u
UHJvcGVydHlLZXlfUmVhbFRpbWUgZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X1JlYWxUaW1lKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlk
ZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBDRlN0
cmluZ1JlZikKKyNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0
ZSBnZXRfVmlkZW9Ub29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJh
dGUoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBDRlN0cmluZ1JlZikKKyNkZWZp
bmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwgZ2V0X1ZpZGVvVG9vbGJv
eF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCgpCiAKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0VuY29kZXJTcGVj
aWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIsIENGU3RyaW5n
UmVmKQogI2RlZmluZSBrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJl
QWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIgZ2V0X1ZpZGVvVG9vbGJveF9rVlRWaWRlb0VuY29kZXJT
cGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIoKQorU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVM
ZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVFBy
b2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFBy
b2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCgpCitTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9B
dXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRQcm9maWxlTGV2ZWxfSDI2NF9IaWdo
X0F1dG9MZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0
b0xldmVsKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94
LCBrVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVm
aW5lIGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsIGdldF9WaWRlb1Rvb2xib3hf
a1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWwoKQorCiAKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkNy
ZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGludDMyX3Qgd2lkdGgs
IGludDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNUeXBlIGNvZGVjVHlwZSwgQ0ZEaWN0aW9uYXJ5
UmVmIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRpY3Rpb25hcnlSZWYgc291cmNlSW1hZ2VCdWZm
ZXJBdHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBjb21wcmVzc2VkRGF0YUFsbG9jYXRvciwgVlRD
b21wcmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1dENhbGxiYWNrLCB2b2lkKiBvdXRwdXRDYWxs
YmFja1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Npb25SZWYqIGNvbXByZXNzaW9uU2Vzc2lvbk91
dCksIChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQsIGNvZGVjVHlwZSwgZW5jb2RlclNwZWNpZmlj
YXRpb24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgY29tcHJlc3NlZERhdGFBbGxvY2F0
b3IsIG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxsYmFja1JlZkNvbiwgY29tcHJlc3Npb25TZXNz
aW9uT3V0KSkKICNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUgc29mdExpbmtfVmlk
ZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlCkBAIC00OSw2ICs2MCw4IEBAIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNz
aW9uU2Vzc2lvbkVuY29kZUZyYW1lCiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2Rl
RnJhbWUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJh
bWUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENv
bXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXBy
ZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQogI2RlZmluZSBWVENvbXByZXNz
aW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRD
b21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFs
aWRhdGUsIHZvaWQsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24p
KQorI2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUgc29mdExpbmtfVmlkZW9U
b29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZQogCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRSZXN0cmljdFZpZGVv
RGVjb2RlcnMsIE9TU3RhdHVzLCAoVlRWaWRlb0RlY29kZXJSZXN0cmljdGlvbnMgcmVzdHJpY3Rp
b25GbGFncywgY29uc3QgQ01WaWRlb0NvZGVjVHlwZSogYWxsb3dlZENvZGVjVHlwZUxpc3QsIENN
SXRlbUNvdW50IGFsbG93ZWRDb2RlY1R5cGVDb3VudCksIChyZXN0cmljdGlvbkZsYWdzLCBhbGxv
d2VkQ29kZWNUeXBlTGlzdCwgYWxsb3dlZENvZGVjVHlwZUNvdW50KSkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAppbmRl
eCA2NzRlNjQ5NGEwYThiNTk2OTAzZTNjYTVjZmI2YTIzZGRhYzM2MzhjLi5kNDQ0OTMxZWZkOGFl
NTU2MGI4YzFiMjdmMjJhZDkyZTc5MzQ4NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtNDEsNiArNDEsMTAg
QEAgU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBNZWRpYVRvb2xib3gsIE1UX0dldFNob3UKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFN1cHBvcnROb3Rp
ZmljYXRpb25fU2hvdWxkUGxheUhEUlZpZGVvQ2hhbmdlZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBP
UlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgTWVkaWFUb29sYm94LCBN
VEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UsIHZvaWQqLCAoTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYgdGFwKSwgKHRhcCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIE1l
ZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMs
IChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywg
QXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxh
Z3MgKmZsYWdzT3V0LCBDTVRpbWVSYW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVt
YmVyRnJhbWVzT3V0KSwgKHRhcCwgbnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdz
T3V0LCB0aW1lUmFuZ2VPdXQsIG51bWJlckZyYW1lc091dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
TUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwgTVRBdWRp
b1Byb2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9y
LCBjb25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyogY2FsbGJhY2tzLCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVm
KiB0YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpLCBQQUxfRVhQ
T1JUKQorCiAjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKIAogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBNZWRpYVRvb2xib3gsIGtNVFBsdWdp
bkZvcm1hdFJlYWRlclByb3BlcnR5X0R1cmF0aW9uLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExp
bmsuaAppbmRleCBjN2RlMDJjZTYzYzJjMzAwZDk2NTRmNjY3MGJmYzEyNTAyMjkzNDRlLi4yNTVh
NzY3YjU1ZWVmNGU4ZWVkMTlkZWYyOTcxNzg0OTBiZTkzZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCkBAIC00MSw2ICs0
MSwxMyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlh
VG9vbGJveCwgTVRfR2V0U2hvdWxkUGxheUhEUlZpZAogCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UU3VwcG9ydE5vdGlmaWNhdGlv
bl9TaG91bGRQbGF5SERSVmlkZW9DaGFuZ2VkLCBDRlN0cmluZ1JlZikKIAorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFw
R2V0U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkK
KyNkZWZpbmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlIHNvZnRMaW5rX01lZGlhVG9v
bGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJj
ZUF1ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291
bnQgbnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRBdWRp
b1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VPdXQs
IENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1ZmZl
ckxpc3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkKKyNk
ZWZpbmUgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyBzb2Z0TGlua19NZWRpYVRv
b2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbworU09GVF9MSU5LX0ZVTkNU
SU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNz
aW5nVGFwQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3Qg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBDYWxsYmFja3MqIGNhbGxiYWNrcywgTVRBdWRpb1Byb2Nlc3Np
bmdUYXBDcmVhdGlvbkZsYWdzIGZsYWdzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiogdGFwT3V0
KSwgKGFsbG9jYXRvciwgY2FsbGJhY2tzLCBmbGFncywgdGFwT3V0KSkKKyNkZWZpbmUgTVRBdWRp
b1Byb2Nlc3NpbmdUYXBDcmVhdGUgc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNz
aW5nVGFwQ3JlYXRlCisKICNpZiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQogCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwga01UUGx1Z2luRm9y
bWF0UmVhZGVyUHJvcGVydHlfRHVyYXRpb24sIENGU3RyaW5nUmVmKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggNTUyNGVlYzU1ODdkMWU5MTcwZWY5ZjE0OTJjYzA3ZGUyNWM4MGVjNy4uYzU2
MmJlNzYzNWVhNmExNTg0MDgzM2FiYzJlMTkxMDEwY2MzMTc2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0zNTAsNyArMzUwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKERvY3VtZW50KTsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwog
CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgY01heFdyaXRlUmVjdXJzaW9uRGVwdGggPSAyMTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggOWY1NTYwODAyYmFj
MzJiYjQ5OWVjOTdjOWIwYWUzMmUxMWM2MjFjNy4uODUwY2RlNzI3MGYwZDYxZGMyNTQ0OWMxZGE4
OWE0OWExYWY0MzY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKQEAgLTEwOSw3ICsxMDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChIVE1MQ2FudmFzRWxlbWVudCk7CiAKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBUaGVzZSB2YWx1ZXMgY29tZSBm
cm9tIHRoZSBXaGF0V0cvVzNDIEhUTUwgc3BlYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IDAwMzUyNmZjMzE5YTlkMWI2YjA3ZDY4YjJiNDYyYWNhODU0N2Zj
ZmQuLjdkM2IxMzIxZThhNzBkMGQxZThkYzMxMzVhODFhZGNiZTU4MDI2ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTkwLDggKzE5MCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxNZWRpYUVs
ZW1lbnQpOwogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBT
ZWVrUmVwZWF0RGVsYXkgeyAxMDBfbXMgfTsKIHN0YXRpYyBjb25zdCBkb3VibGUgU2Vla1RpbWUg
PSAwLjI7CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBTY2FuUmVwZWF0RGVsYXkgeyAxLjVfcyB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxl
UmVhZGVyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9GaWxlUmVhZGVyQ29jb2EuY3BwCmluZGV4IGZkM2QzZTAzYTAzZjA4MTA1MjEyODZiZDAyNmE5
MTAxMTFkM2NjODQuLjVkNTZiOWVlMWEwZDNkNjdhNzljMzA3NjFkMTM4MTVkN2MwNjQ0Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJl
YWRlckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKQEAgLTM2LDI1ICszNiwxMyBAQAogI2luY2x1ZGUgIkF1
ZGlvRmlsZVJlYWRlci5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvRXh0ZW5kZWRBdWRpb0ZpbGUuaD4K
ICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPHBh
bC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGht
ZXRpYy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNpbmNsdWRlIDx3dGYvU29mdExp
bmtpbmcuaD4KLQotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi1TT0ZUX0xJTkso
QXVkaW9Ub29sYm94LCBBdWRpb0ZpbGVDbG9zZSwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkF1
ZGlvRmlsZSksIChpbkF1ZGlvRmlsZSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRpb0Zp
bGVPcGVuV2l0aENhbGxiYWNrcywgT1NTdGF0dXMsICh2b2lkICppbkNsaWVudERhdGEsIEF1ZGlv
RmlsZV9SZWFkUHJvYyBpblJlYWRGdW5jLCBBdWRpb0ZpbGVfV3JpdGVQcm9jIGluV3JpdGVGdW5j
LCBBdWRpb0ZpbGVfR2V0U2l6ZVByb2MgaW5HZXRTaXplRnVuYywgQXVkaW9GaWxlX1NldFNpemVQ
cm9jIGluU2V0U2l6ZUZ1bmMsIEF1ZGlvRmlsZVR5cGVJRCBpbkZpbGVUeXBlSGludCwgQXVkaW9G
aWxlSUQgKm91dEF1ZGlvRmlsZSksIChpbkNsaWVudERhdGEsIGluUmVhZEZ1bmMsIGluV3JpdGVG
dW5jLCBpbkdldFNpemVGdW5jLCBpblNldFNpemVGdW5jLCBpbkZpbGVUeXBlSGludCwgb3V0QXVk
aW9GaWxlKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9T
U3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxl
KSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0
YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiAqaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkICpvdXRQ
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURh
dGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVk
aW9GaWxlUmVhZCwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIFVJ
bnQzMiAqaW9OdW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqaW9EYXRhKSwgKGluRXh0QXVk
aW9GaWxlLCBpb051bWJlckZyYW1lcywgaW9EYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gs
IEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4
dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBp
blByb3BlcnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVk
aW9GaWxlLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEp
KQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlELCBP
U1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluRmlsZUlELCBCb29sZWFuIGluRm9yV3JpdGluZywgRXh0
QXVkaW9GaWxlUmVmICpvdXRFeHRBdWRpb0ZpbGUpLCAoaW5GaWxlSUQsIGluRm9yV3JpdGluZywg
b3V0RXh0QXVkaW9GaWxlKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZU9w
ZW5VUkwsIE9TU3RhdHVzLCAoQ0ZVUkxSZWYgaW5VUkwsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0
QXVkaW9GaWxlKSwgKGluVVJMLCBvdXRFeHRBdWRpb0ZpbGUpKQotI2VuZGlmCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBBdWRpb0J1ZmZlckxpc3Qq
IHRyeUNyZWF0ZUF1ZGlvQnVmZmVyTGlzdChzaXplX3QgbnVtYmVyT2ZCdWZmZXJzKQpAQCAtMTAz
LDIyICs5MSwyMiBAQCBBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcihjb25zdCB2b2lk
KiBkYXRhLCBzaXplX3QgZGF0YVNpemUpCiAgICAgOiBtX2RhdGEoZGF0YSkKICAgICAsIG1fZGF0
YVNpemUoZGF0YVNpemUpCiB7Ci0gICAgaWYgKEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRo
aXMsIHJlYWRQcm9jLCAwLCBnZXRTaXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5v
RXJyKQorICAgIGlmIChQQUw6OkF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzKHRoaXMsIHJlYWRQ
cm9jLCAwLCBnZXRTaXplUHJvYywgMCwgMCwgJm1fYXVkaW9GaWxlSUQpICE9IG5vRXJyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEKG1fYXVk
aW9GaWxlSUQsIGZhbHNlLCAmbV9leHRBdWRpb0ZpbGVSZWYpICE9IG5vRXJyKQorICAgIGlmIChQ
QUw6OkV4dEF1ZGlvRmlsZVdyYXBBdWRpb0ZpbGVJRChtX2F1ZGlvRmlsZUlELCBmYWxzZSwgJm1f
ZXh0QXVkaW9GaWxlUmVmKSAhPSBub0VycikKICAgICAgICAgbV9leHRBdWRpb0ZpbGVSZWYgPSAw
OwogfQogCiBBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIoKQogewogICAgIGlmICht
X2V4dEF1ZGlvRmlsZVJlZikKLSAgICAgICAgRXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlv
RmlsZVJlZik7CisgICAgICAgIFBBTDo6RXh0QXVkaW9GaWxlRGlzcG9zZShtX2V4dEF1ZGlvRmls
ZVJlZik7CiAKICAgICBtX2V4dEF1ZGlvRmlsZVJlZiA9IDA7CiAKICAgICBpZiAobV9hdWRpb0Zp
bGVJRCkKLSAgICAgICAgQXVkaW9GaWxlQ2xvc2UobV9hdWRpb0ZpbGVJRCk7CisgICAgICAgIFBB
TDo6QXVkaW9GaWxlQ2xvc2UobV9hdWRpb0ZpbGVJRCk7CiAKICAgICBtX2F1ZGlvRmlsZUlEID0g
MDsKIH0KQEAgLTE1NSw3ICsxNDMsNyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRl
cjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogCiAgICAgLy8g
R2V0IGZpbGUncyBkYXRhIGZvcm1hdAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1fZmlsZURh
dGFGb3JtYXQpOwotICAgIGlmIChFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmls
ZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmls
ZURhdGFGb3JtYXQpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFByb3Bl
cnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFGb3Jt
YXQsICZzaXplLCAmbV9maWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMgPSBtX2ZpbGVEYXRhRm9ybWF0
Lm1DaGFubmVsc1BlckZyYW1lOwpAQCAtMTYzLDcgKzE1MSw3IEBAIFJlZlB0cjxBdWRpb0J1cz4g
QXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01v
bm8pCiAgICAgLy8gTnVtYmVyIG9mIGZyYW1lcwogICAgIFNJbnQ2NCBudW1iZXJPZkZyYW1lczY0
ID0gMDsKICAgICBzaXplID0gc2l6ZW9mKG51bWJlck9mRnJhbWVzNjQpOwotICAgIGlmIChFeHRB
dWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVByb3Bl
cnR5X0ZpbGVMZW5ndGhGcmFtZXMsICZzaXplLCAmbnVtYmVyT2ZGcmFtZXM2NCkgIT0gbm9FcnIg
fHwgbnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQorICAgIGlmIChQQUw6OkV4dEF1ZGlvRmlsZUdldFBy
b3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZUxlbmd0
aEZyYW1lcywgJnNpemUsICZudW1iZXJPZkZyYW1lczY0KSAhPSBub0VyciB8fCBudW1iZXJPZkZy
YW1lczY0IDw9IDApCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgZG91YmxlIGZpbGVT
YW1wbGVSYXRlID0gbV9maWxlRGF0YUZvcm1hdC5tU2FtcGxlUmF0ZTsKQEAgLTE4NSw3ICsxNzMs
NyBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNh
bXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAgIGlmIChzYW1wbGVSYXRlKQogICAgICAgICBt
X2NsaWVudERhdGFGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOwogCi0gICAgaWYgKEV4
dEF1ZGlvRmlsZVNldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJv
cGVydHlfQ2xpZW50RGF0YUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biksICZtX2NsaWVudERhdGFGb3JtYXQpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkV4dEF1ZGlv
RmlsZVNldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlf
Q2xpZW50RGF0YUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZt
X2NsaWVudERhdGFGb3JtYXQpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIC8vIENoYW5nZSBudW1iZXJPZkZyYW1lczY0IHRvIGRlc3RpbmF0aW9uIHNhbXBsZS1yYXRl
CkBAIC0yNDMsNyArMjMxLDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNy
ZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubykKIAogICAgIC8vIFJlYWQg
ZnJvbSB0aGUgZmlsZSAob3IgaW4tbWVtb3J5IHZlcnNpb24pCiAgICAgVUludDMyIGZyYW1lc1Rv
UmVhZCA9IG51bWJlck9mRnJhbWVzOwotICAgIGlmIChFeHRBdWRpb0ZpbGVSZWFkKG1fZXh0QXVk
aW9GaWxlUmVmLCAmZnJhbWVzVG9SZWFkLCBidWZmZXJMaXN0KSAhPSBub0VycikgeworICAgIGlm
IChQQUw6OkV4dEF1ZGlvRmlsZVJlYWQobV9leHRBdWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQs
IGJ1ZmZlckxpc3QpICE9IG5vRXJyKSB7CiAgICAgICAgIGRlc3Ryb3lBdWRpb0J1ZmZlckxpc3Qo
YnVmZmVyTGlzdCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29h
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJD
b2NvYS5oCmluZGV4IGI3YjkxNjNiNTZlMjZjMjljYWI4NGVlMjQ3NjllMjk3MTQxN2FmZmMuLjBi
YmJiYTI3ODU3ZDk3OWVjYzY4OGY4N2YwMzM5ZjY2NWVmNDI1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29j
b2EuaApAQCAtMzEsMTAgKzMxLDEyIEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogCi0jaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvRmlsZS5oPgotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9F
eHRlbmRlZEF1ZGlvRmlsZS5oPgorI2luY2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAordXNpbmcgRXh0QXVkaW9GaWxlUmVmID0gc3Ry
dWN0IE9wYXF1ZUV4dEF1ZGlvRmlsZSo7Cit1c2luZyBBdWRpb0ZpbGVJRCA9IHN0cnVjdCBPcGFx
dWVBdWRpb0ZpbGVJRCo7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9CdXM7
CkBAIC01OCw3ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qgdm9pZCogbV9kYXRhID0geyBu
dWxscHRyIH07CiAgICAgc2l6ZV90IG1fZGF0YVNpemUgPSB7IDAgfTsKIAotICAgIEF1ZGlvRmls
ZUlEIG1fYXVkaW9GaWxlSUQgPSB7IDAgfTsKKyAgICBBdWRpb0ZpbGVJRCBtX2F1ZGlvRmlsZUlE
ID0geyBudWxscHRyIH07CiAgICAgRXh0QXVkaW9GaWxlUmVmIG1fZXh0QXVkaW9GaWxlUmVmID0g
eyBudWxscHRyIH07CiAKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbV9maWxlRGF0
YUZvcm1hdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKaW5kZXggNDc4NzUwNzJhNzg2ZWQ2
ODZjMWQ0MDFlODJlNjI1OWNhMjNjNTRiNi4uMTQ4YjA1NWRiZWM4OTQzZWE1YWFjNjhlNjg1OGRl
N2QwYjgyMzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAKQEAgLTI4LDYgKzI4LDgg
QEAKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29s
Ym94U29mdExpbmsuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb091dHB1dFVuaXRB
ZGFwdG9yOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yKEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJl
cikKQEAgLTM5LDEyICs0MSwxMiBAQCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpBdWRpb091dHB1
dFVuaXRBZGFwdG9yKEF1ZGlvVW5pdFJlbmRlcmVyJiByZW5kZXJlcikKIEF1ZGlvT3V0cHV0VW5p
dEFkYXB0b3I6On5BdWRpb091dHB1dFVuaXRBZGFwdG9yKCkKIHsKICAgICBpZiAobV9vdXRwdXRV
bml0KQotICAgICAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX291dHB1dFVuaXQp
OworICAgICAgICBQQUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fb3V0cHV0VW5p
dCk7CiB9CiAKIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIHsKLSAg
ICBhdXRvIHJlc3VsdCA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CisgICAg
YXV0byByZXN1bHQgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fb3V0cHV0VW5pdCk7CiAg
ICAgaWYgKHJlc3VsdCAhPSBub0VycikKICAgICAgICAgV1RGTG9nQWx3YXlzKCJFUlJPUjogQXVk
aW9PdXRwdXRVbml0U3RhcnQoKSBjYWxsIGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVsZCIsIHN0
YXRpY19jYXN0PGxvbmc+KHJlc3VsdCkpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC01Miw3ICs1
NCw3IEBAIE9TU3RhdHVzIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OnN0YXJ0KCkKIAogT1NTdGF0
dXMgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6c3RvcCgpCiB7Ci0gICAgcmV0dXJuIEF1ZGlvT3V0
cHV0VW5pdFN0b3AobV9vdXRwdXRVbml0KTsKKyAgICByZXR1cm4gUEFMOjpBdWRpb091dHB1dFVu
aXRTdG9wKG1fb3V0cHV0VW5pdCk7CiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0IGNhbGxiYWNr
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1Nh
bXBsZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcAppbmRleCBmZGY2Nzc1N2QxYjQ3NzYwODA4YjEzZmI0
MzRlNDBiM2RmZDMwZTA0Li40ZTkwNjRkMGM2ZTkzMDg5YWUwZWFhNmY5OThlY2Q2NTM3MzVkMWU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1Nh
bXBsZUJ1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJWZWN0b3JNYXRoLmgiCiAjaW5jbHVkZSA8QWNjZWxlcmF0ZS9BY2NlbGVyYXRlLmg+CiAjaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CisjaW5jbHVkZSA8cGFsL2NmL0F1
ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI3Miw3ICsyNzMsNyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBs
ZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBzaXpl
X3QgZgogCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGlucHV0Rm9ybWF0OwogICAg
IFVJbnQzMiBwcm9wZXJ0eURhdGFTaXplID0gc2l6ZW9mKGlucHV0Rm9ybWF0KTsKLSAgICBBdWRp
b0NvbnZlcnRlckdldFByb3BlcnR5KGNvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElu
cHV0U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0eURhdGFTaXplLCAmaW5wdXRGb3JtYXQpOwor
ICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmcHJvcGVydHlEYXRhU2l6ZSwgJmlu
cHV0Rm9ybWF0KTsKICAgICBBU1NFUlQoZnJhbWVDb3VudCA8PSBzb3VyY2UubUJ1ZmZlcnNbMF0u
bURhdGFCeXRlU2l6ZSAvIGlucHV0Rm9ybWF0Lm1CeXRlc1BlclBhY2tldCk7CiAKICAgICBBdWRp
b0NvbnZlcnRlckZyb21BQkxDb250ZXh0IGNvbnRleHQgeyBzb3VyY2UsIGZyYW1lQ291bnQsIGlu
cHV0Rm9ybWF0Lm1CeXRlc1BlclBhY2tldCB9OwpAQCAtMjgwLDcgKzI4MSw3IEBAIE9TU3RhdHVz
IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBz
b3VyY2UsIHNpemVfdCBmCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiBvdXRwdXRGb3JtYXQ7CiAgICAgcHJvcGVydHlEYXRhU2l6ZSA9IHNpemVvZihv
dXRwdXRGb3JtYXQpOwotICAgIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBr
QXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24sICZwcm9wZXJ0eURh
dGFTaXplLCAmb3V0cHV0Rm9ybWF0KTsKKyAgICBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVy
dHkoY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRp
b24sICZwcm9wZXJ0eURhdGFTaXplLCAmb3V0cHV0Rm9ybWF0KTsKIAogICAgIEFTU0VSVChDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24ob3V0cHV0Rm9ybWF0KS5udW1iZXJPZkNoYW5uZWxTdHJlYW1z
KCkgPT0gbV9idWZmZXJMaXN0LT5idWZmZXJDb3VudCgpKTsKICAgICBmb3IgKHVpbnQzMl90IGkg
PSAwOyBpIDwgbV9idWZmZXJMaXN0LT5idWZmZXJDb3VudCgpOyArK2kpIHsKQEAgLTI5MCw3ICsy
OTEsNyBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNvcHlGcm9tKGNvbnN0IEF1
ZGlvQnVmZmVyTGlzdCYgc291cmNlLCBzaXplX3QgZgogI2VuZGlmCiAKICAgICBVSW50MzIgc2Ft
cGxlc0NvbnZlcnRlZCA9IG1fc2FtcGxlQ2FwYWNpdHk7Ci0gICAgT1NTdGF0dXMgZXJyID0gQXVk
aW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcihjb252ZXJ0ZXIsIGF1ZGlvQ29udmVydGVyRnJv
bUFCTENhbGxiYWNrLCAmY29udGV4dCwgJnNhbXBsZXNDb252ZXJ0ZWQsIG1fYnVmZmVyTGlzdC0+
bGlzdCgpLCBudWxscHRyKTsKKyAgICBPU1N0YXR1cyBlcnIgPSBQQUw6OkF1ZGlvQ29udmVydGVy
RmlsbENvbXBsZXhCdWZmZXIoY29udmVydGVyLCBhdWRpb0NvbnZlcnRlckZyb21BQkxDYWxsYmFj
aywgJmNvbnRleHQsICZzYW1wbGVzQ29udmVydGVkLCBtX2J1ZmZlckxpc3QtPmxpc3QoKSwgbnVs
bHB0cik7CiAgICAgaWYgKCFlcnIgfHwgZXJyID09IGtSYW5PdXRPZklucHV0RGF0YVN0YXR1cykg
ewogICAgICAgICBtX3NhbXBsZUNvdW50ID0gc2FtcGxlc0NvbnZlcnRlZDsKICAgICAgICAgcmV0
dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb1NhbXBsZURhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KaW5kZXggZTVlYzQ3Nzc4NTgxYTdhY2YwZTcy
NTUzMzNmOWUyNjk0MWM0NzJkMS4uZDJiNWFjNDVmMzBmZDRhM2FmNTFiNDIwZGUzNzY0OWIxMTUx
YzIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9TYW1wbGVEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtNDIsNyArNDIsNiBAQAogI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBSZWY8QXVkaW9TYW1w
bGVEYXRhU291cmNlPiBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShzaXplX3QgbWF4aW11
bVNhbXBsZUNvdW50LCBMb2dnZXJIZWxwZXImIGxvZ2dlckhlbHBlciwgc2l6ZV90IHdhaXRUb1N0
YXJ0Rm9yUHVzaENvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKaW5kZXggODllY2VlZDYxY2IxOWJm
ZDdkNDIwYzc3OGFhYTEyMGFjMzU2ZGJmZC4uMzBkZWIyZTRjNzQxZGY1NDg4YjM4ZjVlZDU5ZWVi
ZTVhMDI4OWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29j
b2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5j
bHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFdlYkF1ZGlvQnVmZmVyTGlzdDo6V2ViQXVkaW9CdWZm
ZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0KQogICAgIDogbV9i
eXRlc1BlckZyYW1lKGZvcm1hdC5ieXRlc1BlckZyYW1lKCkpCkBAIC0xMTYsNyArMTE1LDcgQEAg
V2ViQXVkaW9CdWZmZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBmb3JtYXQsIEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ01CbG9ja0J1
ZmZlclJlZiBidWZmZXIgPSBudWxscHRyOwotICAgIGlmIChub0VyciA9PSBDTVNhbXBsZUJ1ZmZl
ckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZlciwg
bnVsbHB0ciwgbV9jYW5vbmljYWxMaXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxv
Y2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVC
dWZmZXJGbGFnX0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIp
KQorICAgIGlmIChub0VyciA9PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0
V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVyLCBudWxscHRyLCBtX2Nhbm9uaWNh
bExpc3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQs
IGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9CdWZm
ZXJMaXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZlcikpCiAgICAgICAgIG1fYmxvY2tC
dWZmZXIgPSBhZG9wdENGKGJ1ZmZlcik7CiAKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFk
YXB0b3JJT1MuY3BwCmluZGV4IDJlOTYzMGZiNjBmMjJiM2VlNTZkMjQyZDczMDQzNDg2Yjg3YjU2
MmYuLmY4OTEwN2ZmYjFjM2Y1M2JlMzE5YWEzODY4MTQ3NzRiYjRkMjdhNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9y
SU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9PdXRw
dXRVbml0QWRhcHRvcklPUy5jcHAKQEAgLTMzLDE1ICszMyw3IEBACiAjaWYgRU5BQkxFKFdFQl9B
VURJTykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5o
IgotI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1
ZGlvVG9vbGJveCkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50RmluZE5l
eHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIGNvbnN0IEF1
ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gKmluRGVzYyksIChpbkNvbXBvbmVudCwgaW5EZXNjKSkK
LVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcsIE9TU3Rh
dHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2Ug
Km91dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCi1TT0ZUX0xJTksoQXVk
aW9Ub29sYm94LCBBdWRpb1VuaXRBZGRQcm9wZXJ0eUxpc3RlbmVyLCBPU1N0YXR1cywgKEF1ZGlv
VW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0UHJvcGVydHlM
aXN0ZW5lclByb2MgaW5Qcm9jLCB2b2lkICppblByb2NVc2VyRGF0YSksIChpblVuaXQsIGluSUQs
IGluUHJvYywgaW5Qcm9jVXNlckRhdGEpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9V
bml0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJv
cGVydHlJRCBpbklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGlu
RWxlbWVudCwgdm9pZCAqb3V0RGF0YSwgVUludDMyICppb0RhdGFTaXplKSwgKGluVW5pdCwgaW5J
RCwgaW5TY29wZSwgaW5FbGVtZW50LCBvdXREYXRhLCBpb0RhdGFTaXplKSkKLVNPRlRfTElOSyhB
dWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGlu
VW5pdCksIChpblVuaXQpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0U2V0UHJv
cGVydHksIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBp
bklELCBBdWRpb1VuaXRTY29wZSBpblNjb3BlLCBBdWRpb1VuaXRFbGVtZW50IGluRWxlbWVudCwg
Y29uc3Qgdm9pZCAqaW5EYXRhLCBVSW50MzIgaW5EYXRhU2l6ZSksIChpblVuaXQsIGluSUQsIGlu
U2NvcGUsIGluRWxlbWVudCwgaW5EYXRhLCBpbkRhdGFTaXplKSkKKyNpbmNsdWRlIDxwYWwvY2Yv
QXVkaW9Ub29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OCwx
NSArNTAsMTUgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQg
aGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1h
bnVmYWN0dXJlciA9IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21w
b25lbnRGbGFncyA9IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNv
bXAgPSBBdWRpb0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKKyAgICBjb21wID0gUEFMOjpB
dWRpb0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAot
ICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1f
b3V0cHV0VW5pdCk7CisgICAgT1NTdGF0dXMgcmVzdWx0ID0gUEFMOjpBdWRpb0NvbXBvbmVudElu
c3RhbmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAog
ICAgIFVJbnQzMiBmbGFnID0gMTsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X291dHB1dFVuaXQsCisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291
dHB1dFVuaXQsCiAgICAgICAgIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywKICAg
ICAgICAga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwKICAgICAgICAgMCwKQEAgLTc0LDIwICs2Niwy
MCBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2Fy
ZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgICAgICBzaXplb2YoZmxhZykpOwogICAg
IEFTU0VSVCghcmVzdWx0KTsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9v
dXRwdXRVbml0KTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRw
dXRVbml0KTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAgICAgLy8gU2V0IHJlbmRlciBjYWxsYmFj
awogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgaW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9j
ID0gaW5wdXRQcm9jOwogICAgIGlucHV0LmlucHV0UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgcmVz
dWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVy
dHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJmlucHV0LCBz
aXplb2YoaW5wdXQpKTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1f
b3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9V
bml0U2NvcGVfSW5wdXQsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CiAgICAgQVNTRVJUKCFy
ZXN1bHQpOwogCiAgICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQKICAgICBBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24gc3RyZWFtRm9ybWF0OwogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2YoQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKTsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRHZXRQcm9w
ZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRp
b1VuaXRTY29wZV9PdXRwdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCAmc2l6ZSk7CisgICAg
cmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICh2b2lk
Kikmc3RyZWFtRm9ybWF0LCAmc2l6ZSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgY29u
c3RleHByIGludCBieXRlc1BlckZsb2F0ID0gc2l6ZW9mKEZsb2F0MzIpOwpAQCAtMTAxLDcgKzkz
LDcgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdh
cmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBzdHJlYW1Gb3JtYXQubUNoYW5uZWxz
UGVyRnJhbWUgPSBudW1iZXJPZk91dHB1dENoYW5uZWxzOwogICAgIHN0cmVhbUZvcm1hdC5tQml0
c1BlckNoYW5uZWwgPSBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQ7CiAKLSAgICByZXN1bHQg
PSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9T
dHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3Jt
YXQsIHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKKyAgICByZXN1bHQgPSBQ
QUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZv
cm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwogICAgIEFTU0VSVCgh
cmVzdWx0KTsKIAogICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJl
ZEJ1ZmZlclNpemUoa1ByZWZlcnJlZEJ1ZmZlclNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JNYWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JN
YWMuY3BwCmluZGV4IGM4ZWQzZWY3OGM4YzZhM2IxZTA3MGNiNDQwNTk2OWFkYTRhYzNkYTIuLjcx
NGNjZTg4NjI1NzUxODYxZDVlMmI4NTEzMTNhODlkMDQxMmVhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0
QWRhcHRvck1hYy5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgi
CiAjaW5jbHVkZSA8Q29yZUF1ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxwYWwvY2Yv
QXVkaW9Ub29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCwy
MSArNDksMjEgQEAgdm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQg
aGFyZHdhcmVTYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBkZXNjLmNvbXBvbmVudE1h
bnVmYWN0dXJlciA9IGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGU7CiAgICAgZGVzYy5jb21w
b25lbnRGbGFncyA9IDA7CiAgICAgZGVzYy5jb21wb25lbnRGbGFnc01hc2sgPSAwOwotICAgIGNv
bXAgPSBBdWRpb0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKKyAgICBjb21wID0gUEFMOjpB
dWRpb0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKIAogICAgIEFTU0VSVChjb21wKTsKIAot
ICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1f
b3V0cHV0VW5pdCk7CisgICAgT1NTdGF0dXMgcmVzdWx0ID0gUEFMOjpBdWRpb0NvbXBvbmVudElu
c3RhbmNlTmV3KGNvbXAsICZtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAot
ICAgIHJlc3VsdCA9IEF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKKyAgICByZXN1
bHQgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUobV9vdXRwdXRVbml0KTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CiAKICAgICAvLyBTZXQgcmVuZGVyIGNhbGxiYWNrCiAgICAgQVVSZW5kZXJDYWxs
YmFja1N0cnVjdCBpbnB1dDsKICAgICBpbnB1dC5pbnB1dFByb2MgPSBpbnB1dFByb2M7CiAgICAg
aW5wdXQuaW5wdXRQcm9jUmVmQ29uID0gdGhpczsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFj
aywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKKyAg
ICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAw
LCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8v
IFNldCBzdHJlYW0gZm9ybWF0CkBAIC03OSw3ICs4MCw3IEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0
QWRhcHRvcjo6Y29uZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVt
YmVyCiAgICAgc3RyZWFtRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lID0gbnVtYmVyT2ZPdXRwdXRD
aGFubmVsczsKICAgICBzdHJlYW1Gb3JtYXQubUJpdHNQZXJDaGFubmVsID0gYml0c1BlckJ5dGUg
KiBieXRlc1BlckZsb2F0OwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9v
dXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfSW5wdXQsIDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKSk7CisgICAgcmVzdWx0ID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRT
Y29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNpemVvZihBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24pKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAppbmRleCBhNTMzMzJj
ZjdkYmQ2NDY2ZjQ0ZjU3NmQxY2Q3YWRlNzYxNTBhYTRmLi43ODQ3NGQ4ZTVhNWFjMDcwMzUzMzU5
OTBjZGRmOGFmY2Q4MDU2MTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvTWVkaWFVdGlsaXRpZXMuY3BwCkBAIC0zMywxMyArMzMsMTEgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBSZXRhaW5QdHI8Q01Gb3JtYXREZXNj
cmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qg
dm9pZCogbWFnaWNDb29raWUpCiB7CiAgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpn
ZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZv
cm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdCA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxs
cHRyLCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBudWxscHRyLCAmZm9ybWF0KTsKKyAg
ICBhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbWFnaWNDb29raWVT
aXplLCBtYWdpY0Nvb2tpZSwgbnVsbHB0ciwgJmZvcm1hdCk7CiAgICAgaWYgKGVycm9yKSB7CiAg
ICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01NSwxNCArNTMsMTQg
QEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGEKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJy
b3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0
LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgbnVsbHB0ciwgJnNhbXBsZUJ1ZmZlcik7CisgICAg
YXV0byBlcnJvciA9IFBBTDo6Q01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51
bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVC
dWZmZXIpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9y
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRv
cHRDRihzYW1wbGVCdWZmZXIpOwogCi0gICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0Pihk
YXRhKS5saXN0KCkpOworICAgIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZm
ZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwg
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRh
KS5saXN0KCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1
ZGlvU2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBlcnJv
cik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCmluZGV4IDU3Y2YyOWQwZDc3
ZTY3ODg5YmRjZWZkNDA1ODUxMjllZDEyYTQ1NTUuLjY0ZTMwYmMyOTNjYThmOTM4ODQ4OGYxNDg4
NTA2YzU3YmUwYTUxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRl
ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1l
c3BhY2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHRy
YW5zZmVyQkdSQVBpeGVsQnVmZmVyVG9JT1N1cmZhY2UoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlcikKIHsKQEAgLTkwLDcgKzg5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2Ft
cGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUKIHsKICAg
ICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6
Q01TYW1wbGVCdWZmZXJUeXBlKTsKIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNhbXBsZUJ1
ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBs
ZUJ1ZmZlcik7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJ
bWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIp
OwogICAgIGlmICghaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWEsICJSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlOiBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVm
ZmVyIHJldHVybmVkIG51bGxwdHIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggOTgzOWIz
NzBhNzEzYjdjMWQyM2Q4NDdmYTg2NTA1ZDVhZTk3OWFiMi4uZGZmNGZhNGVkZjI2NGI0NTJiZjhk
YTdhZmFlZjRjYmQ3YTAyN2IwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtNDYsMjIgKzQ2LDEzIEBACiAjaW1wb3J0IDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KICNlbmRpZgogCisjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94
U29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9y
dCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0KLVNPRlRfTElOS19GUkFNRVdP
UksoTWVkaWFUb29sYm94KQotU09GVF9MSU5LX0ZSQU1FV09SSyhBdWRpb1Rvb2xib3gpCi0KLVNP
RlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIs
IE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGlu
TnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRp
b0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQ
Q01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRwdXREYXRhKSkKLVNPRlRfTElOSyhBdWRpb1Rv
b2xib3gsIEF1ZGlvQ29udmVydGVyTmV3LCBPU1N0YXR1cywgKGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbiogaW5Tb3VyY2VGb3JtYXQsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiogaW5EZXN0aW5hdGlvbkZvcm1hdCwgQXVkaW9Db252ZXJ0ZXJSZWYqIG91dEF1ZGlv
Q29udmVydGVyKSwgKGluU291cmNlRm9ybWF0LCBpbkRlc3RpbmF0aW9uRm9ybWF0LCBvdXRBdWRp
b0NvbnZlcnRlcikpCi0KLVNPRlRfTElOSyhNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5n
VGFwR2V0U3RvcmFnZSwgdm9pZCosIChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFw
KSkKLVNPRlRfTElOSyhNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U291cmNl
QXVkaW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3Vu
dCBudW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdEluT3V0LCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1lUmFuZ2UgKnRpbWVSYW5nZU91dCwg
Q01JdGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAsIG51bWJlckZyYW1lcywgYnVmZmVy
TGlzdEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBudW1iZXJGcmFtZXNPdXQpKQotU09G
VF9MSU5LX01BWV9GQUlMKE1lZGlhVG9vbGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUs
IE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBNVEF1ZGlvUHJvY2Vz
c2luZ1RhcENhbGxiYWNrcyAqY2FsbGJhY2tzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0aW9u
RmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmICp0YXBPdXQpLCAoYWxsb2NhdG9y
LCBjYWxsYmFja3MsIGZsYWdzLCB0YXBPdXQpKQorI2ltcG9ydCA8cGFsL2NvY29hL01lZGlhVG9v
bGJveFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNl
IFBBTDsKIHN0YXRpYyBjb25zdCBkb3VibGUga1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7CiAKIGNs
YXNzIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpUYXBTdG9yYWdlPiB7
CkBAIC03Myw3ICs2NCw3IEBAIHB1YmxpYzoKIAogUmVmUHRyPEF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDPiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKEFWUGxheWVySXRlbSAq
aXRlbSkKIHsKLSAgICBpZiAoIWNhbkxvYWRNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSgpKQor
ICAgIGlmICghUEFMOjpjYW5Mb2FkX01lZGlhVG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcENy
ZWF0ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhpdGVtKSk7CiB9CkBAIC0xNTIsNyArMTQzLDcg
QEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVz
KiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2MKICAgICBtX3JlYWRDb3VudCArPSBmcmFtZXNUb1By
b2Nlc3M7CiAKICAgICBpZiAobV9jb252ZXJ0ZXIpCi0gICAgICAgIEF1ZGlvQ29udmVydGVyQ29u
dmVydENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9s
aXN0LmdldCgpLCBtX2xpc3QuZ2V0KCkpOworICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyQ29u
dmVydENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1lc1RvUHJvY2VzcywgbV9s
aXN0LmdldCgpLCBtX2xpc3QuZ2V0KCkpOwogfQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQpAQCAt
MjI1LDcgKzIxNiw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZU1p
eElmTmVlZGVkKCkKICAgICB9OwogCiAgICAgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwID0g
bnVsbHB0cjsKLSAgICBPU1N0YXR1cyBzdGF0dXMgPSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmY2FsbGJhY2tzLCAxLCAmdGFwKTsKKyAgICBPU1N0YXR1
cyBzdGF0dXMgPSBQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsICZjYWxsYmFja3MsIDEsICZ0YXApOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsK
ICAgICAgICAgaWYgKHRhcCkKICAgICAgICAgICAgIENGUmVsZWFzZSh0YXApOwpAQCAtMjU4LDE0
ICsyNDksMTQgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6aW5pdENhbGxiYWNr
KE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgdm9pZCoKIHZvaWQgQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFw
KQogewogICAgIEFTU0VSVCh0YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0
aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkp
OworICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4o
UEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAgICAgdGFwU3RvcmFn
ZS0+ZGVyZWYoKTsKIH0KIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFy
ZUNhbGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbWF4RnJh
bWVzLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gKnByb2Nlc3NpbmdGb3JtYXQp
CiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRp
Y19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7
CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihQ
QUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExvY2tlciBs
b2NrZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTI3Niw3ICsyNjcsNyBAQCB2b2lkIEF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3Np
bmdUYXBSZWYgdGFwLCBDTQogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVw
YXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogewogICAgIEFTU0VSVCh0
YXApOwotICAgIFRhcFN0b3JhZ2UqIHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdl
Kj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRhcCkpOworICAgIFRhcFN0b3JhZ2Uq
IHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oUEFMOjpNVEF1ZGlvUHJvY2Vz
c2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgdGFwU3RvcmFn
ZS0+bG9jayB9OwogCkBAIC0yODcsNyArMjc4LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6dW5wcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQog
dm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzc0NhbGxiYWNrKE1UQXVkaW9Q
cm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVtQ291bnQgbnVtYmVyRnJhbWVzLCBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcEZsYWdzIGZsYWdzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwg
Q01JdGVtQ291bnQgKm51bWJlckZyYW1lc091dCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAq
ZmxhZ3NPdXQpCiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFn
ZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3Jh
Z2UodGFwKSk7CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0
b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAg
IExvY2tlciBsb2NrZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTMxNyw3ICszMDgsNyBA
QCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKENNSXRlbUNvdW50IG1h
eEZyYW1lcywgY29uc3QgQXVkaW9TdHJlYQogCiAgICAgaWYgKCptX3RhcERlc2NyaXB0aW9uICE9
ICptX291dHB1dERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEF1ZGlvQ29udmVydGVyUmVmIG91dENv
bnZlcnRlciA9IG51bGxwdHI7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyTmV3KG1fdGFwRGVzY3Jp
cHRpb24uZ2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOwor
ICAgICAgICBQQUw6OkF1ZGlvQ29udmVydGVyTmV3KG1fdGFwRGVzY3JpcHRpb24uZ2V0KCksIG1f
b3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZl
cnRlciA9IG91dENvbnZlcnRlcjsKICAgICB9CiAKQEAgLTM1Nyw3ICszNDgsNyBAQCB2b2lkIEF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVm
IHRhcCwgQ01JdGVtQ291bgogICAgIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7CiAg
ICAgQ01UaW1lUmFuZ2UgcmFuZ2VPdXQ7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gTVRBdWRpb1By
b2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyh0YXAsIG51bWJlck9mRnJhbWVzLCBidWZmZXJMaXN0
SW5PdXQsIGZsYWdzT3V0LCAmcmFuZ2VPdXQsICZpdGVtQ291bnQpOworICAgIE9TU3RhdHVzIHN0
YXR1cyA9IFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbyh0YXAsIG51bWJl
ck9mRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCAmcmFuZ2VPdXQsICZpdGVtQ291
bnQpOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgIWl0ZW1Db3VudCkKICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAzMDViM2QyN2UzNDJmOTg3MjExMmYx
MTc0YzE0ZmY0ZjNjNjA4NTVkLi41MzI5ZjFkOWQzYWVhN2M1NGQzMzY2YzMyYWQxYTYwMzhhNzll
YjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTIzMiw3ICsyMzIsNiBAQCBzdHJ1Y3Qg
TG9nQXJndW1lbnQ8QVZQbGF5ZXJUaW1lQ29udHJvbFN0YXR1cz4gewogfTsgLy8gbmFtZXNwYWNl
IFdURgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0
aWMgTlNBcnJheSAqYXNzZXRNZXRhZGF0YUtleU5hbWVzKCk7CiBzdGF0aWMgTlNBcnJheSAqaXRl
bUtWT1Byb3BlcnRpZXMoKTsKQEAgLTU3Miw3ICs1NzEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUNvbnRleHRWaWRlb1JlbmRlcmVyKCkKIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUdlbmVyYXRv
cigpCiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKICAgICBJTkZPX0xPRyhMT0dJREVOVElG
SUVSKTsKIAogICAgIGlmICghbV9hdkFzc2V0IHx8IG1faW1hZ2VHZW5lcmF0b3IpCkBAIC01ODIs
OCArNTgwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVh
dGVJbWFnZUdlbmVyYXRvcigpCiAKICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcGVy
dHVyZU1vZGU6QVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZV07
CiAgICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJh
bnNmb3JtOllFU107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgc2V0UmVxdWVzdGVkVGlt
ZVRvbGVyYW5jZUJlZm9yZTprQ01UaW1lWmVyb107Ci0gICAgW21faW1hZ2VHZW5lcmF0b3IuZ2V0
KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUFmdGVyOmtDTVRpbWVaZXJvXTsKKyAgICBbbV9p
bWFnZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOlBBTDo6
a0NNVGltZVplcm9dOworICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRp
bWVUb2xlcmFuY2VBZnRlcjpQQUw6OmtDTVRpbWVaZXJvXTsKIH0KIAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKQpA
QCAtNjcxLDcgKzY2OSw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpnZXRTdGFydERhdGUoKSBjb25zdAogICAgIGlmICghZGF0ZSkKICAgICAgICAgcmV0
dXJuIE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKIAotICAgIGRvdWJsZSBjdXJyZW50VGltZSA9
IENNVGltZUdldFNlY29uZHMoW21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXSkgKiAxMDAwOwor
ICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXll
ckl0ZW0gY3VycmVudFRpbWVdKSAqIDEwMDA7CiAKICAgICAvLyBSb3VuZGluZyBkdWUgdG8gc2Vj
b25kIG9mZnNldCBlcnJvciB3aGVuIHN1YnRyYWN0aW5nLgogICAgIHJldHVybiBNZWRpYVRpbWU6
OmNyZWF0ZVdpdGhEb3VibGUocm91bmQoZGF0ZSAtIGN1cnJlbnRUaW1lKSk7CkBAIC0xMDg5LDcg
KzEwODcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUFWUGxheWVyKCkKIAogICAgIEFTU0VSVCghbV9jdXJyZW50VGltZU9ic2VydmVyKTsKICAgICBh
dXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwotICAgIG1fY3VycmVudFRpbWVPYnNl
cnZlciA9IFttX2F2UGxheWVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6Q01U
aW1lTWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2Nr
Olt3ZWFrVGhpc10gKENNVGltZSB0aW1lKSB7CisgICAgbV9jdXJyZW50VGltZU9ic2VydmVyID0g
W21fYXZQbGF5ZXIgYWRkUGVyaW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGlt
ZU1ha2UoMSwgMTApIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpb
d2Vha1RoaXNdIChDTVRpbWUgdGltZSkgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAg
ICAgICB3ZWFrVGhpcy0+Y3VycmVudE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1l
KHRpbWUpKTsKICAgICB9XTsKQEAgLTE0MjMsNyArMTQyMSw3IEBAIE1lZGlhVGltZSBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIAogICAgIGlmICghbV93YWxsQ2xv
Y2tBdENhY2hlZEN1cnJlbnRUaW1lKQotICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdl
KHRvTWVkaWFUaW1lKFttX2F2UGxheWVySXRlbS5nZXQoKSBjdXJyZW50VGltZV0pKTsKKyAgICAg
ICAgY3VycmVudE1lZGlhVGltZURpZENoYW5nZShQQUw6OnRvTWVkaWFUaW1lKFttX2F2UGxheWVy
SXRlbS5nZXQoKSBjdXJyZW50VGltZV0pKTsKICAgICBBU1NFUlQobV93YWxsQ2xvY2tBdENhY2hl
ZEN1cnJlbnRUaW1lKTsKIAogICAgIGF1dG8gaXRlbVRpbWUgPSBtX2NhY2hlZEN1cnJlbnRNZWRp
YVRpbWU7CkBAIC0xNDY4LDggKzE0NjYsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAg
IENNVGltZSBjbUFmdGVyID0gUEFMOjp0b0NNVGltZShwb3NpdGl2ZVRvbGVyYW5jZSk7CiAKICAg
ICAvLyBbQVZQbGF5ZXJJdGVtIHNlZWtUb1RpbWVdIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlm
IHRvbGVyYW5jZUJlZm9yZSBpcyBuZWdhdGl2ZS4KLSAgICBpZiAoQ01UaW1lQ29tcGFyZShjbUJl
Zm9yZSwga0NNVGltZVplcm8pIDwgMCkKLSAgICAgICAgY21CZWZvcmUgPSBrQ01UaW1lWmVybzsK
KyAgICBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKGNtQmVmb3JlLCBQQUw6OmtDTVRpbWVaZXJvKSA8
IDApCisgICAgICAgIGNtQmVmb3JlID0gUEFMOjprQ01UaW1lWmVybzsKICAgICAKICAgICBhdXRv
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogCkBAIC0xNTg2LDYgKzE1ODQsOCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFBpdGNoQ29ycmVjdGlv
bkFsZ29yaXRobShNZWRpYVBsYXllcgogCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFu
Z2VzPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUJ1ZmZlcmVk
VGltZVJhbmdlcygpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENN
VElNRVJBTkdFX0lTX0VNUFRZLgorCiAgICAgYXV0byB0aW1lUmFuZ2VzID0gbWFrZVVuaXF1ZTxQ
bGF0Zm9ybVRpbWVSYW5nZXM+KCk7CiAKICAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtKQpAQCAtMTU5
NCwxMyArMTU5NCwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybQogICAgIGZvciAoTlNWYWx1
ZSAqdGhpc1JhbmdlVmFsdWUgaW4gbV9jYWNoZWRMb2FkZWRSYW5nZXMuZ2V0KCkpIHsKICAgICAg
ICAgQ01UaW1lUmFuZ2UgdGltZVJhbmdlID0gW3RoaXNSYW5nZVZhbHVlIENNVGltZVJhbmdlVmFs
dWVdOwogICAgICAgICBpZiAoQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSAmJiAhQ01U
SU1FUkFOR0VfSVNfRU1QVFkodGltZVJhbmdlKSkKLSAgICAgICAgICAgIHRpbWVSYW5nZXMtPmFk
ZChQQUw6OnRvTWVkaWFUaW1lKHRpbWVSYW5nZS5zdGFydCksIFBBTDo6dG9NZWRpYVRpbWUoQ01U
aW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSkpOworICAgICAgICAgICAgdGltZVJhbmdlcy0+YWRk
KFBBTDo6dG9NZWRpYVRpbWUodGltZVJhbmdlLnN0YXJ0KSwgUEFMOjp0b01lZGlhVGltZShQQUw6
OkNNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5nZSkpKTsKICAgICB9CiAgICAgcmV0dXJuIHRpbWVS
YW5nZXM7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwbGF0Zm9ybU1pblRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNl
IFBBTDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VNUFRZLgorCiAgICAgaWYgKCFtX2NhY2hlZFNl
ZWthYmxlUmFuZ2VzIHx8ICFbbV9jYWNoZWRTZWVrYWJsZVJhbmdlcyBjb3VudF0pCiAgICAgICAg
IHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiAKQEAgLTE2MjEsNiArMTYyMyw4IEBAIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1pblRp
bWVTZWVrYWJsZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7CisgICAgdXNpbmcg
bmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRVJBTkdFX0lTX0VNUFRZLgorCiAgICAgaWYgKCFt
X2NhY2hlZFNlZWthYmxlUmFuZ2VzKQogICAgICAgICBtX2NhY2hlZFNlZWthYmxlUmFuZ2VzID0g
W21fYXZQbGF5ZXJJdGVtIHNlZWthYmxlVGltZVJhbmdlc107CiAKQEAgLTE2MzMsNyArMTYzNyw3
IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9y
bU1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFM
SUQodGltZVJhbmdlKSB8fCBDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9
IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CisgICAgICAg
IE1lZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZVJhbmdl
R2V0RW5kKHRpbWVSYW5nZSkpOwogICAgICAgICBpZiAobWF4VGltZVNlZWthYmxlIDwgZW5kT2ZS
YW5nZSkKICAgICAgICAgICAgIG1heFRpbWVTZWVrYWJsZSA9IGVuZE9mUmFuZ2U7CiAgICAgfQpA
QCAtMTY0Miw2ICsxNjQ2LDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKIAogTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgp
IGNvbnN0CiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRVJBTkdFX0lT
X0VNUFRZLgorCiAgICAgaWYgKCFtX2NhY2hlZExvYWRlZFJhbmdlcykKICAgICAgICAgcmV0dXJu
IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIApAQCAtMTY1MSw3ICsxNjU3LDcgQEAgTWVkaWFUaW1l
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRl
ZCgpIGNvbnN0CiAgICAgICAgIGlmICghQ01USU1FUkFOR0VfSVNfVkFMSUQodGltZVJhbmdlKSB8
fCBDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIAotICAgICAgICBNZWRpYVRpbWUgZW5kT2ZSYW5nZSA9IFBBTDo6dG9NZWRpYVRp
bWUoQ01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CisgICAgICAgIE1lZGlhVGltZSBlbmRP
ZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZVJhbmdlR2V0RW5kKHRpbWVSYW5n
ZSkpOwogICAgICAgICBpZiAobWF4VGltZUxvYWRlZCA8IGVuZE9mUmFuZ2UpCiAgICAgICAgICAg
ICBtYXhUaW1lTG9hZGVkID0gZW5kT2ZSYW5nZTsKICAgICB9CkBAIC0xODAzLDcgKzE4MDksNyBA
QCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlSW1hZ2VGb3JUaW1lSW5SZQogICAgIE1vbm90b25pY1RpbWUgc3RhcnQgPSBNb25v
dG9uaWNUaW1lOjpub3coKTsKIAogICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldE1heGlt
dW1TaXplOkNHU2l6ZShyZWN0LnNpemUoKSldOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBy
YXdJbWFnZSA9IGFkb3B0Q0YoW21faW1hZ2VHZW5lcmF0b3IuZ2V0KCkgY29weUNHSW1hZ2VBdFRp
bWU6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJyb3I6
bmlsXSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9p
bWFnZUdlbmVyYXRvci5nZXQoKSBjb3B5Q0dJbWFnZUF0VGltZTpQQUw6OkNNVGltZU1ha2VXaXRo
U2Vjb25kcyh0aW1lLCA2MDApIGFjdHVhbFRpbWU6bmlsIGVycm9yOm5pbF0pOwogICAgIFJldGFp
blB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29s
b3JTcGFjZShyYXdJbWFnZS5nZXQoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSkpOwogCiAgICAgSU5G
T19MT0coTE9HSURFTlRJRklFUiwgImNyZWF0aW5nIGltYWdlIHRvb2sgIiwgKE1vbm90b25pY1Rp
bWU6Om5vdygpIC0gc3RhcnQpLnNlY29uZHMoKSk7CkBAIC0xOTg5LDcgKzE5OTUsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFN0b3BMb2FkaW5nUmVxdWVz
dChBVkFzc2V0UmVzb3VyY2VMbwogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZy
YW1ld29ya0F2YWlsYWJsZSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7Cisg
ICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBQQUw6
OmlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoY29uc3Qg
TWVkaWFUaW1lJiB0aW1lVmFsdWUpIGNvbnN0CkBAIC0yOTAxLDcgKzI5MDcsNyBAQCBzdGF0aWMg
TlNTdHJpbmcgKmV4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcihBVlBsYXllciAqcGxh
eWVyKQogICAgIGlmICghUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpKQog
ICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgaWYgKGF1dG8gY29udGV4dCA9IE91dHB1dENvbnRl
eHQ6OnNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dCgpKQorICAgIGlmIChhdXRv
IGNvbnRleHQgPSBQQUw6Ok91dHB1dENvbnRleHQ6OnNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0
cHV0Q29udGV4dCgpKQogICAgICAgICByZXR1cm4gY29udGV4dC0+ZGV2aWNlTmFtZSgpOwogCiAg
ICAgaWYgKHBsYXllci5leHRlcm5hbFBsYXliYWNrVHlwZSAhPSBBVlBsYXllckV4dGVybmFsUGxh
eWJhY2tUeXBlQWlyUGxheSkKQEAgLTMyMzUsOSArMzI0MSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFHcm91cERpZEFycml2ZShjb25zdCBSZXRh
aW5QdHI8CiAgICAgICAgIGZvciAoQVZNZXRhZGF0YUl0ZW0gKml0ZW0gaW4gZ3JvdXAuaXRlbXMp
IHsKICAgICAgICAgICAgIFJldGFpblB0cjxBVk11dGFibGVNZXRhZGF0YUl0ZW0+IGl0ZW1Db3B5
ID0gYWRvcHROUyhbaXRlbSBtdXRhYmxlQ29weV0pOwogICAgICAgICAgICAgaWYgKCFDTVRJTUVf
SVNfVkFMSUQoaXRlbUNvcHkuZ2V0KCkudGltZSkpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHku
Z2V0KCkudGltZSA9IENNVGltZU1ha2VXaXRoU2Vjb25kcyhncm91cFN0YXJ0VGltZSwgTWVkaWFU
aW1lOjpEZWZhdWx0VGltZVNjYWxlKTsKKyAgICAgICAgICAgICAgICBpdGVtQ29weS5nZXQoKS50
aW1lID0gUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoZ3JvdXBTdGFydFRpbWUsIE1lZGlhVGlt
ZTo6RGVmYXVsdFRpbWVTY2FsZSk7CiAgICAgICAgICAgICBpZiAoIUNNVElNRV9JU19WQUxJRChp
dGVtQ29weS5nZXQoKS5kdXJhdGlvbikpCi0gICAgICAgICAgICAgICAgaXRlbUNvcHkuZ2V0KCku
ZHVyYXRpb24gPSB0b0NNVGltZShncm91cER1cmF0aW9uKTsKKyAgICAgICAgICAgICAgICBpdGVt
Q29weS5nZXQoKS5kdXJhdGlvbiA9IFBBTDo6dG9DTVRpbWUoZ3JvdXBEdXJhdGlvbik7CiAgICAg
ICAgICAgICBbZ3JvdXBDb3B5IGFkZE9iamVjdDppdGVtQ29weS5nZXQoKV07CiAgICAgICAgIH0K
IApAQCAtMzI3OSw3ICszMjg1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjptZXRhZGF0YURpZEFycml2ZShjb25zdCBSZXRhaW5QdHI8TlNBcnIKIAogICAgICAg
ICBNZWRpYVRpbWUgZW5kID0gTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpOwogICAg
ICAgICBhdXRvIGR1cmF0aW9uID0gaXRlbS5kdXJhdGlvbjsKLSAgICAgICAgaWYgKENNVElNRV9J
U19WQUxJRChkdXJhdGlvbikgJiYgQ01UaW1lR2V0U2Vjb25kcyhkdXJhdGlvbikgPiAwLjAwMSkK
KyAgICAgICAgaWYgKENNVElNRV9JU19WQUxJRChkdXJhdGlvbikgJiYgUEFMOjpDTVRpbWVHZXRT
ZWNvbmRzKGR1cmF0aW9uKSA+IDAuMDAxKQogICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBQQUw6
OnRvTWVkaWFUaW1lKGR1cmF0aW9uKTsKIAogICAgICAgICBBdG9tU3RyaW5nIHR5cGUgPSBudWxs
QXRvbSgpOwpAQCAtMzQ1OCw3ICszNDY0LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm8KICAg
ICBpZiAobV90aW1lT2JzZXJ2ZXIpCiAgICAgICAgIFttX2F2UGxheWVyIHJlbW92ZVRpbWVPYnNl
cnZlcjptX3RpbWVPYnNlcnZlci5nZXQoKV07CiAKLSAgICBtX3RpbWVPYnNlcnZlciA9IFttX2F2
UGxheWVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdp
dGhDTVRpbWU6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6XnsKKyAgICBtX3RpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZEJvdW5k
YXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6UEFMOjp0
b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9j
azpeewogICAgICAgICB0YXNrSW4oKTsKICAgICB9XTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA1YTY5YWE2Nzk1MTg5Y2I0ZTA3NmQzMTk0NjlmOTk2
NTA0ZmY5NDZjLi43M2FkZWI5YmI3M2E3ODI4ZGY1YTNmNDg0YzVmOTBlMzMzZDI0MWIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC02Niw3ICs2Niw2IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDooTlNVUkwgKilzdG9yYWdlRGlyZWN0b3J5
OwogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBT
dHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpTZWVrU3RhdGUgZW51bWVyYXRpb25WYWx1ZSkKIHsKQEAgLTExNiwxNSAr
MTE1LDE1IEBAIHN0YXRpYyB2b2lkIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxi
YWNrKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCBjb25zCiAKIHZvaWQgRWZmZWN0aXZlUmF0ZUNo
YW5nZWRMaXN0ZW5lcjo6c3RvcChDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogewotICAgIENNTm90
aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9j
YWxDZW50ZXIoKTsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyKG5jLCB0
aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywga0NNVGltZWJhc2VO
b3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlKTsKKyAgICBDTU5vdGlm
aWNhdGlvbkNlbnRlclJlZiBuYyA9IFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0
TG9jYWxDZW50ZXIoKTsKKyAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVu
ZXIobmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrLCBQQUw6
OmtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCB0aW1lYmFzZSk7
CiB9CiAKIEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OkVmZmVjdGl2ZVJhdGVDaGFuZ2Vk
TGlzdGVuZXIoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDJiBjbGllbnQsIENN
VGltZWJhc2VSZWYgdGltZWJhc2UpCiAgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQp
KQogewotICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gQ01Ob3RpZmljYXRpb25DZW50
ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKTsKLSAgICBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExp
c3RlbmVyKG5jLCB0aGlzLCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNoYW5nZWRDYWxsYmFjaywg
a0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAw
KTsKKyAgICBDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBuYyA9IFBBTDo6Q01Ob3RpZmljYXRpb25D
ZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKTsKKyAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2Vu
dGVyQWRkTGlzdGVuZXIobmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENh
bGxiYWNrLCBQQUw6OmtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2Vk
LCB0aW1lYmFzZSwgMCk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5
ZXIpCkBAIC0xNTcsNyArMTU2LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWEKICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBERUJVR19MT0co
bG9nU2l0ZUlkZW50aWZpZXIsICJzeW5jaHJvbml6ZXIgZmlyZWQgZm9yICIsIHRvTWVkaWFUaW1l
KHRpbWUpLCAiLCBzZWVraW5nID0gIiwgbV9zZWVraW5nLCAiLCBwZW5kaW5nID0gIiwgISFtX3Bl
bmRpbmdTZWVrKTsKKyAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAic3luY2hy
b25pemVyIGZpcmVkIGZvciAiLCBQQUw6OnRvTWVkaWFUaW1lKHRpbWUpLCAiLCBzZWVraW5nID0g
IiwgbV9zZWVraW5nLCAiLCBwZW5kaW5nID0gIiwgISFtX3BlbmRpbmdTZWVrKTsKIAogICAgICAg
ICBpZiAobV9zZWVraW5nICYmICFtX3BlbmRpbmdTZWVrKSB7CiAgICAgICAgICAgICBtX3NlZWtp
bmcgPSBmYWxzZTsKQEAgLTIzOCwxMSArMjM3LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0
CiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUo
KQogewogICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkK
LSAgICAgICAgJiYgaXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKQotICAgICAgICAmJiBn
ZXRBVlN0cmVhbURhdGFQYXJzZXJDbGFzcygpCi0gICAgICAgICYmIGdldEFWU2FtcGxlQnVmZmVy
QXVkaW9SZW5kZXJlckNsYXNzKCkKLSAgICAgICAgJiYgZ2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJT
eW5jaHJvbml6ZXJDbGFzcygpCi0gICAgICAgICYmIGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKGdl
dEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3RvcihzZXRNdXRlZDop
KTsKKyAgICAgICAgJiYgUEFMOjppc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpCisgICAg
ICAgICYmIFBBTDo6Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKQorICAgICAgICAmJiBQQUw6
OmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCkKKyAgICAgICAgJiYgUEFMOjpn
ZXRBVlNhbXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplckNsYXNzKCkKKyAgICAgICAgJiYgY2xh
c3NfZ2V0SW5zdGFuY2VNZXRob2QoUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJD
bGFzcygpLCBAc2VsZWN0b3Ioc2V0TXV0ZWQ6KSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpCkBAIC00MTcsNyArNDE2LDcgQEAgTWVk
aWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZHVyYXRpb25NZWRp
YVRpbWUoKSBjb25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKIHsKLSAgICBNZWRpYVRpbWUgc3luY2hy
b25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hy
b25pemVyIHRpbWViYXNlXSkpOworICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFM
Ojp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1l
YmFzZV0pKTsKICAgICBpZiAoc3luY2hyb25pemVyVGltZSA8IE1lZGlhVGltZTo6emVyb1RpbWUo
KSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKICAgICBpZiAoc3luY2hy
b25pemVyVGltZSA8IG1fbGFzdFNlZWtUaW1lKQpAQCAtNDMwLDcgKzQyOSw3IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRDdXJyZW50VGltZURpZENoYW5n
ZUNhbGxiYWNrKE1lZGlhCiAgICAgbV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayk7CiAKICAgICBpZiAobV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNr
KSB7Ci0gICAgICAgIG1fdGltZUNoYW5nZWRPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRQ
ZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOkNNVGltZU1ha2UoMSwgMTApIHF1ZXVlOmRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENNVGltZSB0aW1lKSB7CisgICAg
ICAgIG1fdGltZUNoYW5nZWRPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRQZXJpb2RpY1Rp
bWVPYnNlcnZlckZvckludGVydmFsOlBBTDo6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl4oQ01UaW1lIHRpbWUpIHsKICAgICAgICAg
ICAgIGlmIChtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2spCiAgICAgICAgICAgICAgICAg
bV9jdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKENNVElNRV9JU19OVU1FUklDKHRpbWUpID8g
UEFMOjp0b01lZGlhVGltZSh0aW1lKSA6IE1lZGlhVGltZTo6emVyb1RpbWUoKSk7CiAgICAgICAg
IH1dOwpAQCAtNDgyLDcgKzQ4MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwoKQogICAgIGlmIChtX2xhc3RTZWVrVGltZS5oYXNEb3Vi
bGVWYWx1ZSgpKQogICAgICAgICBtX2xhc3RTZWVrVGltZSA9IE1lZGlhVGltZTo6Y3JlYXRlV2l0
aERvdWJsZShtX2xhc3RTZWVrVGltZS50b0RvdWJsZSgpLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1l
U2NhbGUpOwogCi0gICAgTWVkaWFUaW1lIHN5bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFU
aW1lKENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKTsKKyAgICBN
ZWRpYVRpbWUgc3luY2hyb25pemVyVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVRpbWVi
YXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CiAgICAgSU5GT19MT0coTE9H
SURFTlRJRklFUiwgInNlZWtUaW1lID0gIiwgbV9sYXN0U2Vla1RpbWUsICIsIHN5bmNocm9uaXpl
clRpbWUgPSAiLCBzeW5jaHJvbml6ZXJUaW1lKTsKIAogICAgIGJvb2wgZG9lc05vdFJlcXVpcmVT
ZWVrID0gc3luY2hyb25pemVyVGltZSA9PSBtX2xhc3RTZWVrVGltZTsKQEAgLTU5OSw3ICs1OTgs
NyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6dXBkYXRlTGFz
dFBpeGVsQnVmZmVyKCkKICAgICBpZiAobV92aWRlb091dHB1dCkgewogICAgICAgICBDTVRpbWUg
b3V0cHV0VGltZTsKICAgICAgICAgaWYgKGF1dG8gcGl4ZWxCdWZmZXIgPSBhZG9wdENGKFttX3Zp
ZGVvT3V0cHV0IGNvcHlQaXhlbEJ1ZmZlckZvclNvdXJjZVRpbWU6dG9DTVRpbWUoY3VycmVudE1l
ZGlhVGltZSgpKSBzb3VyY2VUaW1lRm9yRGlzcGxheTomb3V0cHV0VGltZV0pKSB7Ci0gICAgICAg
ICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHBpeGVsYnVmZmVyIGZvdW5kIGZvciB0
aW1lICIsIHRvTWVkaWFUaW1lKG91dHB1dFRpbWUpKTsKKyAgICAgICAgICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIsICJuZXcgcGl4ZWxidWZmZXIgZm91bmQgZm9yIHRpbWUgIiwgUEFMOjp0b01l
ZGlhVGltZShvdXRwdXRUaW1lKSk7CiAgICAgICAgICAgICBtX2xhc3RQaXhlbEJ1ZmZlciA9IFdU
Rk1vdmUocGl4ZWxCdWZmZXIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
QEAgLTgwOSw3ICs4MDgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6ZGVzdHJveUxheWVyKCkKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KQogICAgICAgICByZXR1cm47CiAKLSAgICBDTVRpbWUgY3VycmVudFRpbWUgPSBDTVRpbWViYXNl
R2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKKyAgICBDTVRpbWUgY3VycmVudFRp
bWUgPSBQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOwog
ICAgIFttX3N5bmNocm9uaXplciByZW1vdmVSZW5kZXJlcjptX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5nZXQoKSBhdFRpbWU6Y3VycmVudFRpbWUgd2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9P
TCl7CiAgICAgICAgIC8vIE5vLW9wLgogICAgIH1dOwpAQCAtMTAxOCw3ICsxMDE3LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmZsdXNoUGVuZGluZ1NpemVD
aGFuZ2VzKCkKICNpZiBIQVZFKEFWU1RSRUFNU0VTU0lPTikKIEFWU3RyZWFtU2Vzc2lvbiogTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKCkKIHsKLSAg
ICBpZiAoIWdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgfHwgIVtQQUw6OmdldEFWU3RyZWFtU2Vz
c2lvbkNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRXaXRo
U3RvcmFnZURpcmVjdG9yeUF0VVJMOildKQorICAgIGlmICghUEFMOjpnZXRBVlN0cmVhbVNlc3Np
b25DbGFzcygpIHx8ICFbUEFMOjpnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGluc3RhbmNlc1Jl
c3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aFN0b3JhZ2VEaXJlY3RvcnlBdFVSTDop
XSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIGlmICghbV9zdHJlYW1TZXNzaW9uKSB7CkBA
IC0xMjE3LDcgKzEyMTYsNyBAQCBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogICAg
IGlmIChpdGVyID09IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5lbmQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUo
W21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gUEFM
OjpDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKICAgICBbbV9z
eW5jaHJvbml6ZXIgcmVtb3ZlUmVuZGVyZXI6YXVkaW9SZW5kZXJlciBhdFRpbWU6Y3VycmVudFRp
bWUgd2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCl7CiAgICAgICAgIC8vIE5vLW9wLgogICAg
IH1dOwpAQCAtMTMwMSw3ICsxMzAwLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RGOjpGdW5jdGlvbjwKICAgICBp
ZiAobV9wZXJmb3JtVGFza09ic2VydmVyKQogICAgICAgICBbbV9zeW5jaHJvbml6ZXIgcmVtb3Zl
VGltZU9ic2VydmVyOm1fcGVyZm9ybVRhc2tPYnNlcnZlci5nZXQoKV07CiAKLSAgICBtX3BlcmZv
cm1UYXNrT2JzZXJ2ZXIgPSBbbV9zeW5jaHJvbml6ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJG
b3JUaW1lczpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTp0b0NNVGltZSh0aW1lKV1dIHF1ZXVl
OmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeeworICAgIG1fcGVyZm9ybVRh
c2tPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRp
bWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXSBxdWV1
ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKICAgICAgICAgdGFza0lu
KCk7CiAgICAgfV07CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
aW5kZXggZTFhZDEwMmJiOTgxYmYzNzRlNmJkOTM3YzBjNmUyYTg3ZjQwZjE1Zi4uNTViNTAwYzU3
ZTkzZWJiYTQ5NmFlNzQxNmZkNWRmNzhkN2I5NDU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNp
bXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmgiCisjaW1wb3J0ICJNZWRpYVBsYXllci5oIgogI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLmgiCiAjaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbXBvcnQgIlBpeGVs
QnVmZmVyQ29uZm9ybWVyQ1YuaCIKQEAgLTEyMSw3ICsxMjIsNiBAQCAtICh2b2lkKW9ic2VydmVW
YWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNo
YW5nZTooTgogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFM
OwogCiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQwpAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0
CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJs
ZSgpCiB7Ci0gICAgcmV0dXJuIGlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYg
aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKSAmJiBnZXRBVlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllckNsYXNzKCk7CisgICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtB
dmFpbGFibGUoKSAmJiBQQUw6OmlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFM
OjpnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCk7CiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpCkBAIC0yMzAsNyArMjMw
LDcgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb24KIHN0YXRpYyBpbmxpbmUgQ0dBZmZpbmVUcmFu
c2Zvcm0gdmlkZW9UcmFuc2Zvcm1hdGlvbk1hdHJpeChNZWRpYVNhbXBsZSYgc2FtcGxlKQogewog
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IHNhbXBsZS5wbGF0Zm9ybVNhbXBs
ZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcjsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFn
ZUJ1ZmZlcihzYW1wbGVCdWZmZXIpKTsKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
ID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldElt
YWdlQnVmZmVyKHNhbXBsZUJ1ZmZlcikpOwogICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZm
ZXJHZXRXaWR0aChwaXhlbEJ1ZmZlcik7CiAgICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZm
ZXJHZXRIZWlnaHQocGl4ZWxCdWZmZXIpOwogICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkKQEAg
LTk2MCw3ICs5NjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2UoKQogICAgIGlmICghbV9pbWFnZVBhaW50ZXIucGl4
ZWxCdWZmZXJDb25mb3JtZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKG1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBs
ZS5jbVNhbXBsZUJ1ZmZlcikpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxD
VlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9pbWFn
ZVBhaW50ZXIubWVkaWFTYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVm
ZmVyKSk7CiAgICAgbV9pbWFnZVBhaW50ZXIuY2dJbWFnZSA9IE5hdGl2ZUltYWdlOjpjcmVhdGUo
bV9pbWFnZVBhaW50ZXIucGl4ZWxCdWZmZXJDb25mb3JtZXItPmNyZWF0ZUltYWdlRnJvbVBpeGVs
QnVmZmVyKHBpeGVsQnVmZmVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U2FtcGxlQVZGT2JqQy5tbQppbmRleCAyZjQ5ODM4NzY1ZDNjOTQ0MWI2OWJiOTUxOGIzYjFmOWE4
Nzk1MDliLi5jMGYxM2Q2ZWE1Yzk3NTc2N2NlOGY2MmFiNjg0MmQ3ZDZmMGZiYjZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNhbXBsZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCkBAIC0zNiw5ICszNiwx
MiBAQAogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgPHBhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oPgogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCi1XVEZfREVDTEFSRV9D
Rl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKKy8vIEVxdWl2YWxlbnQgdG8gV1RGX0RFQ0xB
UkVfQ0ZfVFlQRV9UUkFJVChDTVNhbXBsZUJ1ZmZlcik7CisvLyBOZWVkZWQgZHVlIHRvIHJlcXVp
cmVtZW50IG9mIHNwZWNpZnlpbmcgdGhlIFBBTCBuYW1lc3BhY2UuCit0ZW1wbGF0ZSA8Pgorc3Ry
dWN0IFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJSZWY+IHsKKyAgICBzdGF0aWMgaW5s
aW5lIENGVHlwZUlEIHR5cGVJRCh2b2lkKSB7IHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
VHlwZUlEKCk7IH0KK307CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjcsMzUgKzcwLDM1
IEBAIFJlZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRl
SW1hZ2VTYW1wbGUoUGl4ZWxCdWZmZXImJiBwCiAgICAgQVNTRVJUX1VOVVNFRChzdGF0dXMsICFz
dGF0dXMpOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uUmF3ID0gbnVsbHB0cjsKLSAgICBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdl
dCgpLCAmZm9ybWF0RGVzY3JpcHRpb25SYXcpOworICAgIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
Y3ZQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uUmF3KTsKICAgICBBU1NFUlQo
IXN0YXR1cyk7CiAgICAgYXV0byBmb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVz
Y3JpcHRpb25SYXcpOwogCi0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHNhbXBsZVRpbWluZ0luZm9y
bWF0aW9uID0geyBrQ01UaW1lSW52YWxpZCwga0NNVGltZUludmFsaWQsIGtDTVRpbWVJbnZhbGlk
IH07CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHNhbXBsZVRpbWluZ0luZm9ybWF0aW9uID0geyBQ
QUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OmtDTVRpbWVJbnZh
bGlkIH07CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyUmF3ID0gbnVsbHB0cjsK
LSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9u
LmdldCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24sICZzYW1wbGVCdWZmZXJSYXcpOworICAg
IHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlv
bi5nZXQoKSwgJnNhbXBsZVRpbWluZ0luZm9ybWF0aW9uLCAmc2FtcGxlQnVmZmVyUmF3KTsKICAg
ICBBU1NFUlQoIXN0YXR1cyk7CiAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKHNhbXBs
ZUJ1ZmZlclJhdyk7CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVl
KTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOwogICAg
IGZvciAoQ0ZJbmRleCBpID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNB
cnJheSk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYg
YXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZB
cnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7Ci0gICAgICAgIENGRGlj
dGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3Bs
YXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAgICAgICBDRkRpY3Rpb25hcnlTZXRW
YWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1l
ZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KICAgICByZXR1cm4gY3JlYXRlKHNhbXBs
ZUJ1ZmZlci5nZXQoKSk7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFWRk9iakM6OnByZXNl
bnRhdGlvblRpbWUoKSBjb25zdAogewotICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZm
ZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOworICAgIGF1
dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRp
bWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKHRpbWVT
dGFtcCkpCi0gICAgICAgIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9u
VGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKKyAgICAgICAgdGltZVN0YW1wID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CiAgICAg
cmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUodGltZVN0YW1wKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlh
U2FtcGxlQVZGT2JqQzo6ZGVjb2RlVGltZSgpIGNvbnN0CiB7Ci0gICAgYXV0byB0aW1lU3RhbXAg
PSBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSk7CisgICAg
YXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1f
c2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQodGltZVN0YW1wKSkKICAg
ICAgICAgcmV0dXJuIHByZXNlbnRhdGlvblRpbWUoKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlh
VGltZSh0aW1lU3RhbXApOwpAQCAtMTAzLDE1ICsxMDYsMTUgQEAgTWVkaWFUaW1lIE1lZGlhU2Ft
cGxlQVZGT2JqQzo6ZGVjb2RlVGltZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVNhbXBsZUFW
Rk9iakM6OmR1cmF0aW9uKCkgY29uc3QKIHsKLSAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVC
dWZmZXJHZXRPdXRwdXREdXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7CisgICAgYXV0byBkdXJhdGlv
biA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihtX3NhbXBsZS5nZXQoKSk7
CiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKGR1cmF0aW9uKSkKLSAgICAgICAgZHVyYXRpb24g
PSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKG1fc2FtcGxlLmdldCgpKTsKKyAgICAgICAgZHVy
YXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24obV9zYW1wbGUuZ2V0KCkpOwog
ICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKGR1cmF0aW9uKTsKIH0KIAogc2l6ZV90IE1lZGlh
U2FtcGxlQVZGT2JqQzo6c2l6ZUluQnl0ZXMoKSBjb25zdAogewotICAgIHJldHVybiBDTVNhbXBs
ZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZShtX3NhbXBsZS5nZXQoKSk7CisgICAgcmV0dXJuIFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUobV9zYW1wbGUuZ2V0KCkpOwogfQog
CiBQbGF0Zm9ybVNhbXBsZSBNZWRpYVNhbXBsZUFWRk9iakM6OnBsYXRmb3JtU2FtcGxlKCkKQEAg
LTEyMiwyMyArMTI1LDIzIEBAIFBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6cGxh
dGZvcm1TYW1wbGUoKQogCiB1aW50MzJfdCBNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVvUGl4ZWxG
b3JtYXQoKSBjb25zdAogewotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBp
eGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdldCgp
KSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+
KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOwogICAg
IHJldHVybiBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKTsKIH0K
IAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MoQ0ZE
aWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0KQogewotICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5
Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3lu
Yyk7CisgICAgcmV0dXJuICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwg
UEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMpOwogfQogCiBzdGF0aWMgYm9vbCBk
b2VzQ01TYW1wbGVCdWZmZXJIYXZlU3luY0luZm8oQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQog
ewotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2Ft
cGxlLCBmYWxzZSk7CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxl
QnVmZmVyUmFuZG9tQWNjZXNzKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIHsKLSAgICBDRkFy
cmF5UmVmIGF0dGFjaG1lbnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5KHNhbXBsZSwgZmFsc2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKICAg
ICBpZiAoIWF0dGFjaG1lbnRzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKQEAgLTE1MSwx
MiArMTU0LDEyIEBAIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0
YWNobWVudE5vbkRpc3BsYXlpbmcoQ0ZEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0KQogewot
ICAgIHJldHVybiBDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwga0NNU2Ft
cGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkpOworICAgIHJldHVybiBDRkRpY3Rpb25hcnlD
b250YWluc0tleShhdHRhY2htZW50RGljdCwgUEFMOjprQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rv
Tm90RGlzcGxheSk7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJOb25EaXNwbGF5
aW5nKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFs
c2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKICAgICBpZiAoIWF0dGFjaG1l
bnRzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCkBAIC0xODYsMTEgKzE4OSwxMSBAQCBN
ZWRpYVNhbXBsZTo6U2FtcGxlRmxhZ3MgTWVkaWFTYW1wbGVBVkZPYmpDOjpmbGFncygpIGNvbnN0
CiAKIEZsb2F0U2l6ZSBNZWRpYVNhbXBsZUFWRk9iakM6OnByZXNlbnRhdGlvblNpemUoKSBjb25z
dAogewotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNh
bXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1fc2FtcGxlLmdldCgpKTsKLSAgICBpZiAo
Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbikgIT0ga0NN
TWVkaWFUeXBlX1ZpZGVvKQorICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9zYW1wbGUu
Z2V0KCkpOworICAgIGlmIChQQUw6OkNNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9y
bWF0RGVzY3JpcHRpb24pICE9IGtDTU1lZGlhVHlwZV9WaWRlbykKICAgICAgICAgcmV0dXJuIEZs
b2F0U2l6ZSgpOwogICAgIAotICAgIHJldHVybiBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwg
dHJ1ZSkpOworICAgIHJldHVybiBGbG9hdFNpemUoUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0cnVl
KSk7CiB9CiAKIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0CkBAIC0yMDEsMTIgKzIwNCwxMiBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNl
dFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmIG9mZnNldCkKIHsKICAgICBDTUl0ZW1Db3Vu
dCBpdGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkp
CisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
QXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0Fy
cmF5OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJy
ICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgp
LCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChu
b0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2Ft
cGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQog
ICAgICAgICByZXR1cm47CiAgICAgCiAgICAgZm9yIChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJbmZv
QXJyYXkpIHsKQEAgLTIxNSw3ICsyMTgsNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zm
c2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogICAgIH0KICAgICAKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxl
QnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1w
bGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkp
CisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1Rp
bWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1p
bmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKICAgICAgICAgcmV0dXJuOwogICAgIAog
ICAgIG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUpOwpAQCAtMjI0LDEyICsyMjcsMTIgQEAg
dm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRp
bWUmIG9mZnNldCkKIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRUaW1lc3RhbXBzKGNvbnN0
IFdURjo6TWVkaWFUaW1lICZwcmVzZW50YXRpb25UaW1lc3RhbXAsIGNvbnN0IFdURjo6TWVkaWFU
aW1lICZkZWNvZGVUaW1lc3RhbXApCiB7CiAgICAgQ01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsK
LSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
bV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQorICAgIGlmIChub0VyciAh
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdl
dCgpLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKICAgICB0aW1pbmdJ
bmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1p
bmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgaXRlbUNv
dW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIGZvciAoYXV0byYgdGltaW5nIDogdGltaW5nSW5mb0FycmF5KSB7CkBAIC0yMzgs
NyArMjQxLDcgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29uc3Qg
V1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGEKICAgICB9CiAgICAgCiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgbmV3U2FtcGxlOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdl
dCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQorICAg
IGlmIChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmco
a0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5m
b0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBt
X3NhbXBsZSA9IGFkb3B0Q0YobmV3U2FtcGxlKTsKQEAgLTI0NiwxMCArMjQ5LDEwIEBAIHZvaWQg
TWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRUaW1lc3RhbXBzKGNvbnN0IFdURjo6TWVkaWFUaW1lICZw
cmVzZW50YXRpb25UaW1lc3RhCiAKIGJvb2wgTWVkaWFTYW1wbGVBVkZPYmpDOjppc0RpdmlzYWJs
ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBs
ZS5nZXQoKSkgPT0gMSkKKyAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMo
bV9zYW1wbGUuZ2V0KCkpID09IDEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0
ciwgbnVsbHB0cikgPT0ga0NNU2FtcGxlQnVmZmVyRXJyb3JfQnVmZmVySGFzTm9TYW1wbGVTaXpl
cykKKyAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheShtX3NhbXBs
ZS5nZXQoKSwgMCwgbnVsbHB0ciwgbnVsbHB0cikgPT0ga0NNU2FtcGxlQnVmZmVyRXJyb3JfQnVm
ZmVySGFzTm9TYW1wbGVTaXplcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJu
IHRydWU7CkBAIC0yNjIsMTcgKzI2NSwxNyBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxl
PiwgUmVmUHRyPE1lZGlhU2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogCiAg
ICAgQ0ZJbmRleCBzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSA9IDA7CiAKLSAgICBDTVNh
bXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUobV9zYW1wbGUuZ2V0KCksIFsmXSAoQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCkgLT4gT1NTdGF0dXMgewot
ICAgICAgICBhdXRvIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0
aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNhbGxC
bG9ja0ZvckVhY2hTYW1wbGUobV9zYW1wbGUuZ2V0KCksIFsmXSAoQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCkgLT4gT1NTdGF0dXMgeworICAgICAgICBhdXRvIHRp
bWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3Rh
bXAoc2FtcGxlQnVmZmVyKTsKICAgICAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKHRpbWVTdGFt
cCkpCi0gICAgICAgICAgICB0aW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlv
blRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgdGltZVN0YW1wID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogCiAg
ICAgICAgIGlmICh1c2VFbmRUaW1lID09IFVzZUVuZFRpbWU6OlVzZSkgewotICAgICAgICAgICAg
YXV0byBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0RHVyYXRpb24oc2FtcGxlQnVm
ZmVyKTsKKyAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
T3V0cHV0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKICAgICAgICAgICAgIGlmIChDTVRJTUVfSVNf
SU5WQUxJRChkdXJhdGlvbikpCi0gICAgICAgICAgICAgICAgZHVyYXRpb24gPSBDTVNhbXBsZUJ1
ZmZlckdldER1cmF0aW9uKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICAgICAgZHVyYXRpb24g
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKIAotICAgICAg
ICAgICAgaWYgKFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24p
KSA+IHByZXNlbnRhdGlvblRpbWUpCisgICAgICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShQ
QUw6OkNNVGltZUFkZCh0aW1lU3RhbXAsIGR1cmF0aW9uKSkgPiBwcmVzZW50YXRpb25UaW1lKQog
ICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9IGVsc2UgaWYgKFBBTDo6dG9NZWRp
YVRpbWUodGltZVN0YW1wKSA+PSBwcmVzZW50YXRpb25UaW1lKQogICAgICAgICAgICAgcmV0dXJu
IDE7CkBAIC0yODMsMTkgKzI4NiwxOSBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwg
UmVmUHRyPE1lZGlhU2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogICAgIGlm
ICghc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUpCiAgICAgICAgIHJldHVybiB7IG51bGxw
dHIsIHRoaXMgfTsKIAotICAgIENNSXRlbUNvdW50IHNhbXBsZUNvdW50ID0gQ01TYW1wbGVCdWZm
ZXJHZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKTsKKyAgICBDTUl0ZW1Db3VudCBzYW1wbGVD
b3VudCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKTsK
ICAgICBpZiAoc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlvblRpbWUgPj0gc2FtcGxlQ291bnQpCiAg
ICAgICAgIHJldHVybiB7IHRoaXMsIG51bGxwdHIgfTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVm
IHJhd1NhbXBsZUJlZm9yZSA9IG51bGxwdHI7CiAgICAgQ0ZSYW5nZSByYW5nZUJlZm9yZSA9IENG
UmFuZ2VNYWtlKDAsIHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25UaW1lKTsKLSAgICBpZiAoQ01T
YW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
bV9zYW1wbGUuZ2V0KCksIHJhbmdlQmVmb3JlLCAmcmF3U2FtcGxlQmVmb3JlKSAhPSBub0VycikK
KyAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VCZWZvcmUsICZyYXdTYW1wbGVC
ZWZvcmUpICE9IG5vRXJyKQogICAgICAgICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CiAg
ICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzYW1wbGVCZWZvcmUgPSBhZG9wdENGKHJh
d1NhbXBsZUJlZm9yZSk7CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVBZnRlciA9
IG51bGxwdHI7CiAgICAgQ0ZSYW5nZSByYW5nZUFmdGVyID0gQ0ZSYW5nZU1ha2Uoc2FtcGxlc0Jl
Zm9yZVByZXNlbnRhdGlvblRpbWUsIHNhbXBsZUNvdW50IC0gc2FtcGxlc0JlZm9yZVByZXNlbnRh
dGlvblRpbWUpOwotICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5n
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VBZnRlciwgJnJhd1Nh
bXBsZUFmdGVyKSAhPSBub0VycikKKyAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckNvcHlTYW1w
bGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFu
Z2VBZnRlciwgJnJhd1NhbXBsZUFmdGVyKSAhPSBub0VycikKICAgICAgICAgcmV0dXJuIHsgbnVs
bHB0ciwgbnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxl
QWZ0ZXIgPSBhZG9wdENGKHJhd1NhbXBsZUFmdGVyKTsKIApAQCAtMzA1LDEzICszMDgsMTMgQEAg
c3RkOjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1lZGlh
U2FtcGxlQVZGT2JqQzo6ZGl2aWRlKGMKIFJlZjxNZWRpYVNhbXBsZT4gTWVkaWFTYW1wbGVBVkZP
YmpDOjpjcmVhdGVOb25EaXNwbGF5aW5nQ29weSgpIGNvbnN0CiB7CiAgICAgQ01TYW1wbGVCdWZm
ZXJSZWYgbmV3U2FtcGxlQnVmZmVyID0gMDsKLSAgICBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHko
a0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOwor
ICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1f
c2FtcGxlLmdldCgpLCAmbmV3U2FtcGxlQnVmZmVyKTsKICAgICBBU1NFUlQobmV3U2FtcGxlQnVm
ZmVyKTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShuZXdTYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENG
QXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVB
dHRhY2htZW50c0FycmF5KG5ld1NhbXBsZUJ1ZmZlciwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4
IGkgPSAwOyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsKICAg
ICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2Fz
dDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1l
bnRzQXJyYXksIGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMs
IGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBrQ0ZCb29sZWFuVHJ1ZSk7Cisg
ICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0
dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKGFkb3B0Q0YobmV3U2FtcGxlQnVmZmVy
KS5nZXQoKSwgbV9pZCk7CkBAIC0zMjYsNyArMzI5LDcgQEAgUmVmUHRyPEpTQzo6VWludDhDbGFt
cGVkQXJyYXk+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSgpIGNvbnN0CiAg
ICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoY29uZm9ybWVyT3B0aW9ucy5nZXQoKSwga0NWUGl4ZWxC
dWZmZXJQaXhlbEZvcm1hdFR5cGVLZXksIGltYWdlRm9ybWF0TnVtYmVyLmdldCgpKTsKICAgICBQ
aXhlbEJ1ZmZlckNvbmZvcm1lckNWIHBpeGVsQnVmZmVyQ29uZm9ybWVyKGNvbmZvcm1lck9wdGlv
bnMuZ2V0KCkpOwogCi0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxC
dWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsK
KyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7CiAgICAgYXV0
byByZ2JhUGl4ZWxCdWZmZXIgPSBwaXhlbEJ1ZmZlckNvbmZvcm1lci5jb252ZXJ0KHBpeGVsQnVm
ZmVyKTsKICAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3Mocmdi
YVBpeGVsQnVmZmVyLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZlckxvY2tfUmVhZE9ubHkpOwogICAgIEFT
U0VSVChzdGF0dXMgPT0gbm9FcnIpOwpAQCAtMzQzLDEwICszNDYsMTAgQEAgUmVmUHRyPEpTQzo6
VWludDhDbGFtcGVkQXJyYXk+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSgp
IGNvbnN0CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1l
ZGlhdGVseShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCiB7Ci0gICAgQ0ZBcnJheVJl
ZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVm
ZmVyLCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQo
YXR0YWNobWVudHNBcnJheSk7ICsraSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVm
IGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENG
QXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRp
Y3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNw
bGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0
VmFsdWUoYXR0YWNobWVudHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1t
ZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9CiB9CiAKQEAgLTM1Nyw3ICszNjAsNyBA
QCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6c2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkoTWVkaWFT
YW1wbGUmIHNhbXBsZSkKIAogYm9vbCBNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMo
KSBjb25zdAogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVm
ZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CisgICAg
Q0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCksIHRydWUpOwogICAgIGlmICghYXR0YWNo
bWVudHNBcnJheSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTM4NSw3ICszODgsNyBAQCBW
ZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRl
SW50b0hvbW9nZW5lb3VzU2FtcGxlcwogewogICAgIHVzaW5nIFNhbXBsZVZlY3RvciA9IFZlY3Rv
cjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj47CiAKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRz
QXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUu
Z2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxlLmdldCgpLCB0cnVl
KTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpCiAgICAgICAgIHJldHVybiBTYW1wbGVWZWN0
b3I6OmZyb20obWFrZVJlZigqdGhpcykpOwogCkBAIC00MTgsNyArNDIxLDcgQEAgVmVjdG9yPFJl
ZjxNZWRpYVNhbXBsZUFWRk9iakM+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21v
Z2VuZW91c1NhbXBsZXMKICAgICBzYW1wbGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocmFuZ2Vz
LnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiByYW5nZSA6IHJhbmdlcykgewogICAgICAgICBDTVNh
bXBsZUJ1ZmZlclJlZiByYXdTYW1wbGUgPSBudWxscHRyOwotICAgICAgICBpZiAoQ01TYW1wbGVC
dWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1w
bGUuZ2V0KCksIHJhbmdlLCAmcmF3U2FtcGxlKSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQorICAg
ICAgICBpZiAoUEFMOjpDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2UsICZyYXdTYW1wbGUpICE9IG5v
RXJyIHx8ICFyYXdTYW1wbGUpCiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICBzYW1w
bGVzLnVuY2hlY2tlZEFwcGVuZChNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShhZG9wdENGKHJh
d1NhbXBsZSkuZ2V0KCksIG1faWQpKTsKICAgICB9CkBAIC00MzIsMjQgKzQzNSwyNCBAQCBSZXRh
aW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVC
dWZmZXJBbmRTZXRBc0Rpc3BsYQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAg
YXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZl
cihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsK
KyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9y
SW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNj
cmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
YXV0byByZXRhaW5lZEZvcm1hdERlc2NyaXB0aW9uID0gYWRvcHRDRihmb3JtYXREZXNjcmlwdGlv
bik7CiAKICAgICBDTUl0ZW1Db3VudCBpdGVtQ291bnQgPSAwOwotICAgIHN0YXR1cyA9IENNU2Ft
cGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0
ZW1Db3VudCk7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWlu
Z0luZm9BcnJheShzYW1wbGUsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpOwogICAgIGlmIChzdGF0
dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5n
SW5mbz4gdGltaW5nSW5mb0FycmF5OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3Vu
dCk7Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
c2FtcGxlLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOworICAg
IHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2Ft
cGxlLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOwogICAgIGlm
IChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgbmV3U2FtcGxlQnVmZmVyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsIGZvcm1h
dERlc2NyaXB0aW9uLCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlQnVmZmVyKTsK
KyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZm
ZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCB0
aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlQnVmZmVyKTsKICAgICBpZiAoc3RhdHVz
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCAwYjliYjY0ODVmM2U5ZTI1
MzQ1YWFkNGY0ZTQ3MDkyYzQyOWE1Y2M4Li4wMjE5MjE2ZDdjMmQ4OGVmNTc3NTI2ZDg4MjMwYzNl
NTAzZmQ4Y2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtMjU4LDcgKzI1OCw2IEBAIC0gKHZvaWQpYXVkaW9SZW5k
ZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkOihOU05vdGlmaWNhdGlvbiopbm90ZQogQGVuZAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjcHJhZ21hIG1h
cmsgLQogI3ByYWdtYSBtYXJrIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDCkBAIC0yNzcsNyAr
Mjc2LDcgQEAgc3RhdGljIHVpbnQ2NF90IG5leHRNYXBJRCgpCiAKIHN0YXRpYyB2b2lkIGJ1ZmZl
cldhc0NvbnN1bWVkQ2FsbGJhY2soQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsIGNvbnN0IHZvaWQq
IGxpc3RlbmVyLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lLCBjb25zdCB2b2lkKiwgQ0ZU
eXBlUmVmKQogewotICAgIGlmICghQ0ZFcXVhbChrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlm
aWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbm90aWZpY2F0aW9uTmFtZSkpCisgICAgaWYgKCFDRkVx
dWFsKFBBTDo6a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3Vt
ZWQsIG5vdGlmaWNhdGlvbk5hbWUpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIWlzTWFp
blRocmVhZCgpKSB7CkBAIC0zMTYsNyArMzE1LDcgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMK
ICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogCiAgICAgaWYgKCFbUEFMOjpnZXRBVlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6
QHNlbGVjdG9yKHByZXJvbGxEZWNvZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KV0pCi0gICAgICAg
IENNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIoQ01Ob3RpZmljYXRpb25DZW50ZXJHZXRE
ZWZhdWx0TG9jYWxDZW50ZXIoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9tYXBJRCksIGJ1
ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0
aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyLCAwKTsKKyAgICAgICAgUEFMOjpDTU5vdGlmaWNh
dGlvbkNlbnRlckFkZExpc3RlbmVyKFBBTDo6Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0
TG9jYWxDZW50ZXIoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9tYXBJRCksIGJ1ZmZlcldh
c0NvbnN1bWVkQ2FsbGJhY2ssIFBBTDo6a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRp
b25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIsIDApOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgbV9wYXJzZXItPnNldExvZ2dlcihtX2xvZ2dlci5nZXQoKSwgbV9sb2dJZGVudGlm
aWVyKTsKQEAgLTM1NCw3ICszNTMsNyBAQCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKCkKICAgICBjbGVhclRyYWNrcygpOwogCiAgICAgaWYg
KCFbUEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVz
cG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKHByZXJvbGxEZWNvZGVXaXRoQ29tcGxldGlvbkhhbmRs
ZXI6KV0pCi0gICAgICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIoQ01Ob3Rp
ZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29u
c3VtZWRDYWxsYmFjaywga0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVy
Q29uc3VtZWQsIG51bGxwdHIpOworICAgICAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyUmVt
b3ZlTGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRl
cigpLCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBQQUw6OmtDTVNhbXBsZUJ1ZmZl
ckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyKTsKIAogICAgIGlm
IChtX2hhc1Nlc3Npb25TZW1hcGhvcmUpCiAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZS0+
c2lnbmFsKCk7CkBAIC05OTMsNyArOTkyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6bGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIKIAog
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVuZGVyZXJXYXNBdXRvbWF0aWNhbGx5
Rmx1c2hlZChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBjb25zdCBDTVRp
bWUmIHRpbWUpCiB7Ci0gICAgYXV0byBtZWRpYVRpbWUgPSB0b01lZGlhVGltZSh0aW1lKTsKKyAg
ICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUodGltZSk7CiAgICAgRVJST1JfTE9H
KExPR0lERU5USUZJRVIsIG1lZGlhVGltZSk7CiAgICAgQXRvbVN0cmluZyB0cmFja0lkOwogICAg
IGZvciAoYXV0byYgcGFpciA6IG1fYXVkaW9SZW5kZXJlcnMpIHsKQEAgLTExMDEsMTMgKzExMDAs
MTMgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8
TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAogICAgIGF1dG8gbG9nU2l0ZUlkZW50aWZpZXIg
PSBMT0dJREVOVElGSUVSOwogICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInRyYWNr
IElEID0gIiwgdHJhY2tJRCwgIiwgc2FtcGxlID0gIiwgc2FtcGxlLmdldCgpKTsKIAotICAgIENN
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdl
dEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7
CisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIpOwogICAgIEFTU0VSVChmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKCFm
b3JtYXREZXNjcmlwdGlvbikgewogICAgICAgICBFUlJPUl9MT0cobG9nU2l0ZUlkZW50aWZpZXIs
ICJSZWNlaXZlZCBzYW1wbGUgd2l0aCBhIG51bGwgZm9ybWF0RGVzY3JpcHRpb24uIEJhaWxpbmcu
Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgYXV0byBtZWRpYVR5cGUgPSBDTUZvcm1h
dERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBhdXRvIG1l
ZGlhVHlwZSA9IFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShmb3JtYXREZXNj
cmlwdGlvbik7CiAKICAgICBpZiAodHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsK
ICAgICAgICAgLy8gQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgd2lsbCB0aHJvdyBhbiB1bi1k
b2N1bWVudGVkIGV4Y2VwdGlvbiBpZiBwYXNzZWQgYSBzYW1wbGUKQEAgLTExMjAsNyArMTExOSw3
IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1l
ZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gcGxh
eWVyID0gdGhpcy0+cGxheWVyKCk7Ci0gICAgICAgIEZsb2F0U2l6ZSBmb3JtYXRTaXplID0gRmxv
YXRTaXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMo
Zm9ybWF0RGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICAgICAgRmxvYXRTaXplIGZvcm1h
dFNpemUgPSBGbG9hdFNpemUoUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50
YXRpb25EaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7CiAgICAgICAg
IGlmICghbV9jYWNoZWRTaXplIHx8IGZvcm1hdFNpemUgIT0gbV9jYWNoZWRTaXplLnZhbHVlKCkp
IHsKICAgICAgICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInNpemUgY2hhbmdl
ZCB0byAiLCBmb3JtYXRTaXplKTsKICAgICAgICAgICAgIGJvb2wgc2l6ZVdhc051bGwgPSAhbV9j
YWNoZWRTaXplOwpAQCAtMTE0Niw5ICsxMTQ1LDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAog
CiAgICAgICAgICAgICBpZiAoIWhhdmVQcmVyb2xsRGVjb2RlV2l0aENvbXBsZXRpb25IYW5kbGVy
KSB7CiAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQ29weTsKLSAg
ICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgcGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCAmcmF3U2FtcGxlQ29weSk7
CisgICAgICAgICAgICAgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgcGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCAmcmF3U2Ft
cGxlQ29weSk7CiAgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVDb3B5ID0gYWRvcHRDRihyYXdT
YW1wbGVDb3B5KTsKLSAgICAgICAgICAgICAgICBDTVNldEF0dGFjaG1lbnQoc2FtcGxlQ29weS5n
ZXQoKSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZpY2F0aW9uV2hlbkNv
bnN1bWVkLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7IChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1l
ZCA6IEBZRVMgfSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkTm90UHJvcGFnYXRlKTsKKyAgICAg
ICAgICAgICAgICBQQUw6OkNNU2V0QXR0YWNobWVudChzYW1wbGVDb3B5LmdldCgpLCBQQUw6OmtD
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCwg
KF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilQQUw6OmtD
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfUG9zdE5vdGlmaWNhdGlvbldoZW5Db25zdW1lZCA6
IEBZRVMgfSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkTm90UHJvcGFnYXRlKTsKICAgICAgICAg
ICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpzYW1wbGVDb3B5Lmdl
dCgpXTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICAgICAgICAgIHBsYXllci0+
c2V0SGFzQXZhaWxhYmxlVmlkZW9GcmFtZSh0cnVlKTsKQEAgLTEyOTgsMTQgKzEyOTcsMTQgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9y
TW9yZVNhbXBsZXMoY29uc3QgQXRvbVMKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYg
dHJhY2tJRFN0cmluZykgY29uc3QKIHsKICAgICByZXR1cm4gcGFyc2VJbnRlZ2VyQWxsb3dpbmdU
cmFpbGluZ0p1bms8dWludDY0X3Q+KHRyYWNrSURTdHJpbmcpLnZhbHVlX29yKDApID09IG1fZW5h
YmxlZFZpZGVvVHJhY2tJRAotICAgICAgICAmJiBbZ2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBlY3RNaW5p
bXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOildOworICAgICAgICAmJiBb
UEFMOjpnZXRBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9u
ZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclBy
ZXNlbnRhdGlvblRpbWU6KV07CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJh
Y2tJRFN0cmluZywgY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50YXRpb25UaW1lKQogewogICAgIEFT
U0VSVChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKHRyYWNrSURTdHJpbmcp
KTsKICAgICBpZiAoY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0cmFja0lE
U3RyaW5nKSkKLSAgICAgICAgW21fZGlzcGxheUxheWVyIGV4cGVjdE1pbmltdW1VcGNvbWluZ1Nh
bXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6dG9DTVRpbWUocHJlc2VudGF0aW9uVGltZSldOwor
ICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVy
UHJlc2VudGF0aW9uVGltZTpQQUw6OnRvQ01UaW1lKHByZXNlbnRhdGlvblRpbWUpXTsKIH0KIAog
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Y2xlYXJNaW5pbXVtVXBjb21pbmdQcmVz
ZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJj
ZUJ1ZmZlclBhcnNlcldlYk0uY3BwCmluZGV4IGY0NjY0MTI3OGU5ZWQ0YjY4M2E0ODRkNzU3NDdk
ODYzZjZlZDg2NmQuLjNiMTAyYWI4ZWYzOWYzOGRmNDcwNjA1ZmE4ZDdiZmQyNGMwMGVlOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1
ZmZlclBhcnNlcldlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCkBAIC0yNTgsOCArMjU4LDYgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6U3RhdGU+IHsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFM
OwotCiBzdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIHsgcmV0dXJuIExvZ01lZGlh
OyB9CiBzdGF0aWMgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4gIlNvdXJjZUJ1
ZmZlclBhcnNlcldlYk0iOyB9CiAKQEAgLTEwNjYsNyArMTA2NCw3IEBAIHdlYm06OlN0YXR1cyBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpPbkZyYW1lKGNvbnN0IEZyYW1lTWV0YWRhdGEmIG1ldGFk
YXRhLCBSZWFkCiAgICAgICAgIHJldHVybiBTa2lwKHJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwog
ICAgIH0KIAotICAgIHJldHVybiB0cmFja0RhdGEtPmNvbnN1bWVGcmFtZURhdGEoKnJlYWRlciwg
bWV0YWRhdGEsIGJ5dGVzUmVtYWluaW5nLCBDTVRpbWVNYWtlKGJsb2NrLT50aW1lY29kZSArIG1f
Y3VycmVudFRpbWVjb2RlLCBtX3RpbWVzY2FsZSksIGJsb2NrLT5udW1fZnJhbWVzKTsKKyAgICBy
ZXR1cm4gdHJhY2tEYXRhLT5jb25zdW1lRnJhbWVEYXRhKCpyZWFkZXIsIG1ldGFkYXRhLCBieXRl
c1JlbWFpbmluZywgUEFMOjpDTVRpbWVNYWtlKGJsb2NrLT50aW1lY29kZSArIG1fY3VycmVudFRp
bWVjb2RlLCBtX3RpbWVzY2FsZSksIGJsb2NrLT5udW1fZnJhbWVzKTsKIH0KIAogdm9pZCBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpwcm92aWRlTWVkaWFEYXRhKFJldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gc2FtcGxlQnVmZmVyLCB1aW50NjRfdCB0cmFja0lELCBzdGQ6Om9wdGlvbmFsPHNp
emVfdD4gYnl0ZVJhbmdlT2Zmc2V0KQpAQCAtMTA5MCw3ICsxMDg4LDcgQEAgd2VibTo6U3RhdHVz
IFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRh
KHdlYm06OlJlYWQKICAgICBDTUJsb2NrQnVmZmVyUmVmIHJhd0Jsb2NrQnVmZmVyID0gbnVsbHB0
cjsKIAogICAgIGlmICghbV9jdXJyZW50QmxvY2tCdWZmZXIpIHsKLSAgICAgICAgYXV0byBlcnIg
PSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIG1ldGFkYXRhLnNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAs
IG1ldGFkYXRhLnNpemUsIDAsICZyYXdCbG9ja0J1ZmZlcik7CisgICAgICAgIGF1dG8gZXJyID0g
UEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1
bHQsIG51bGxwdHIsIG1ldGFkYXRhLnNpemUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIs
IDAsIG1ldGFkYXRhLnNpemUsIDAsICZyYXdCbG9ja0J1ZmZlcik7CiAgICAgICAgIGlmIChlcnIp
IHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAg
ICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwpAQCAtMTA5OSw3ICsx
MDk3LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJhY2tE
YXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICAgICAgbV9jdXJyZW50QmxvY2tC
dWZmZXIgPSBhZG9wdENGKHJhd0Jsb2NrQnVmZmVyKTsKICAgICAgICAgbV9jdXJyZW50QmxvY2tC
dWZmZXJQb3NpdGlvbiA9IDA7CiAKLSAgICAgICAgZXJyID0gQ01CbG9ja0J1ZmZlckFzc3VyZUJs
b2NrTWVtb3J5KG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKKyAgICAgICAgZXJyID0gUEFM
OjpDTUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0
KCkpOwogICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lG
X1BPU1NJQkxFKCJDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9u
cyBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVh
ZGVyLCBieXRlc1JlbWFpbmluZyk7CkBAIC0xMTEwLDcgKzExMDgsNyBAQCB3ZWJtOjpTdGF0dXMg
U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEo
d2VibTo6UmVhZAogICAgIHdoaWxlIChieXRlc1RvUmVhZCkgewogICAgICAgICBzaXplX3Qgc2Vn
bWVudFNpemVBdFBvc2l0aW9uID0gMDsKICAgICAgICAgdWludDhfdCogYmxvY2tCdWZmZXJEYXRh
ID0gbnVsbHB0cjsKLSAgICAgICAgYXV0byBlcnIgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50
ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRp
b24sICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVy
RGF0YSk7CisgICAgICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50
ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRp
b24sICZzZWdtZW50U2l6ZUF0UG9zaXRpb24sIG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVy
RGF0YSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1Jf
SUZfUE9TU0lCTEUoIkNNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlciBmYWlsZWQgd2l0aCBlcnJv
ciIsIGVycik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFpbmlu
Zyk7CkBAIC0xMTQ0LDcgKzExNDIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZp
ZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogI2lmIEVO
QUJMRShWUDkpCiAgICAgdWludDhfdCogYmxvY2tCdWZmZXJEYXRhID0gbnVsbHB0cjsKICAgICBz
aXplX3Qgc2VnbWVudFNpemVBdFBvc2l0aW9uID0gMDsKLSAgICBhdXRvIGVyciA9IENNQmxvY2tC
dWZmZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgMCwgJnNlZ21l
bnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwgKGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKKyAg
ICBhdXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJs
b2NrQnVmZmVyLmdldCgpLCAwLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hh
cioqKSZibG9ja0J1ZmZlckRhdGEpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xP
R19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyIGZhaWxlZCB3
aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTE4OCw5ICsxMTg2LDkgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxl
QnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAgICAgICAgZHVyYXRpb24gPSB0cmFjay5kZWZhdWx0
X2R1cmF0aW9uLnZhbHVlKCkgKiBwcmVzZW50YXRpb25UaW1lLnRpbWVzY2FsZSAvIDEwMDAwMDAw
MDA7CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVCdWZmZXIgPSBudWxscHRyOwot
ICAgIHNpemVfdCBmcmFtZVNpemUgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX2N1cnJl
bnRCbG9ja0J1ZmZlci5nZXQoKSk7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZyA9IHsg
Q01UaW1lTWFrZShkdXJhdGlvbiwgcHJlc2VudGF0aW9uVGltZS50aW1lc2NhbGUpLCBwcmVzZW50
YXRpb25UaW1lLCBwcmVzZW50YXRpb25UaW1lIH07Ci0gICAgZXJyID0gQ01TYW1wbGVCdWZmZXJD
cmVhdGVSZWFkeShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQo
KSwgdGhpcy0+Zm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgc2FtcGxlQ291bnQsIDEsICZ0aW1p
bmcsIDEsICZmcmFtZVNpemUsICZyYXdTYW1wbGVCdWZmZXIpOworICAgIHNpemVfdCBmcmFtZVNp
emUgPSBQQUw6OkNNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fY3VycmVudEJsb2NrQnVmZmVy
LmdldCgpKTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nID0geyBQQUw6OkNNVGltZU1h
a2UoZHVyYXRpb24sIHByZXNlbnRhdGlvblRpbWUudGltZXNjYWxlKSwgcHJlc2VudGF0aW9uVGlt
ZSwgcHJlc2VudGF0aW9uVGltZSB9OworICAgIGVyciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwg
dGhpcy0+Zm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgc2FtcGxlQ291bnQsIDEsICZ0aW1pbmcs
IDEsICZmcmFtZVNpemUsICZyYXdTYW1wbGVCdWZmZXIpOwogICAgIGlmIChlcnIpIHsKICAgICAg
ICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFk
eSBmYWlsZWQgd2l0aCBlcnJvciIsIGVycik7CiAgICAgICAgIHJldHVybjsKQEAgLTEyMDAsNyAr
MTE5OCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNy
ZWF0ZVNhbXBsZUJ1ZmZlcihjb25zdCBDTVRpbWUmIHByCiAgICAgbV9jdXJyZW50QmxvY2tCdWZm
ZXIgPSBudWxscHRyOwogICAgIG1fY3VycmVudEJsb2NrQnVmZmVyUG9zaXRpb24gPSAwOwogCi0g
ICAgYXV0byBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2ht
ZW50c0FycmF5KHNhbXBsZUJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgYXV0byBhdHRhY2htZW50
c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2Ft
cGxlQnVmZmVyLmdldCgpLCB0cnVlKTsKICAgICBBU1NFUlQoYXR0YWNobWVudHNBcnJheSk7CiAg
ICAgaWYgKCFhdHRhY2htZW50c0FycmF5KSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZf
UE9TU0lCTEUoIkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSByZXR1cm5l
ZCBOVUxMIik7CkBAIC0xMjEwLDcgKzEyMDgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldl
Yk06OlZpZGVvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgog
ICAgIGlmICghaXNLZXkpIHsKICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENG
QXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAg
ICAgICAgIENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nh
c3Q8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2ht
ZW50c0FycmF5LCBpKSk7Ci0gICAgICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2ht
ZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jLCBrQ0ZCb29sZWFuVHJ1ZSk7Cisg
ICAgICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1w
bGVBdHRhY2htZW50S2V5X05vdFN5bmMsIGtDRkJvb2xlYW5UcnVlKTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtMTI5NSwxMiArMTI5MywxMiBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAg
ICAgICAgICAgcmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwogICAgICAgICB9
CiAKLSAgICAgICAgYXV0byBzdHJlYW1EZXNjcmlwdGlvbiA9IENNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24oZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCkpOwor
ICAgICAgICBhdXRvIHN0cmVhbURlc2NyaXB0aW9uID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1hdERlc2NyaXB0aW9uLmdldCgpKTsK
ICAgICAgICAgaWYgKCFzdHJlYW1EZXNjcmlwdGlvbikgewogICAgICAgICAgICAgUEFSU0VSX0xP
R19FUlJPUl9JRl9QT1NTSUJMRSgiQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFz
aWNEZXNjcmlwdGlvbiBmYWlsZWQiKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZyZWFkZXIs
IGJ5dGVzUmVtYWluaW5nKTsKICAgICAgICAgfQotICAgICAgICBtX3BhY2tldER1cmF0aW9uID0g
Q01UaW1lTWFrZShzdHJlYW1EZXNjcmlwdGlvbi0+bUZyYW1lc1BlclBhY2tldCwgc3RyZWFtRGVz
Y3JpcHRpb24tPm1TYW1wbGVSYXRlKTsKKyAgICAgICAgbV9wYWNrZXREdXJhdGlvbiA9IFBBTDo6
Q01UaW1lTWFrZShzdHJlYW1EZXNjcmlwdGlvbi0+bUZyYW1lc1BlclBhY2tldCwgc3RyZWFtRGVz
Y3JpcHRpb24tPm1TYW1wbGVSYXRlKTsKIAogICAgICAgICBzZXRGb3JtYXREZXNjcmlwdGlvbihX
VEZNb3ZlKGZvcm1hdERlc2NyaXB0aW9uKSk7CiAgICAgfSBlbHNlIGlmIChjb2RlYygpID09IENv
ZGVjVHlwZTo6T3B1cykgewpAQCAtMTMyMiw3ICsxMzIwLDcgQEAgd2VibTo6U3RhdHVzIFNvdXJj
ZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06
OlJlYWQKICAgICBtX2N1cnJlbnRQYWNrZXRCeXRlT2Zmc2V0ID0gc3RkOjpudWxsb3B0OwogICAg
IG1fY3VycmVudFBhY2tldFNpemUgPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICBhdXRvIHNhbXBsZUR1
cmF0aW9uID0gQ01UaW1lR2V0U2Vjb25kcyhDTVRpbWVTdWJ0cmFjdChwcmVzZW50YXRpb25UaW1l
LCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUpKSArIENNVGltZUdldFNlY29uZHMobV9wYWNrZXRE
dXJhdGlvbikgKiBzYW1wbGVDb3VudDsKKyAgICBhdXRvIHNhbXBsZUR1cmF0aW9uID0gUEFMOjpD
TVRpbWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lU3VidHJhY3QocHJlc2VudGF0aW9uVGltZSwgbV9z
YW1wbGVQcmVzZW50YXRpb25UaW1lKSkgKyBQQUw6OkNNVGltZUdldFNlY29uZHMobV9wYWNrZXRE
dXJhdGlvbikgKiBzYW1wbGVDb3VudDsKICAgICBpZiAoc2FtcGxlRHVyYXRpb24gPj0gbV9taW5p
bXVtU2FtcGxlRHVyYXRpb24pCiAgICAgICAgIGNyZWF0ZVNhbXBsZUJ1ZmZlcihtZXRhZGF0YS5w
b3NpdGlvbik7CiAKQEAgLTEzMzksMjEgKzEzMzcsMjEgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8
c2kKICAgICBhdXRvIGZ1bGxQYWNrZXRCeXRlc1JlYWQgPSBtX3BhY2tldEJ5dGVzUmVhZCAtIG1f
cGFydGlhbEJ5dGVzUmVhZDsKIAogICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXIgPSBu
dWxscHRyOwotICAgIGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9j
ayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBmdWxsUGFja2V0Qnl0ZXNSZWFkLCBrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBmdWxsUGFja2V0Qnl0ZXNSZWFkLCBrQ01CbG9j
a0J1ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CisgICAgYXV0byBlcnIg
PSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVm
YXVsdCwgbnVsbHB0ciwgZnVsbFBhY2tldEJ5dGVzUmVhZCwga0NGQWxsb2NhdG9yRGVmYXVsdCwg
bnVsbHB0ciwgMCwgZnVsbFBhY2tldEJ5dGVzUmVhZCwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1v
cnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VS
X0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9j
ayBmYWlsZWQgd2l0aCAlZCIsIGVycik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0
byBidWZmZXIgPSBhZG9wdENGKGJsb2NrQnVmZmVyKTsKIAotICAgIGVyciA9IENNQmxvY2tCdWZm
ZXJSZXBsYWNlRGF0YUJ5dGVzKG1fcGFja2V0RGF0YS5kYXRhKCksIGJ1ZmZlci5nZXQoKSwgMCwg
ZnVsbFBhY2tldEJ5dGVzUmVhZCk7CisgICAgZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyUmVwbGFj
ZURhdGFCeXRlcyhtX3BhY2tldERhdGEuZGF0YSgpLCBidWZmZXIuZ2V0KCksIDAsIGZ1bGxQYWNr
ZXRCeXRlc1JlYWQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9J
Rl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMgZmFpbGVkIHdpdGggJWQi
LCBlcnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYg
cmF3U2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBlcnIgPSBDTUF1ZGlvU2FtcGxlQnVmZmVy
Q3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1
ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgbV9wYWNrZXREZXNjcmlwdGlv
bnMuc2l6ZSgpLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUsIG1fcGFja2V0RGVzY3JpcHRpb25z
LmRhdGEoKSwgJnJhd1NhbXBsZUJ1ZmZlcik7CisgICAgZXJyID0gUEFMOjpDTUF1ZGlvU2FtcGxl
QnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24oKS5nZXQoKSwgbV9wYWNrZXREZXNj
cmlwdGlvbnMuc2l6ZSgpLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUsIG1fcGFja2V0RGVzY3Jp
cHRpb25zLmRhdGEoKSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRl
V2l0aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycik7CiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1ZQOVV0aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KaW5kZXggZTlmODZkZWE0MzhlODk1ZTYzZGJkZTA3
YzRkOTVmOWI1YWVmMThjYy4uYWE3MzZjZjE0OWE0NzRiYTI2M2NhYWNkNjY0MmRlNzhmNzc4ODc3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5
VXRpbGl0aWVzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KQEAgLTQ3LDcgKzQ3LDYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIHdlYm07
CiAKIFZQOVRlc3RpbmdPdmVycmlkZXMmIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigp
CkBAIC0zNjIsMTEgKzM2MSwxMSBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRvQ01Db2xv
clByaW1hcmllcyh1aW50OF90IHByaW1hcmllcykKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbkNv
bG9yUHJpbWFyaWVzOjpTTVBURV9TVF8yNDA6CiAgICAgICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZl
ckNvbG9yUHJpbWFyaWVzX1NNUFRFX0M7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25Db2xvclBy
aW1hcmllczo6U01QVEVfUlBfNDMxXzI6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlw
dGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMzsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0
RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDM7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRp
b25Db2xvclByaW1hcmllczo6U01QVEVfRUdfNDMyXzE6Ci0gICAgICAgIHJldHVybiBrQ01Gb3Jt
YXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NTsKKyAgICAgICAgcmV0dXJuIFBBTDo6
a0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjU7CiAgICAgY2FzZSBWUENv
bmZpZ3VyYXRpb25Db2xvclByaW1hcmllczo6QlRfMjAyMF9Ob25jb25zdGFudF9MdW1pbmFuY2U6
Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9S
XzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmlt
YXJpZXNfSVRVX1JfMjAyMDsKICAgICB9CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQyMCwx
OCArNDE5LDE4IEBAIHN0YXRpYyBDRlN0cmluZ1JlZiBjb252ZXJ0VG9DTVRyYW5zZmVyRnVuY3Rp
b24odWludDhfdCBjaGFyYWN0ZXJpc3RpY3MpCiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFu
c2ZlckNoYXJhY3RlcmlzdGljczo6U01QVEVfU1RfMjQwOgogICAgICAgICByZXR1cm4ga0NWSW1h
Z2VCdWZmZXJUcmFuc2ZlckZ1bmN0aW9uX1NNUFRFXzI0ME1fMTk5NTsKICAgICBjYXNlIFZQQ29u
ZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpTTVBURV9TVF8yMDg0OgotICAgICAg
ICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIw
ODRfUFE7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJG
dW5jdGlvbl9TTVBURV9TVF8yMDg0X1BROwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNm
ZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIwMjBfMTBiaXQ6CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRp
b25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6QlRfMjAyMF8xMmJpdDoKLSAgICAgICAgcmV0dXJu
IGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwOworICAgICAg
ICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1Jf
MjAyMDsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpT
TVBURV9TVF80MjhfMToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMTsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xOwogICAgIGNhc2UgVlBD
b25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OkJUXzIxMDBfSExHOgotICAgICAg
ICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIxMDBf
SExHOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVu
Y3Rpb25fSVRVX1JfMjEwMF9ITEc7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNo
YXJhY3RlcmlzdGljczo6SUVDXzYxOTY2XzJfMToKLSAgICAgICAgcmV0dXJuIGNhbkxvYWRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgPyBQQUw6
OmdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0Io
KSA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiBQQUw6OmNhbkxvYWRfQ29yZU1lZGlhX2tDTUZv
cm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCKCkgPyBQQUw6OmdldF9Db3JlTWVk
aWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IoKSA6IG51bGxwdHI7
CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6TGluZWFy
OgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xp
bmVhcjsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX0xpbmVhcjsKICAgICB9CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQ2Nyw3ICs0
NjYsNyBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29udmVydFRvQ01ZQ2JDUk1hdHJpeCh1aW50OF90
IGNvZWZmaWNpZW50cykKIHsKICAgICBzd2l0Y2ggKGNvZWZmaWNpZW50cykgewogICAgIGNhc2Ug
VlBDb25maWd1cmF0aW9uTWF0cml4Q29lZmZpY2llbnRzOjpCVF8yMDIwX05vbmNvbnN0YW50X0x1
bWluYW5jZToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhf
SVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JD
ck1hdHJpeF9JVFVfUl8yMDIwOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uTWF0cml4Q29lZmZp
Y2llbnRzOjpCVF80NzBfN19CRzoKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbk1hdHJpeENvZWZm
aWNpZW50czo6QlRfNjAxXzc6CiAgICAgICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZlcllDYkNyTWF0
cml4X0lUVV9SXzYwMV80OwpAQCAtNTQzLDExICs1NDIsMTEgQEAgc3RhdGljIFJldGFpblB0cjxD
TUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVGb3JtYXREZXNjcmlwdGlvbkZyb21WUENvZGVj
Q29uZmkKICAgICBDRlR5cGVSZWYgY29uZmlndXJhdGlvblZhbHVlc1tdID0geyBkYXRhLmdldCgp
IH07CiAgICAgYXV0byBjb25maWd1cmF0aW9uRGljdCA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbmZpZ3VyYXRpb25LZXlzLCBjb25maWd1cmF0aW9u
VmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGNvbmZpZ3VyYXRpb25LZXlzKSwgJmtDRlR5cGVEaWN0
aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwog
Ci0gICAgVmVjdG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc0tleXMgeyBrQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zIH07CisgICAgVmVj
dG9yPENGVHlwZVJlZj4gZXh0ZW5zaW9uc0tleXMgeyBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9u
RXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMgfTsKICAgICBWZWN0b3I8
Q0ZUeXBlUmVmPiBleHRlbnNpb25zVmFsdWVzID0geyBjb25maWd1cmF0aW9uRGljdC5nZXQoKSB9
OwogCiAgICAgaWYgKHJlY29yZC52aWRlb0Z1bGxSYW5nZUZsYWcgPT0gVlBDb25maWd1cmF0aW9u
UmFuZ2U6OkZ1bGxSYW5nZSkgewotICAgICAgICBleHRlbnNpb25zS2V5cy5hcHBlbmQoa0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8pOworICAgICAgICBleHRlbnNp
b25zS2V5cy5hcHBlbmQoUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFu
Z2VWaWRlbyk7CiAgICAgICAgIGV4dGVuc2lvbnNWYWx1ZXMuYXBwZW5kKGtDRkJvb2xlYW5UcnVl
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQppbmRl
eCBjZWExNTZhZTJmYmUyNWFkYTAwNzY2OGU5MWQ1MGU1NjFjNjQyZTRlLi44ZWVmM2IyZWE2MDRi
ZDE5ODNkNzdkMzhiZjUyMWE4ZDIxZjIwZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uLm1tCkBAIC00Myw5ICs0MywxMiBAQAogI2ltcG9ydCAiQ29yZVZpZGVvU29m
dExpbmsuaCIKICNpbXBvcnQgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCiAKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7Ci0KLVdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOwor
Ly8gRXF1aXZhbGVudCB0byBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVy
KTsKKy8vIE5lZWRlZCBkdWUgdG8gcmVxdWlyZW1lbnQgb2Ygc3BlY2lmeWluZyB0aGUgUEFMIG5h
bWVzcGFjZS4KK3RlbXBsYXRlIDw+CitzdHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1
ZmZlclJlZj4geworICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQgdHlwZUlEKHZvaWQpIHsgcmV0
dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsgfQorfTsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC03Miw3ICs3NSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjpzZXRUaW1lYmFzZShDTVRpbWViYXNlUmVmIHRpbWViYXNlKQogICAgICAgICByZXR1cm47
CiAKICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFzZVJlbW92ZVRpbWVyRGlz
cGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAg
ICAgIFBBTDo6Q01UaW1lYmFzZVJlbW92ZVRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5n
ZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAKICAgICBtX3RpbWViYXNlID0gdGltZWJhc2U7
CiAKQEAgLTg0LDcgKzg3LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNl
dFRpbWViYXNlKENNVGltZWJhc2VSZWYgdGltZWJhc2UpCiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIGRpc3BhdGNoX2FjdGl2YXRlKG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogICAgICAgICB9
Ci0gICAgICAgIENNVGltZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0
KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VBZGRUaW1l
ckRpc3BhdGNoU291cmNlKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwog
ICAgIH0KIH0KIApAQCAtMTA0LDEyICsxMDcsMTIgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246Om1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkKIHZvaWQgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlciwgYm9vbCBkaXNwbGF5aW5nKQogewogICAgIENNSXRlbUNvdW50IGl0ZW1Db3Vu
dCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5m
b0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCisgICAgaWYgKG5v
RXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxl
QnVmZmVyLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
VmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5mb0FycmF5OwogICAgIHRpbWluZ0lu
Zm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJ
bmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIGl0ZW1Db3VudCwg
dGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKIAogICAg
IC8vIENNQnVmZmVyQ2FsbGJhY2tzIGNvbnRhaW5zIDY0LWJpdCBwb2ludGVycyB0aGF0IGFyZW4n
dCA4LWJ5dGUgYWxpZ25lZC4gVG8gc3VwcHJlc3MgdGhlIGxpbmtlcgpAQCAtMTM0LDcgKzEzNyw3
IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwKICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2Yo
Y2FsbGJhY2tzLmNhbGxiYWNrcy52ZXJzaW9uKSA9PSBzaXplb2YodWludDMyX3QpLCAiVmVyc2lv
biBmaWVsZCBtdXN0IGJlIDQgYnl0ZXMiKTsKICAgICAgICAgc3RhdGljX2Fzc2VydChhbGlnbm9m
KEJ1ZmZlckNhbGxiYWNrcykgPT0gNCwgIkNNQnVmZmVyQ2FsbGJhY2tzIHN0cnVjdCBtdXN0IGhh
dmUgNCBieXRlIGFsaWdubWVudCIpOwogCi0gICAgICAgIENNQnVmZmVyUXVldWVDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFja3Ms
ICZvdXRRdWV1ZSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1
ZXVlKTsKICAgICAgICAgbV9wcm9kdWNlclF1ZXVlID0gYWRvcHRDRihvdXRRdWV1ZSk7CiAgICAg
fQogCkBAIC0xNTYsNyArMTU5LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLAogICAgICAgICBz
dGF0aWNfYXNzZXJ0KHNpemVvZihjYWxsYmFja3MuY2FsbGJhY2tzLnZlcnNpb24pID09IHNpemVv
Zih1aW50MzJfdCksICJWZXJzaW9uIGZpZWxkIG11c3QgYmUgNCBieXRlcyIpOwogICAgICAgICBz
dGF0aWNfYXNzZXJ0KGFsaWdub2YoQnVmZmVyQ2FsbGJhY2tzKSA9PSA0LCAiQ01CdWZmZXJDYWxs
YmFja3Mgc3RydWN0IGFsaWdubWVudCBtdXN0IGJlIDQiKTsKIAotICAgICAgICBDTUJ1ZmZlclF1
ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZjYWxsYmFj
a3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOworICAgICAgICBQQUw6OkNNQnVmZmVyUXVldWVDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxs
YmFja3MsICZvdXRRdWV1ZSk7CiAgICAgICAgIG1fY29uc3VtZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0
UXVldWUpOwogICAgIH0KIApAQCAtMTc3LDIwICsxODAsMjAgQEAgYm9vbCBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OnNob3VsZERlY29kZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGUsIGIKICAgICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAg
YXV0byBjdXJyZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpOwot
ICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50
YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKLSAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZm
ZXJHZXREdXJhdGlvbihzYW1wbGUpOwotICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IENN
VGltZUFkZChwcmVzZW50YXRpb25TdGFydFRpbWUsIGR1cmF0aW9uKTsKLSAgICBpZiAoQ01UaW1l
Q29tcGFyZShwcmVzZW50YXRpb25FbmRUaW1lLCBjdXJyZW50VGltZSkgPj0gMCkKKyAgICBhdXRv
IGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKTsK
KyAgICBhdXRvIHByZXNlbnRhdGlvblN0YXJ0VGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQ
cmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKKyAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7CisgICAgYXV0byBwcmVzZW50YXRpb25F
bmRUaW1lID0gUEFMOjpDTVRpbWVBZGQocHJlc2VudGF0aW9uU3RhcnRUaW1lLCBkdXJhdGlvbik7
CisgICAgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShwcmVzZW50YXRpb25FbmRUaW1lLCBjdXJyZW50
VGltZSkgPj0gMCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBDRkFycmF5UmVmIGF0dGFj
aG1lbnRzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwg
ZmFsc2UpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKICAgICBpZiAoIWF0dGFj
aG1lbnRzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGZvciAoQ0ZJbmRleCBpbmRleCA9
IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzKTsgaW5kZXggPCBjb3VudDsg
KytpbmRleCkgewogICAgICAgICBDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QgPSAoQ0ZE
aWN0aW9uYXJ5UmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHMsIGluZGV4KTsK
LSAgICAgICAgQ0ZCb29sZWFuUmVmIGRlcGVuZGVkT24gPSAoQ0ZCb29sZWFuUmVmKUNGRGljdGlv
bmFyeUdldFZhbHVlKGF0dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVw
ZW5kZWRPbkJ5T3RoZXJzKTsKKyAgICAgICAgQ0ZCb29sZWFuUmVmIGRlcGVuZGVkT24gPSAoQ0ZC
b29sZWFuUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNh
bXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMpOwogICAgICAgICBpZiAoZGVw
ZW5kZWRPbiAmJiAhQ0ZCb29sZWFuR2V0VmFsdWUoZGVwZW5kZWRPbikpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjAzLDE0ICsyMDYsMTQgQEAgdm9pZCBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29tcHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKENN
U2FtcGxlQnUKICAgICBpZiAoaXNJbnZhbGlkYXRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsKKyAgICBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOwogICAgIGlmIChtX2RlY29tcHJlc3Np
b25TZXNzaW9uICYmICFWVERlY29tcHJlc3Npb25TZXNzaW9uQ2FuQWNjZXB0Rm9ybWF0RGVzY3Jp
cHRpb24obV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSwgdmlkZW9Gb3JtYXREZXNjcmlwdGlv
bikpIHsKICAgICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNG
cmFtZXMobV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSk7CiAgICAgICAgIG1fZGVjb21wcmVz
c2lvblNlc3Npb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIGlmICghbV9kZWNvbXByZXNzaW9u
U2Vzc2lvbikgewotICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxl
KTsKKyAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3Jp
cHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlKTsK
ICAgICAgICAgYXV0byB2aWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uID0gQHsgKF9fYnJpZGdlIE5T
U3RyaW5nICopa1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2Vs
ZXJhdGVkVmlkZW9EZWNvZGVyOiBAKCBtX2hhcmR3YXJlRGVjb2RlckVuYWJsZWQgKSB9OwogCiAg
ICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlczsKQEAgLTI1Niw3ICsyNTksNyBAQCB2b2lk
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZSwgYm9vbCBkaQogCiAgICAgTW9ub3RvbmljVGltZSBzdGFydFRpbWUgPSBNb25v
dG9uaWNUaW1lOjpub3coKTsKICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWVX
aXRoT3V0cHV0SGFuZGxlcihtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdldCgpLCBzYW1wbGUsIGZs
YWdzLCBudWxscHRyLCBbdGhpcywgZGlzcGxheWluZywgc3RhcnRUaW1lXShPU1N0YXR1cyBzdGF0
dXMsIFZURGVjb2RlSW5mb0ZsYWdzIGluZm9GbGFncywgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1
ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIHByZXNlbnRhdGlvbkR1
cmF0aW9uKSB7Ci0gICAgICAgIGRvdWJsZSBkZWx0YVJhdGlvID0gKE1vbm90b25pY1RpbWU6Om5v
dygpIC0gc3RhcnRUaW1lKS5zZWNvbmRzKCkgLyBDTVRpbWVHZXRTZWNvbmRzKHByZXNlbnRhdGlv
bkR1cmF0aW9uKTsKKyAgICAgICAgZG91YmxlIGRlbHRhUmF0aW8gPSAoTW9ub3RvbmljVGltZTo6
bm93KCkgLSBzdGFydFRpbWUpLnNlY29uZHMoKSAvIFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhwcmVz
ZW50YXRpb25EdXJhdGlvbik7CiAKICAgICAgICAgdXBkYXRlUW9zV2l0aERlY29kZVRpbWVTdGF0
aXN0aWNzKGRlbHRhUmF0aW8pOwogICAgICAgICBoYW5kbGVEZWNvbXByZXNzaW9uT3V0cHV0KGRp
c3BsYXlpbmcsIHN0YXR1cywgaW5mb0ZsYWdzLCBpbWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGlt
ZVN0YW1wLCBwcmVzZW50YXRpb25EdXJhdGlvbik7CkBAIC0yODksNyArMjkyLDcgQEAgdm9pZCBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoYm9v
bCBkaXNwbGF5aW5nLCBPU1MKICAgICAgICAgKyttX2Ryb3BwZWRWaWRlb0ZyYW1lczsKIAogICAg
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiByYXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uID0g
bnVsbHB0cjsKLSAgICBpZiAoc3RhdHVzICE9IG5vRXJyIHx8IG5vRXJyICE9IENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJh
d0ltYWdlQnVmZmVyLCAmcmF3SW1hZ2VCdWZmZXJEZXNjcmlwdGlvbikpIHsKKyAgICBpZiAoc3Rh
dHVzICE9IG5vRXJyIHx8IG5vRXJyICE9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsICZy
YXdJbWFnZUJ1ZmZlckRlc2NyaXB0aW9uKSkgewogICAgICAgICArK21fY29ycnVwdGVkVmlkZW9G
cmFtZXM7CiAgICAgICAgIC0tbV9mcmFtZXNCZWluZ0RlY29kZWQ7CiAgICAgICAgIG1heWJlQmVj
b21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMDQsNyArMzA3LDcgQEAgdm9pZCBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoYm9vbCBk
aXNwbGF5aW5nLCBPU1MKICAgICB9OwogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3SW1hZ2VT
YW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJhd0ltYWdlQnVm
ZmVyLCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdldCgpLCAmaW1hZ2VCdWZmZXJUaW1pbmcsICZy
YXdJbWFnZVNhbXBsZUJ1ZmZlcikpIHsKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJhd0lt
YWdlQnVmZmVyLCBpbWFnZUJ1ZmZlckRlc2NyaXB0aW9uLmdldCgpLCAmaW1hZ2VCdWZmZXJUaW1p
bmcsICZyYXdJbWFnZVNhbXBsZUJ1ZmZlcikpIHsKICAgICAgICAgKyttX2NvcnJ1cHRlZFZpZGVv
RnJhbWVzOwogICAgICAgICAtLW1fZnJhbWVzQmVpbmdEZWNvZGVkOwogICAgICAgICBtYXliZUJl
Y29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzE4LDExICszMjEsMTEgQEAgdm9pZCBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQoYm9v
bCBkaXNwbGF5aW5nLCBPU1MKIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0Rmlyc3RWaWRlb0ZyYW1lKCkKIHsKLSAgICBpZiAoIW1f
cHJvZHVjZXJRdWV1ZSB8fCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKQorICAgIGlmICghbV9wcm9kdWNlclF1ZXVlIHx8IFBBTDo6Q01CdWZmZXJRdWV1ZUlzRW1w
dHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNo
ZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRS
ZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpOwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKUNNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CisgICAgUmV0YWluUHRyPENNU2FtcGxl
QnVmZmVyUmVmPiBjdXJyZW50U2FtcGxlID0gYWRvcHRDRihjaGVja2VkX2NmX2Nhc3Q8Q01TYW1w
bGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNl
clF1ZXVlLmdldCgpKSkpOworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1
ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihjdXJyZW50U2FtcGxlLmdldCgpKTsKICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoaW1hZ2VCdWZm
ZXIuZ2V0KCkpID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQoKSk7CiAKICAgICBtYXliZUJlY29t
ZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpAQCAtMzM1LDI1ICszMzgsMjUgQEAgdm9pZCBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoKQogICAgIGlmICghbV90
aW1lYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB0aW1lID0gUEFMOjp0b01lZGlh
VGltZShDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7CisgICAgYXV0byB0aW1l
ID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0
KCkpKTsKICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9t
YXRpY0RlcXVldWUoJXApIC0gcHVyZ2luZyBhbGwgc2FtcGxlcyBiZWZvcmUgdGltZSglcykiLCB0
aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIE1lZGlhVGltZSBuZXh0
RmlyZVRpbWUgPSBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCk7CiAgICAgYm9vbCBy
ZWxlYXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAgd2hpbGUgKENNU2FtcGxlQnVmZmVy
UmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1
ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewotICAgICAgICBNZWRp
YVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1
ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOwotICAgICAgICBNZWRp
YVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRp
b24oZmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1w
bGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1
ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsKKyAgICAgICAgTWVkaWFUaW1lIHBy
ZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOworICAgICAgICBNZWRpYVRp
bWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJh
dGlvbihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uRW5kVGlt
ZXN0YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVyYXRpb247CiAgICAgICAgIGlmICh0
aW1lID4gcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wKSB7Ci0gICAgICAgICAgICBDRlJlbGVhc2Uo
Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Cisg
ICAgICAgICAgICBDRlJlbGVhc2UoUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbiht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICAgICAgICAgICAgIHJlbGVhc2VkSW1hZ2VCdWZmZXJz
ID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICNpZiAhTE9HX0RJ
U0FCTEVECi0gICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVl
dWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsK
LSAgICAgICAgYXV0byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQ
cmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgIGF1
dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJl
c2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgICAgICBhdXRv
IGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0
aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICBMT0coTWVkaWEs
ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRpY0RlcXVldWUoJXApIC0gcXVl
dWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3Ry
aW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKIApAQCAtMzY1LDcgKzM2OCw3IEBAIHZv
aWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCkKICAgICAg
ICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKIAogICAgIExPRyhNZWRpYSwg
IldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSglcCkgLSBxdWV1
ZSBlbXB0eSIsIHRoaXMpOwotICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlTmV4
dEZpcmVUaW1lKG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCksIFBBTDo6dG9D
TVRpbWUobmV4dEZpcmVUaW1lKSwgMCk7CisgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNw
YXRjaFNvdXJjZU5leHRGaXJlVGltZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdl
dCgpLCBQQUw6OnRvQ01UaW1lKG5leHRGaXJlVGltZSksIDApOwogfQogCiB2b2lkIFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlLCBib29sIGRpc3BsYXlpbmcpCkBAIC0zODMsMTcgKzM4NiwxNyBAQCB2b2lkIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlLAogICAgIGJvb2wgc2hvdWxkTm90aWZ5ID0gdHJ1ZTsKIAogICAgIGlm
IChkaXNwbGF5aW5nICYmIG1fdGltZWJhc2UpIHsKLSAgICAgICAgYXV0byBjdXJyZW50UmF0ZSA9
IENNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOwotICAgICAgICBhdXRvIGN1cnJl
bnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdl
dCgpKSk7Ci0gICAgICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gUEFMOjp0b01lZGlh
VGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKLSAg
ICAgICAgYXV0byBwcmVzZW50YXRpb25FbmRUaW1lID0gcHJlc2VudGF0aW9uU3RhcnRUaW1lICsg
UEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSkpOworICAg
ICAgICBhdXRvIGN1cnJlbnRSYXRlID0gUEFMOjpDTVRpbWViYXNlR2V0UmF0ZShtX3RpbWViYXNl
LmdldCgpKTsKKyAgICAgICAgYXV0byBjdXJyZW50VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFM
OjpDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7CisgICAgICAgIGF1dG8gcHJl
c2VudGF0aW9uU3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOworICAgICAgICBhdXRvIHByZXNlbnRh
dGlvbkVuZFRpbWUgPSBwcmVzZW50YXRpb25TdGFydFRpbWUgKyBQQUw6OnRvTWVkaWFUaW1lKFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpKTsKICAgICAgICAgaWYgKGN1cnJl
bnRUaW1lIDwgcHJlc2VudGF0aW9uU3RhcnRUaW1lIHx8IGN1cnJlbnRUaW1lID49IHByZXNlbnRh
dGlvbkVuZFRpbWUpCiAgICAgICAgICAgICBzaG91bGROb3RpZnkgPSBmYWxzZTsKIAogICAgICAg
ICBpZiAoY3VycmVudFJhdGUgPiAwICYmIHByZXNlbnRhdGlvbkVuZFRpbWUgPCBjdXJyZW50VGlt
ZSkgewogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRv
TWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICAgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlh
VGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUo
UEFMOjpDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNhbXBsZSglcCkgLSBkcm9wcGluZyBmcmFtZSBsYXRl
IGJ5ICVzLCBmcmFtZXNCZWluZ0RlY29kZWQoJWQpLCBwcm9kdWNlclF1ZXVlKCVzIC0+ICVzKSIs
IHRoaXMsIHRvU3RyaW5nKHByZXNlbnRhdGlvbkVuZFRpbWUgLSBjdXJyZW50VGltZSkudXRmOCgp
LmRhdGEoKSwgbV9mcmFtZXNCZWluZ0RlY29kZWQsIHRvU3RyaW5nKGJlZ2luKS51dGY4KCkuZGF0
YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAgICAgICAgICAr
K21fZHJvcHBlZFZpZGVvRnJhbWVzOwpAQCAtNDAxLDE3ICs0MDQsMTcgQEAgdm9pZCBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZSwKICAgICAgICAgfQogICAgIH0KIAotICAgIENNQnVmZmVyUXVldWVFbnF1ZXVl
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxlKTsKKyAgICBQQUw6OkNNQnVmZmVyUXVldWVF
bnF1ZXVlKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSwgc2FtcGxlKTsKIAogI2lmICFMT0dfRElTQUJM
RUQKLSAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmly
c3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgYXV0
byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25U
aW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgYXV0byBwcmVzZW50YXRpb25U
aW1lID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVT
dGFtcChzYW1wbGUpKTsKKyAgICBhdXRvIGJlZ2luID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNN
QnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpKTsKKyAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZlclF1
ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwor
ICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpKTsKICAgICBMT0coTWVkaWEs
ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKCVwKSAt
IHByZXNlbnRhdGlvblRpbWUoJXMpLCBmcmFtZXNCZWluZ0RlY29kZWQoJWQpLCBwcm9kdWNlclF1
ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHByZXNlbnRhdGlvblRpbWUpLnV0ZjgoKS5k
YXRhKCksIG1fZnJhbWVzQmVpbmdEZWNvZGVkLCB0b1N0cmluZyhiZWdpbikudXRmOCgpLmRhdGEo
KSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdGlt
ZWJhc2UpCi0gICAgICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1t
ZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAg
IFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseSht
X3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAgIGlmICghbV9oYXNB
dmFpbGFibGVGcmFtZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CkBAIC00MjYsNyArNDI5LDcg
QEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxl
KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwKIAogYm9vbCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkgY29uc3QKIHsKLSAgICBDTUl0ZW1Db3Vu
dCBwcm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVlID8gQ01CdWZmZXJRdWV1ZUdldEJ1ZmZl
ckNvdW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOworICAgIENNSXRlbUNvdW50IHByb2R1
Y2VyQ291bnQgPSBtX3Byb2R1Y2VyUXVldWUgPyBQQUw6OkNNQnVmZmVyUXVldWVHZXRCdWZmZXJD
b3VudChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpIDogMDsKICAgICByZXR1cm4gbV9mcmFtZXNCZWlu
Z0RlY29kZWQgKyBwcm9kdWNlckNvdW50IDw9IGtIaWdoV2F0ZXJNYXJrOwogfQogCkBAIC00NTIs
NyArNDU1LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnN0b3BSZXF1ZXN0
aW5nTWVkaWFEYXRhKCkKIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlm
eVdoZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjYWxsYmFj
aykKIHsKLSAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNlclF1ZXVlICYmICFDTUJ1ZmZlclF1
ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CisgICAgaWYgKGNhbGxiYWNrICYm
IG1fcHJvZHVjZXJRdWV1ZSAmJiAhUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2Vy
UXVldWUuZ2V0KCkpKSB7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJh
Y2tdIHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0pOwpAQCAtNDYzLDcgKzQ2
Niw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpub3RpZnlXaGVuSGFzQXZh
aWxhYmxlVmlkZW9GcmFtZShzdGQ6OmZ1bmN0aW9uCiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRp
YVRpbWUmIHRpbWUsIEltYWdlRm9yVGltZUZsYWdzIGZsYWdzKQogewotICAgIGlmIChDTUJ1ZmZl
clF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7CisgICAgaWYgKFBBTDo6Q01C
dWZmZXJRdWV1ZUlzRW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkgewogICAgICAgICBMT0co
TWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZSglcCkgLSB0
aW1lKCVzKSwgcXVldWUgZW1wdHkiLCB0aGlzLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgp
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtNDcxLDkgKzQ3NCw5IEBAIFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Omlt
YWdlRm9yVGltZShjb25zdCBNZWRpCiAgICAgYm9vbCBhbGxvd0VhcmxpZXIgPSBmbGFncyA9PSBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OkFsbG93RWFybGllcjsKICAgICBib29sIGFsbG93
TGF0ZXIgPSBmbGFncyA9PSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OkFsbG93TGF0ZXI7
CiAKLSAgICBNZWRpYVRpbWUgc3RhcnRUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTUJ1ZmZlclF1
ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7
CisgICAgTWVkaWFUaW1lIHN0YXJ0VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1ZmZl
clF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgp
KSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIE1lZGlhVGltZSBlbmRUaW1lID0gUEFMOjp0b01l
ZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpOworICAgIE1lZGlhVGltZSBlbmRUaW1lID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7CiAjZW5kaWYKICAgICBpZiAoIWFsbG93TGF0ZXIgJiYgdGltZSA8IHN0
YXJ0VGltZSkgewogICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246OmltYWdlRm9yVGltZSglcCkgLSB0aW1lKCVzKSB0b28gZWFybHkgZm9yIHF1ZXVlKCVzIC0+
ICVzKSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHN0YXJ0
VGltZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kVGltZSkudXRmOCgpLmRhdGEoKSk7CkBA
IC00ODIsMjQgKzQ4NSwyNCBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQogCiAgICAgYm9vbCBy
ZWxlYXNlZEltYWdlQnVmZmVycyA9IGZhbHNlOwogCi0gICAgd2hpbGUgKENNU2FtcGxlQnVmZmVy
UmVmIGZpcnN0U2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1
ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewotICAgICAgICBNZWRp
YVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGltZShDTVNhbXBsZUJ1
ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOwotICAgICAgICBNZWRp
YVRpbWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRp
b24oZmlyc3RTYW1wbGUpKTsKKyAgICB3aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1w
bGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KFBBTDo6Q01CdWZmZXJRdWV1
ZUdldEhlYWQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkpIHsKKyAgICAgICAgTWVkaWFUaW1lIHBy
ZXNlbnRhdGlvblRpbWVzdGFtcCA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOworICAgICAgICBNZWRpYVRp
bWUgZHVyYXRpb24gPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJh
dGlvbihmaXJzdFNhbXBsZSkpOwogICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uRW5kVGlt
ZXN0YW1wID0gcHJlc2VudGF0aW9uVGltZXN0YW1wICsgZHVyYXRpb247CiAgICAgICAgIGlmICgh
YWxsb3dMYXRlciAmJiBwcmVzZW50YXRpb25UaW1lc3RhbXAgPiB0aW1lKQogICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGlmICghYWxsb3dFYXJsaWVyICYmIHByZXNlbnRhdGlv
bkVuZFRpbWVzdGFtcCA8IHRpbWUpIHsKLSAgICAgICAgICAgIENGUmVsZWFzZShDTUJ1ZmZlclF1
ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAg
IENGUmVsZWFzZShQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJR
dWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAgcmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSB0cnVlOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxD
TVNhbXBsZUJ1ZmZlclJlZj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNl
clF1ZXVlLmdldCgpKSkpOwotICAgICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1h
Z2VCdWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KGN1cnJlbnRTYW1wbGUuZ2V0KCkpOworICAgICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZl
clJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpKSk7CisgICAgICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZl
ciA9IChDVlBpeGVsQnVmZmVyUmVmKVBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihj
dXJyZW50U2FtcGxlLmdldCgpKTsKICAgICAgICAgQVNTRVJUKENGR2V0VHlwZUlEKGltYWdlQnVm
ZmVyLmdldCgpKSA9PSBDVlBpeGVsQnVmZmVyR2V0VHlwZUlEKCkpOwogCiAgICAgICAgIGlmICht
X3RpbWViYXNlKQotICAgICAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VU
b0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsK
KyAgICAgICAgICAgIFBBTDo6Q01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJ
bW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAg
ICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwogCkBAIC01MDgsNyArNTEx
LDcgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKICAgICB9CiAKICAgICBpZiAobV90aW1lYmFz
ZSkKLSAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlh
dGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKKyAgICAgICAgUEFM
OjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGlt
ZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwogCiAgICAgaWYgKHJlbGVhc2VkSW1h
Z2VCdWZmZXJzKQogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpOwpA
QCAtNTIwLDkgKzUyMyw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25zdCBNZWRpCiB2b2lkIFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQogewogICAgIG1fZGVjb21wcmVzc2lvblF1ZXVl
LT5kaXNwYXRjaFN5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSBt
dXRhYmxlIHsKLSAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgIFBBTDo6Q01CdWZmZXJRdWV1ZVJlc2V0KHByb3Rl
Y3RlZFRoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQoKSk7CiAgICAgICAgIG1fZW5xdWVpbmdRdWV1
ZS0+ZGlzcGF0Y2hTeW5jKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0g
ewotICAgICAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fY29uc3Vt
ZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgICAgICBQQUw6OkNNQnVmZmVyUXVldWVSZXNldChwcm90
ZWN0ZWRUaGlzLT5tX2NvbnN1bWVyUXVldWUuZ2V0KCkpOwogICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+bV9mcmFtZXNTaW5jZUxhc3RRb3NDaGVjayA9IDA7CiAgICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5tX2N1cnJlbnRRb3NUaWVyID0gMDsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMt
PnJlc2V0UW9zVGllcigpOwpAQCAtNTMzLDI0ICs1MzYsMjQgQEAgdm9pZCBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OmZsdXNoKCkKIENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246OmdldERlY29kZVRpbWUoQ01CdWZmZXJSZWYgYnVmLCB2b2lkKikKIHsKICAgICBDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KGJ1
Zik7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKHNhbXBsZSk7
CisgICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoc2FtcGxl
KTsKIH0KIAogQ01UaW1lIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0
aW9uVGltZShDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsKLSAgICBy
ZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKTsKKyAg
ICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1w
bGUpOwogfQogCiBDTVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXREdXJhdGlv
bihDTUJ1ZmZlclJlZiBidWYsIHZvaWQqKQogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsKLSAgICByZXR1cm4g
Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOworICAgIHJldHVybiBQQUw6OkNNU2Ft
cGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKIH0KIAogQ0ZDb21wYXJpc29uUmVzdWx0IFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZlcnMoQ01CdWZmZXJSZWYgYnVm
MSwgQ01CdWZmZXJSZWYgYnVmMiwgdm9pZCogcmVmY29uKQogewotICAgIHJldHVybiAoQ0ZDb21w
YXJpc29uUmVzdWx0KUNNVGltZUNvbXBhcmUoZ2V0UHJlc2VudGF0aW9uVGltZShidWYxLCByZWZj
b24pLCBnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjIsIHJlZmNvbikpOworICAgIHJldHVybiAoQ0ZD
b21wYXJpc29uUmVzdWx0KVBBTDo6Q01UaW1lQ29tcGFyZShnZXRQcmVzZW50YXRpb25UaW1lKGJ1
ZjEsIHJlZmNvbiksIGdldFByZXNlbnRhdGlvblRpbWUoYnVmMiwgcmVmY29uKSk7CiB9CiAKIHZv
aWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpyZXNldFFvc1RpZXIoKQpAQCAtNjAyLDcg
KzYwNSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRhdGVRb3NXaXRo
RGVjb2RlVGltZVN0YXRpc3RpY3MoZG91YmxlIHJhdGlvCiAgICAgaWYgKCFtX3RpbWViYXNlKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBkb3VibGUgcmF0ZSA9IENNVGltZWJhc2VHZXRSYXRlKG1f
dGltZWJhc2UuZ2V0KCkpOworICAgIGRvdWJsZSByYXRlID0gUEFMOjpDTVRpbWViYXNlR2V0UmF0
ZShtX3RpbWViYXNlLmdldCgpKTsKICAgICBpZiAoIXJhdGUpCiAgICAgICAgIHJhdGUgPSAxOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRy
YW5zZmVyU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQppbmRleCBlM2YwOTI3MDM0OGU3YTVhZWY3MjY2ZWI0
NzJkZGJhZTczYmMzNDA3Li5mMzE2OWFiYzAyNzcwODJmMGNmY2U0NzI2NzllMTEwNzk3YzhjOWY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRy
YW5zZmVyU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KQEAgLTQyLDcgKzQyLDYgQEAKICNpbXBvcnQg
PHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2lu
ZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgaW5saW5lIENGU3RyaW5nUmVmIGN2UGl4ZWxGb3Jt
YXRPcGVuR0xLZXkoKQogewpAQCAtMTM4LDcgKzEzNyw3IEBAIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIoQ1ZQaXhl
bEJ1CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
OjpjcmVhdGVQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0
IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGNvbnZlcnRQaXhlbEJ1ZmZlcihDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUpOworICAgIHJldHVybiBj
b252ZXJ0UGl4ZWxCdWZmZXIoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJj
ZUJ1ZmZlciksIHNpemUpOwogfQogCiBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJl
ZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0xNDYsOSArMTQ1LDkgQEAg
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252
ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBpZiAoIXNvdXJjZUJ1ZmZlcikKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGRlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJH
ZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIpOwotICAgIGF1dG8gc291cmNlU2l6ZSA9
IEZsb2F0U2l6ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNp
b25zKGRlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIo
c291cmNlQnVmZmVyKSk7CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzb3VyY2VCdWZmZXIpOworICAgIGF1dG8gc291cmNlU2l6
ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlv
bkRpbWVuc2lvbnMoZGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKKyAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdl
dEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlcikpOwogICAgIGlmIChzaXplID09IGV4cGFuZGVkSW50
U2l6ZShzb3VyY2VTaXplKSAmJiBtX3BpeGVsRm9ybWF0ID09IENWUGl4ZWxCdWZmZXJHZXRQaXhl
bEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQogICAgICAgICByZXR1cm4gcmV0YWluUHRyKHNvdXJj
ZUJ1ZmZlcik7CiAKQEAgLTE2MCw3ICsxNTksNyBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7
Ci0gICAgYXV0byBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eShzb3VyY2VCdWZmZXIsIDEsIG51bGxwdHIsICZpdGVtQ291bnQpOworICAgIGF1dG8gc3RhdHVz
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZm
ZXIsIDEsIG51bGxwdHIsICZpdGVtQ291bnQpOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252
ZXJ0Q01TYW1wbGVCdWZmZXI6IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5
IGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNjksNyArMTY4LDcgQEAgUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVC
dWZmZXIoQ01TYW0KICAgICBDTVNhbXBsZVRpbWluZ0luZm8qIHRpbWVpbmdJbmZvUHRyID0gbnVs
bHB0cjsKICAgICBpZiAoaXRlbUNvdW50KSB7CiAgICAgICAgIHRpbWluZ0luZm9BcnJheS5ncm93
KGl0ZW1Db3VudCk7Ci0gICAgICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGlt
aW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0
YSgpLCBudWxscHRyKTsKKyAgICAgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShzb3VyY2VCdWZmZXIsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0Fy
cmF5LmRhdGEoKSwgbnVsbHB0cik7CiAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29u
dmVydENNU2FtcGxlQnVmZmVyOiBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJh
eSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE3OCwxNCArMTc3LDE0IEBAIFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENN
U2FtcGxlQnVmZmVyKENNU2FtCiAgICAgfQogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBzdGF0dXMgPSBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBj
b252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBzdGF0
dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVz
Y3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgUkVMRUFTRV9M
T0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyIHJldHVybmVkOiAl
ZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJlc2l6ZWRTYW1wbGVCdWZmZXI7Ci0gICAg
c3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBjb252ZXJ0ZWRQaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRp
b24sIHRpbWVpbmdJbmZvUHRyLCAmcmVzaXplZFNhbXBsZUJ1ZmZlcik7CisgICAgc3RhdHVzID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwg
dGltZWluZ0luZm9QdHIsICZyZXNpemVkU2FtcGxlQnVmZmVyKTsKICAgICBDRlJlbGVhc2UoZm9y
bWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgUkVM
RUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVC
dWZmZXI6IGZhaWxlZCB0byBjcmVhdGUgQ01TYW1wbGVCdWZmZXIgd2l0aCBlcnJvciBjb2RlOiAl
ZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CkBAIC0yMzcsMTYgKzIzNiwxNiBAQCBSZXRh
aW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNN
U2FtcGxlQnVmZmVyKENWUGl4ZQogICAgIH0KIAogICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0
aW9uKTsKKyAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYp
aW5wdXRCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cykg
ewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNv
bnZlcnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRpYWxpemUgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXI7Ci0gICAgYXV0byBjbVRpbWUgPSB0b0NNVGltZShzYW1wbGVUaW1lKTsKLSAg
ICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsga0NNVGltZUludmFsaWQsIGNtVGlt
ZSwgY21UaW1lIH07Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJ
bWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1
ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVy
KTsKKyAgICBhdXRvIGNtVGltZSA9IFBBTDo6dG9DTVRpbWUoc2FtcGxlVGltZSk7CisgICAgQ01T
YW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IFBBTDo6a0NNVGltZUludmFsaWQsIGNtVGlt
ZSwgY21UaW1lIH07CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5
V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlu
cHV0QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVC
dWZmZXIpOwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1
cykgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6
OmNvbnZlcnRQaXhlbEJ1ZmZlcjogZmFpbGVkIHRvIGluaXRpYWxpemUgQ01TYW1wbGVCdWZmZXIg
d2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
QVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlQVZLaXQubW0KaW5kZXggZTBkYWFjODViODczYWQ2YWE5YjRhYjJkYjdhMDA5Y2MzN2Q0
Nzg5NS4uMzJhMDQ0OTZjZmY3ZDg0MTExMjBmY2QxMzNlNmQ2NzQyNTRhODZiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VBVktpdC5tbQpAQCAtNDcsNyArNDcsNiBAQCBTT0ZUTElOS19BVktJVF9GUkFNRVdP
UksoKQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlZhbHVlVGltaW5nKQogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdDo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQoUGxheWJhY2tT
ZXNzaW9uTW9kZWwmIG1vZGVsKQogICAgIDogbV9wbGF5ZXJDb250cm9sbGVyKGFkb3B0TlMoW1tX
ZWJBVlBsYXllckNvbnRyb2xsZXIgYWxsb2NdIGluaXRdKSkKQEAgLTE0NSw3ICsxNDQsNyBAQCB2
b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVrYWJsZVJhbmdlc0NoYW5nZWQo
Y29uc3QgVGltZVJhbmdlcyYgdGltZQogICAgICAgICBkb3VibGUgc3RhcnQgPSB0aW1lUmFuZ2Vz
LnN0YXJ0KGkpLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgICAgICBkb3VibGUgZW5kID0gdGlt
ZVJhbmdlcy5lbmQoaSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICAgICAgQ01UaW1lUmFu
Z2UgcmFuZ2UgPSBDTVRpbWVSYW5nZU1ha2UoQ01UaW1lTWFrZVdpdGhTZWNvbmRzKHN0YXJ0LCAx
MDAwKSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKGVuZC1zdGFydCwgMTAwMCkpOworICAgICAgICBD
TVRpbWVSYW5nZSByYW5nZSA9IFBBTDo6Q01UaW1lUmFuZ2VNYWtlKFBBTDo6Q01UaW1lTWFrZVdp
dGhTZWNvbmRzKHN0YXJ0LCAxMDAwKSwgUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoZW5kLXN0
YXJ0LCAxMDAwKSk7CiAgICAgICAgIFtzZWVrYWJsZVJhbmdlcyBhZGRPYmplY3Q6W05TVmFsdWUg
dmFsdWVXaXRoQ01UaW1lUmFuZ2U6cmFuZ2VdXTsKICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWMubW0KaW5kZXggZWE0MjNjNzE3YzdhZTkxYmQ0ZWU5OTA4N2UwN2M0ZTVjMzdlNGMzZi4uNWRm
MzQ5ZmM2ZmNkZmNmYWVhNzU1NjMyMGYzYWU2ZTY2NzYzNGU5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
Lm1tCkBAIC0zNzMsNyArMzczLDYgQEAgLSAodm9pZClwaXBBY3Rpb25TdG9wOihQSVBWaWV3Q29u
dHJvbGxlciAqKXBpcAogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3Bh
Y2UgUEFMOwogCiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZU1hYyhQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMmIHBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZSkKICAgICA6IG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKHBsYXliYWNrU2Vzc2lv
bkludGVyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRl
eCA4ODQwOTQyOTc5MjZjOGFlYmRlZjZmM2U5NTc4NDJmODM0MjhiODkyLi5kNDE5ZTBlMTkyNTU1
ZDczNjA4NTg1MWY1NGNhMDA0MGQ0NmI2NjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGwuY3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+IE1lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFt
LCBjb25zdCBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CkBAIC04OCwx
MiArODcsMTIgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKIHsKICAgICBpZiAoc2hvdWxkTXV0
ZVZpZGVvKCkpIHsKICAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWUpIHsKLSAgICAgICAgICAgIG1f
YmxhY2tGcmFtZURlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlv
bihzYW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwot
ICAgICAgICAgICAgYXV0byBkaW1lbnNpb25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0
RGltZW5zaW9ucyhtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgICAgICAgICBt
X2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNj
cmlwdGlvbihzYW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZm
ZXIpOworICAgICAgICAgICAgYXV0byBkaW1lbnNpb25zID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpKTsKICAg
ICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoZGltZW5zaW9u
cy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQpOwogCiAgICAgICAgICAgICBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgICAgICAgICAg
YXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZl
cihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlw
dGlvbik7CisgICAgICAgICAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9ibGFja0Zy
YW1lLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgICAgICAgICAgaWYgKHN0YXR1cyAh
PSBub0VycikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSA6OnVuYWJsZSB0
byBjcmVhdGUgYSBibGFjayBmcmFtZSBkZXNjcmlwdGlvbjogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+
KHN0YXR1cykpOwogICAgICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IG51bGxwdHI7CkBAIC0x
MDMsOCArMTAyLDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2Ft
cGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIKICAgICAgICAgfQogCiAgICAg
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IG51bGxwdHI7Ci0gICAgICAgIENNU2FtcGxl
VGltaW5nSW5mbyB0aW1pbmdJbmZvIHsga0NNVGltZUludmFsaWQsIHRvQ01UaW1lKHNhbXBsZUJ1
ZmZlci5wcmVzZW50YXRpb25UaW1lKCkpLCB0b0NNVGltZShzYW1wbGVCdWZmZXIuZGVjb2RlVGlt
ZSgpKSB9OwotICAgICAgICBhdXRvIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlX
aXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpbV9i
bGFja0ZyYW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSwgJnRpbWluZ0lu
Zm8sICZzYW1wbGUpOworICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyB7IFBB
TDo6a0NNVGltZUludmFsaWQsIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVyLnByZXNlbnRhdGlv
blRpbWUoKSksIFBBTDo6dG9DTVRpbWUoc2FtcGxlQnVmZmVyLmRlY29kZVRpbWUoKSkgfTsKKyAg
ICAgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1h
Z2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpbV9ibGFja0Zy
YW1lLmdldCgpLCBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbi5nZXQoKSwgJnRpbWluZ0luZm8sICZz
YW1wbGUpOwogCiAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZSAtIHVuYWJsZSB0byBjcmVhdGUgYSBibGFjayBmcmFtZTog
JWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA1MWEzZTE4YTJjZWRkM2NkNWRhOTNmMzRl
YmYzNzExZTAyMGY4YjYyLi41ZTExMGVjZDdkZTM4NDYxYjQyOTA0YTBlYjQ4ODM0MTg0M2U3NWE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpA
QCAtMzYsMTMgKzM2LDEyIEBACiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKICNpbXBvcnQgPHBh
bC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNv
ZnRMaW5rLmg+CiAKICNkZWZpbmUgTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05EUyAwLjEKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmNyZWF0ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBj
YWxsYmFja09iamVjdCkKIHsKICAgICBhdXRvIGNvbXByZXNzb3IgPSBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPihuZXcgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yKCkpOwpAQCAtNTIsMTUgKzUxLDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y3JlYXRlCiB9CiAK
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
KCkKLSAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZSB7IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikgfQotICAgICwgbV9sb3dXYXRlclRp
bWUgeyBDTVRpbWVNYWtlV2l0aFNlY29uZHMoTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05EUywgMTAw
MCkgfQorICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIikpCisgICAgLCBtX2xvd1dhdGVyVGlt
ZShQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FURVJfVElNRV9JTl9TRUNPTkRTLCAx
MDAwKSkKIHsKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV9jb252ZXJ0ZXIpIHsKLSAgICAgICAgQXVk
aW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZl
cnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7
CiAgICAgfQogfQpAQCAtNjgsMTkgKzY3LDE5IEBAIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcigpCiBib29sIEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsKICAgICBDTUJ1ZmZlclF1ZXVlUmVmIGlucHV0
QnVmZmVyUXVldWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRl
ZFNhbXBsZUJ1ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1dG8gZXJy
b3IgPSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgUEFM
OjpDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZp
bnB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlQ3JlYXRlIGZvciBt
X2lucHV0QnVmZmVyUXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAgICAgbV9pbnB1dEJ1ZmZlclF1ZXVlID0gYWRvcHRDRihpbnB1dEJ1
ZmZlclF1ZXVlKTsKIAogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0QnVmZmVyUXVldWU7Ci0g
ICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMo
KSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJ1
ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6Q01CdWZmZXJRdWV1
ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVl
dWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVDcmVhdGUgZm9yIG1fb3V0cHV0QnVmZmVy
UXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAgICAgbV9vdXRwdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0Yob3V0cHV0QnVmZmVyUXVldWUp
OwotICAgIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1ZmZlclF1ZXVlLmdl
dCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVlVHJpZ2dlcl9XaGVu
RGF0YUJlY29tZXNSZWFkeSwga0NNVGltZVplcm8sIE5VTEwpOworICAgIFBBTDo6Q01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBj
YWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5
LCBQQUw6OmtDTVRpbWVaZXJvLCBOVUxMKTsKIAogICAgIG1faXNFbmNvZGluZyA9IHRydWU7CiAg
ICAgcmV0dXJuIHRydWU7CkBAIC04OSw4ICs4OCw4IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJh
CiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKCkKIHsKICAgICBtX3Nl
cmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10gewotICAgICAgICBwcm9jZXNz
U2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKGtDTVRpbWVJbnZhbGlkKTsKLSAgICAgICAg
YXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCkpOworICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1l
KFBBTDo6a0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZl
clF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxlZCAlZCIsIGVycm9y
KTsKICAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CiAgICAgfSk7CkBAIC0xMTIsNyArMTEx
LDcgQEAgVUludDMyIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZGVmYXVsdE91dHB1dEJp
dFJhdGUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0QKIAogYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKENN
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIEF1ZGlvRm9ybWF0SUQgb3V0
cHV0Rm9ybWF0SUQpCiB7Ci0gICAgY29uc3QgYXV0byAqYXVkaW9Gb3JtYXRMaXN0SXRlbSA9IENN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQoZm9ybWF0RGVz
Y3JpcHRpb24pOworICAgIGNvbnN0IGF1dG8gKmF1ZGlvRm9ybWF0TGlzdEl0ZW0gPSBQQUw6OkNN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQoZm9ybWF0RGVz
Y3JpcHRpb24pOwogICAgIG1fc291cmNlRm9ybWF0ID0gYXVkaW9Gb3JtYXRMaXN0SXRlbS0+bUFT
QkQ7CiAKICAgICBtZW1zZXQoJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIHNpemVvZihBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKQEAgLTEyMSwzNCArMTIwLDM0IEBAIGJvb2wgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXRE
ZXNjcmlwdGlvbihDCiAgICAgbV9kZXN0aW5hdGlvbkZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9
IG1fc291cmNlRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lOwogCiAgICAgVUludDMyIHNpemUgPSBz
aXplb2YobV9kZXN0aW5hdGlvbkZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Zv
cm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1hdFByb3BlcnR5X0Zvcm1hdEluZm8sIDAsIE5VTEws
ICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBB
TDo6QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eShrQXVkaW9Gb3JtYXRQcm9wZXJ0eV9Gb3JtYXRJbmZv
LCAwLCBOVUxMLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1
ZGlvRm9ybWF0R2V0UHJvcGVydHkgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKICAgICBBdWRpb0NvbnZlcnRlclJlZiBjb252ZXJ0ZXI7Ci0g
ICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZt
X2Rlc3RpbmF0aW9uRm9ybWF0LCAmY29udmVydGVyKSkgeworICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpBdWRpb0NvbnZlcnRlck5ldygmbV9zb3VyY2VGb3JtYXQsICZtX2Rlc3RpbmF0aW9uRm9y
bWF0LCAmY29udmVydGVyKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBBdWRpb0NvbnZlcnRlck5ldyBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX2Nv
bnZlcnRlciA9IGNvbnZlcnRlcjsKIAogICAgIGF1dG8gY2xlYW51cEluQ2FzZU9mRXJyb3IgPSBt
YWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZl
cnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsK
ICAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOwogICAgIH0pOwogCiAgICAgc2l6ZV90IGNv
b2tpZVNpemUgPSAwOwotICAgIGNvbnN0IHZvaWQgKmNvb2tpZSA9IENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7Cisg
ICAgY29uc3Qgdm9pZCAqY29va2llID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRN
YWdpY0Nvb2tpZShmb3JtYXREZXNjcmlwdGlvbiwgJmNvb2tpZVNpemUpOwogICAgIGlmIChjb29r
aWVTaXplKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJTZXRQcm9w
ZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2ll
LCAoVUludDMyKWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3Ig
PSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZl
cnRlckRlY29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgKFVJbnQzMiljb29raWVTaXplLCBjb29raWUp
KSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvbnZlcnRlckRlY29tcHJlc3Npb25N
YWdpY0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIHNpemUgPSBzaXplb2YobV9zb3VyY2VGb3Jt
YXQpOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZz
aXplLCAmbV9zb3VyY2VGb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJ
bnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9u
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpA
QCAtMTU5LDcgKzE1OCw3IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0
QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAgfQogCiAgICAg
c2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1
cnJlbnRPdXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0
KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRp
b24sICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1hdCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBr
QXVkaW9Db252ZXJ0ZXJDdXJyZW50T3V0cHV0U3RyZWFtRGVzY3JpcHRpb24gZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNjcsMTQgKzE2
NiwxNCBAQCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVy
dGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgIGlmIChtX2Rlc3RpbmF0aW9uRm9y
bWF0Lm1Gb3JtYXRJRCA9PSBrQXVkaW9Gb3JtYXRNUEVHNEFBQykgewogICAgICAgICBib29sIHNo
b3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlID0gdHJ1ZTsKICAgICAgICAgaWYgKG1fb3V0cHV0
Qml0UmF0ZSkgewotICAgICAgICAgICAgYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJv
cGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigq
bV9vdXRwdXRCaXRSYXRlKSwgJm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKKyAgICAgICAgICAg
IGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIs
IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemVvZigqbV9vdXRwdXRCaXRSYXRlKSwg
Jm1fb3V0cHV0Qml0UmF0ZS52YWx1ZSgpKTsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0
aW5nIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgICAgICBzaG91bGRTZXREZWZhdWx0T3V0cHV0Qml0UmF0ZSA9ICEhZXJyb3I7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZFNldERlZmF1bHRPdXRwdXRCaXRSYXRlKSB7CiAg
ICAgICAgICAgICBhdXRvIG91dHB1dEJpdFJhdGUgPSBkZWZhdWx0T3V0cHV0Qml0UmF0ZShtX2Rl
c3RpbmF0aW9uRm9ybWF0KTsKICAgICAgICAgICAgIHNpemUgPSBzaXplb2Yob3V0cHV0Qml0UmF0
ZSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVy
dHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemUsICZvdXRw
dXRCaXRSYXRlKSkKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZl
cnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRl
LCBzaXplLCAmb3V0cHV0Qml0UmF0ZSkpCiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBkZWZh
dWx0IGtBdWRpb0NvbnZlcnRlckVuY29kZUJpdFJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIH0KICAgICB9CkBAIC0xODMsNyArMTgyLDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0
aW9uKEMKICAgICAgICAgLy8gSWYgdGhlIGRlc3RpbmF0aW9uIGZvcm1hdCBpcyBWQlIsIHdlIG5l
ZWQgdG8gZ2V0IG1heCBzaXplIHBlciBwYWNrZXQgZnJvbSB0aGUgY29udmVydGVyLgogICAgICAg
ICBzaXplID0gc2l6ZW9mKG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CiAKLSAgICAgICAgaWYgKGF1
dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9D
b252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRwdXRQYWNrZXRTaXplLCAmc2l6ZSwgJm1fbWF4T3V0
cHV0UGFja2V0U2l6ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29u
dmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5TWF4
aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNrZXRTaXplKSkgewog
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1heGltdW1PdXRw
dXRQYWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9CkBAIC0yMTEsNiArMjEwLDggQEAgc2l6ZV90IEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Y29tcHV0ZUJ1ZmZlclNpemVGb3JBdWRpb0Zvcm1hdChBdWRpb1N0
cmVhbUIKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmF0dGFjaFByaW1pbmdU
cmltc0lmTmVlZGVkKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKKyAgICB1c2luZyBuYW1l
c3BhY2UgUEFMOworCiAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1fcmVtYWluaW5nUHJpbWVE
dXJhdGlvbikpIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8gcHJpbWVJbmZvIHsg
MCwgMCB9OwogICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmltZUluZm8pOwpAQCAtMjM2
LDI1ICsyMzcsMjUgQEAgUmV0YWluUHRyPE5TTnVtYmVyPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KCkKIHsKICAgICBVSW50MzIgZGVsYXlT
aXplID0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB1aW50MzJfdCBvcmlnaW5hbERlbGF5TW9kZSA9
IDA7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29u
dmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCAmZGVsYXlTaXplLCAmb3JpZ2lu
YWxEZWxheU1vZGUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVy
R2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsICZk
ZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVk
aW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAg
ICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIHVpbnQzMl90IG9wdGltYWxEZWxheU1vZGUgPSBr
QXVkaW9Db2RlY0RlbGF5TW9kZV9PcHRpbWFsOwotICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9D
b252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5
TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29k
ZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3B0aW1hbERlbGF5TW9kZSkpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIFVJbnQzMiBw
cmltZVNpemUgPSBzaXplb2YoQXVkaW9Db2RlY1ByaW1lSW5mbyk7CiAgICAgQXVkaW9Db2RlY1By
aW1lSW5mbyBwcmltZUluZm8geyAwLCAwIH07Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Nv
bnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5UHJpbWVJ
bmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFM
OjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3Bl
cnR5UHJpbWVJbmZvLCAmcHJpbWVTaXplLCAmcHJpbWVJbmZvKSkgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0
aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRp
b0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVs
YXlNb2RlLCBkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlv
Q29kZWNQcm9wZXJ0eURlbGF5TW9kZSwgZGVsYXlTaXplLCAmb3JpZ2luYWxEZWxheU1vZGUpKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eURlbGF5TW9kZSBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CkBAIC0yNjcsMTgg
KzI2OCwxOCBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgogICAgIGlmICghbV9kZXN0aW5hdGlv
bkZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIFVJbnQzMiBjb29raWVTaXplID0gMDsKIAot
ICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8obV9jb252
ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXpl
LCBOVUxMKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9w
ZXJ0eUluZm8obV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29r
aWUsICZjb29raWVTaXplLCBOVUxMKTsKICAgICAgICAgaWYgKChlcnJvciA9PSBub0VycikgJiYg
ISFjb29raWVTaXplKSB7CiAgICAgICAgICAgICBjb29raWUucmVzaXplKGNvb2tpZVNpemUpOwog
Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29r
aWVTaXplLCBjb29raWUuZGF0YSgpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQ
QUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRl
ckNvbXByZXNzaW9uTWFnaWNDb29raWUsICZjb29raWVTaXplLCBjb29raWUuZGF0YSgpKSkgewog
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdp
Y0Nvb2tpZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
bmlsOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uOwotICAgICAgICBpZiAoYXV0byBl
cnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwgTlVMTCwgY29va2llU2l6ZSwgY29va2llLmRhdGEo
KSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pKSB7CisgICAgICAgIGlmIChh
dXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsIDAsIE5VTEwsIGNvb2tpZVNpemUsIGNv
b2tpZS5kYXRhKCksIE5VTEwsICZkZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uKSkgewogICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgfQpAQCAtMjkwLDI2
ICsyOTEsMjYgQEAgQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpzYW1wbGVCdWZmZXJXaXRoTnVtUGFja2V0cyhVSW50MzIKICAgICBzaXplX3QgZGF0YVNpemUg
PSBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplOwogCiAgICAgQ01CbG9j
a0J1ZmZlclJlZiBibG9ja0J1ZmZlcjsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZGF0YVNp
emUsIGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIDAsIGRhdGFTaXplLCBrQ01CbG9ja0J1ZmZl
ckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcikpIHsKKyAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgMCwgZGF0
YVNpemUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKSkg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KICAgICBhdXRvIGJ1
ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXpl
KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFC
eXRlcyhkYXRhLCBidWZmZXIuZ2V0KCksIDAsIGRhdGFTaXplKSkgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJs
b2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgcmV0dXJuIG5pbDsKICAgICB9CiAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZm
ZXI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0
RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgdHJ1ZSwgTlVM
TCwgTlVMTCwgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCBudW1QYWNrZXRz
LCBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1fZGVzdGluYXRpb25QYWNr
ZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0g
UEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBidWZmZXIuZ2V0KCksIHRydWUsIE5VTEwsIE5VTEwsIG1fZGVzdGlu
YXRpb25Gb3JtYXREZXNjcmlwdGlvbi5nZXQoKSwgbnVtUGFja2V0cywgbV9jdXJyZW50TmF0aXZl
UHJlc2VudGF0aW9uVGltZVN0YW1wLCBtX2Rlc3RpbmF0aW9uUGFja2V0RGVzY3JpcHRpb25zLmRh
dGEoKSwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVk
aW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIGlmIChbbV9nZHJD
b3VudE51bSBpbnRWYWx1ZV0pCi0gICAgICAgIENNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIs
IGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29kZXJSZWZyZXNoLCAoX19i
cmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0uZ2V0KCksIGtDTUF0dGFjaG1lbnRNb2RlX1No
b3VsZFByb3BhZ2F0ZSk7CisgICAgICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZl
ciwgUEFMOjprQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0dyYWR1YWxEZWNvZGVyUmVmcmVz
aCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVtLmdldCgpLCBrQ01BdHRhY2htZW50
TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogCiAgICAgcmV0dXJuIHNhbXBsZUJ1ZmZlcjsKIH0KQEAg
LTM0MSwyNCArMzQyLDI0IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMioKICAgICAgICAgICAgICAg
ICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVl
dWUuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5
KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
Ci0gICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1
ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4o
bV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJs
b2NrQnVmZmVyID0gQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQo
KSk7CisgICAgICAgICAgICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBs
ZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFu
ZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgICAgICAgICAgICAgIG1f
c2FtcGxlQmxvY2tCdWZmZXIgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihzYW1w
bGVCdWZmZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmICghbV9zYW1wbGVCbG9ja0J1ZmZl
cikgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
IkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIg
ZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0g
MDsKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
ciA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJH
ZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOworICAgICAgICAgICAgICAg
IG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0
aChtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRP
ZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBzaXplX3QgbnVt
Qnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9z
YW1wbGVCbG9ja0J1ZmZlclNpemUgLSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVy
KSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBs
ZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAobV9zb3VyY2VCdWZm
ZXIuZGF0YSgpICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9z
YW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
ciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNlQnVmZmVyLmRhdGEoKSAr
IGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CiAgICAgICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgICAgICAgICAgfQpAQCAtMzkz
LDI4ICszOTQsMjggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92
aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKgogICAgICAgICAgICAgICAgIG1f
c2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
aWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCisgICAg
ICAgICAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVmZmVyUXVldWUu
Z2V0KCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBhdXRvIHNhbXBs
ZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihD
TUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkp
OwotICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0Q0YoKENNQmxvY2tCdWZm
ZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1
ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAgICAgICAgIGF1dG8gc2FtcGxlQnVm
ZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6
Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkp
KTsKKyAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBhZG9wdENGKChDTUJsb2NrQnVm
ZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKICAgICAgICAgICAgIGlmICghbV9z
YW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxlQnVmZmVyR2V0
RGF0YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVy
U2l6ZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1
ZmZlciA9IDA7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVu
Z3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKKyAgICAgICAgICAgIG1fc2FtcGxl
QmxvY2tCdWZmZXJTaXplID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChtX3NhbXBs
ZUJsb2NrQnVmZmVyLmdldCgpKSAvIDI7CiAgICAgICAgICAgICBtX2N1cnJlbnRPZmZzZXRJblNh
bXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX3NhbXBsZUJs
b2NrQnVmZmVyKSB7CiAgICAgICAgICAgICBzaXplX3QgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxl
QmJ1ZiA9IHN0ZDo6bWluKG51bUJ5dGVzVG9Db3B5LCAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUg
LSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyKSk7Ci0gICAgICAgICAgICBpZiAo
YXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZm
ZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9D
b3B5RnJvbVNhbXBsZUJidWYsIChmaXJzdENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VC
dWZmZXIpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxvY2tCdWZm
ZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNl
dEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWYsIChmaXJz
dENoYW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgewogICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZpcnN0IGNoYW5uZWwgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ29weURhdGFC
eXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJs
b2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5dGVzVG9Db3B5RnJvbVNh
bXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ29weURh
dGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZzZXRJblNhbXBs
ZUJsb2NrQnVmZmVyICsgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUsIG51bUJ5dGVzVG9Db3B5RnJv
bVNhbXBsZUJidWYsIChzZWNvbmRDaGFubmVsICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVy
KSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRlcyBzZWNv
bmQgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gZXJyb3I7CiAgICAgICAgICAgICB9CkBAIC00MzgsNiArNDM5LDggQEAgT1NTdGF0dXMgQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tl
dHMoVUludDMyKgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1Nh
bXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbG93V2F0ZXJUaW1lKQogeworICAg
IHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFSRV9JTkxJTkUKKwogICAg
IGlmICghbV9jb252ZXJ0ZXIpIHsKICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1f
aW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01MDEsNyAr
NTA0LDcgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVC
dWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGwKIAogdm9pZCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVy
KQogewotICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX2lucHV0QnVmZmVy
UXVldWUuZ2V0KCksIGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1
ZUVucXVldWUobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwogICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIAogICAg
IHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUobV9sb3dXYXRlclRpbWUpOwpA
QCAtNTIwLDEyICs1MjMsMTIgQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFk
ZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVy
UmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkK
IHsKLSAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1
ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVy
biAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1
ZUdldEhlYWQobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRT
YW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZiko
Y29uc3RfY2FzdDx2b2lkKj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRC
dWZmZXJRdWV1ZS5nZXQoKSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVy
UmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWlu
KG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmNWY4NTU4NzFmYzcwODU2
NmY3ZWY4YjlhMTYxZTI3YjhlNWQ4OWVkLi5iNzU1OGQyODBjMmVmNzk2MDY4Y2FjMGNjOTZiNTAz
M2RjMzcwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaApAQCAtMTI3LDggKzEyNyw4IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbjsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBtX3ZpZGVvQ29tcHJl
c3NvcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBtX3ZpZGVvQXNzZXRXcml0
ZXJJbnB1dDsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lIHsga0NNVGlt
ZUludmFsaWQgfTsKLSAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUgeyBrQ01UaW1l
SW52YWxpZCB9OworICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWU7CisgICAg
Q01UaW1lIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lOwogICAgIGJvb2wgbV9oYXNFbmNvZGVkVmlk
ZW9TYW1wbGVzIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0cjxXZWJBVkFzc2V0V3JpdGVyRGVs
ZWdhdGU+IG1fd3JpdGVyRGVsZWdhdGU7CkBAIC0xMzksOSArMTM5LDkgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fc2hvdWxkU3RvcEFmdGVyRmx1c2hpbmdTYW1wbGVzIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fZmlyc3RWaWRlb0ZyYW1lIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPENHQWZm
aW5lVHJhbnNmb3JtPiBtX3ZpZGVvVHJhbnNmb3JtOwotICAgIENNVGltZSBtX3Jlc3VtZWRWaWRl
b1RpbWUgeyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBtX2N1cnJlbnRWaWRlb0R1cmF0aW9u
IHsga0NNVGltZVplcm8gfTsKLSAgICBDTVRpbWUgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lIHsg
a0NNVGltZVplcm8gfTsKKyAgICBDTVRpbWUgbV9yZXN1bWVkVmlkZW9UaW1lOworICAgIENNVGlt
ZSBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uOworICAgIENNVGltZSBtX2N1cnJlbnRBdWRpb1NhbXBs
ZVRpbWU7CiAgICAgZG91YmxlIG1fdGltZUNvZGUgeyAwIH07CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggNjNiZDY1
OThkMDJhNWM3MDA2ZGE5MjlmYzk0ZjFmNWY2NmE3MTZkYS4uNmFkMjBiZThjYjU3OTIzYTBlNzg0
MmUzNzAxZDMzYTZhYTAzYWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtOTMsOCArOTMsNiBAQCBAZW5kCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogUmVmUHRyPE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGJv
b2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0
aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvIHdyaXRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIGhhc1ZpZGVvKSk7CkBAIC0xMjIsNiArMTIw
LDExIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXByZXNzZWRBdWRpb091
dHB1dEJ1ZmZlckNhbGxiYWNrKHZvaWQgKm1lZGlhCiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRl
bykKICAgICA6IG1faGFzQXVkaW8oaGFzQXVkaW8pCiAgICAgLCBtX2hhc1ZpZGVvKGhhc1ZpZGVv
KQorICAgICwgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lKFBBTDo6a0NNVGltZUludmFsaWQp
CisgICAgLCBtX2xhc3RWaWRlb0RlY29kaW5nVGltZShQQUw6OmtDTVRpbWVJbnZhbGlkKQorICAg
ICwgbV9yZXN1bWVkVmlkZW9UaW1lKFBBTDo6a0NNVGltZVplcm8pCisgICAgLCBtX2N1cnJlbnRW
aWRlb0R1cmF0aW9uKFBBTDo6a0NNVGltZVplcm8pCisgICAgLCBtX2N1cnJlbnRBdWRpb1NhbXBs
ZVRpbWUoUEFMOjprQ01UaW1lWmVybykKIHsKIH0KIApAQCAtMTc5LDcgKzE4Miw3IEBAIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkVmlkZW9TYW1w
bGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNWaWRlbyk7CiAgICAgaWYgKCFtX3ZpZGVv
Rm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0g
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVvQ29tcHJlc3Nvci0+Z2V0
T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24g
PSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV92aWRlb0NvbXByZXNz
b3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKIAogICAgICAgICBpZiAobV9oYXNBdWRpbyAm
JiAhbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTk2
LDcgKzE5OSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdD
b21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCkKIHsKICAgICBBU1NFUlQobV9oYXNBdWRpbyk7
CiAgICAgaWYgKCFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pIHsKLSAgICAgICAgbV9hdWRpb0Zv
cm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX2F1
ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBtX2F1ZGlv
Rm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRp
b24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKICAgICAgICAg
aWYgKG1faGFzVmlkZW8gJiYgIW1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbikKICAgICAgICAgICAg
IHJldHVybjsKIApAQCAtMjM4LDcgKzI0MSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
W21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTprQ01UaW1lWmVyb107Cisg
ICAgW21fd3JpdGVyLmdldCgpIHN0YXJ0U2Vzc2lvbkF0U291cmNlVGltZTpQQUw6OmtDTVRpbWVa
ZXJvXTsKIAogICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7CiAKQEAgLTMwMCw4
ICszMDMsOCBAQCBib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRDb21wcmVz
c2VkVmlkZW9TYW1wbGVCdWZmZXJJZlBvc3NpYmxlKCkKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZl
clJlZiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dCBpc1Jl
YWR5Rm9yTW9yZU1lZGlhRGF0YV0pOwotICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSA9
IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7Ci0gICAgbV9s
YXN0VmlkZW9EZWNvZGluZ1RpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChi
dWZmZXIpOworICAgIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSA9IFBBTDo6Q01TYW1wbGVC
dWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyKTsKKyAgICBtX2xhc3RWaWRlb0Rl
Y29kaW5nVGltZSA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAoYnVmZmVy
KTsKICAgICBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgPSB0cnVlOwogCiAgICAgW21fdmlkZW9B
c3NldFdyaXRlcklucHV0LmdldCgpIGFwcGVuZFNhbXBsZUJ1ZmZlcjpidWZmZXJdOwpAQCAtMzE0
LDE3ICszMTcsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29t
cHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kRW5kc1By
ZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIoQVZBc3NldFdyaXRlcklucHV0ICphc3NldFdyaXRl
cklucHV0LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUgZGVjb2RpbmdUaW1l
U3RhbXApCiB7Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IGtDTVRpbWVJ
bnZhbGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0YW1wfTsKKyAgICBD
TVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjprQ01UaW1lSW52YWxpZCwgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBkZWNvZGluZ1RpbWVTdGFtcH07CiAKICAgICBDTVNhbXBsZUJ1
ZmZlclJlZiBidWZmZXIgPSBOVUxMOwotICAgIGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCB0cnVlLCBOVUxMLCBOVUxMLCBOVUxMLCAw
LCAxLCAmdGltaW5nSW5mbywgMCwgTlVMTCwgJmJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgdHJ1ZSwg
TlVMTCwgTlVMTCwgTlVMTCwgMCwgMSwgJnRpbWluZ0luZm8sIDAsIE5VTEwsICZidWZmZXIpOwog
ICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
Ik1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGFwcGVuZEVuZHNQcmV2aW91c1NhbXBsZUR1cmF0
aW9uTWFya2VyIGZhaWxlZCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZSB3aXRoICVkIiwgZXJyb3IpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRihi
dWZmZXIpOwogCi0gICAgQ01TZXRBdHRhY2htZW50KHNhbXBsZUJ1ZmZlci5nZXQoKSwga0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbiwga0NGQm9v
bGVhblRydWUsIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CisgICAgUEFMOjpD
TVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLmdldCgpLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0
dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtDRkJvb2xlYW5UcnVlLCBr
Q01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOwogICAgIGlmICghW2Fzc2V0V3JpdGVy
SW5wdXQgYXBwZW5kU2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZlci5nZXQoKV0pCiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIg
YXBwZW5kU2FtcGxlQnVmZmVyIHRvIHdyaXRlciBpbnB1dCBmYWlsZWQiKTsKIH0KQEAgLTM4Miwx
OCArMzg1LDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZsdXNoQ29tcHJl
c3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYmCiBzdGF0aWMgaW5saW5lIFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0
YW1wKENNU2FtcGxlQnVmZmVyUmVmIG9yaWdpbmFsQnVmZmVyLCBDTVRpbWUgc3RhcnRUaW1lKQog
ewogICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAmY291bnQpOworICAgIFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkob3JpZ2luYWxCdWZmZXIs
IDAsIG5pbCwgJmNvdW50KTsKIAogICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWVJ
bmZvKGNvdW50KTsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShv
cmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50KTsKKyAgICBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCBj
b3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOwogCiAgICAgZm9yIChhdXRvIGkgPSAwOyBp
IDwgY291bnQ7IGkrKykgewotICAgICAgICB0aW1lSW5mb1tpXS5kZWNvZGVUaW1lU3RhbXAgPSBr
Q01UaW1lSW52YWxpZDsKKyAgICAgICAgdGltZUluZm9baV0uZGVjb2RlVGltZVN0YW1wID0gUEFM
OjprQ01UaW1lSW52YWxpZDsKICAgICAgICAgdGltZUluZm9baV0ucHJlc2VudGF0aW9uVGltZVN0
YW1wID0gc3RhcnRUaW1lOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld0J1ZmZl
ciA9IG51bGxwdHI7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNv
cHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3Vu
dCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVyKSkgeworICAgIGlmIChhdXRvIGVycm9yID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmbmV3QnVmZmVy
KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAg
LTQwNCw3ICs0MDcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRW
aWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAgIGlmICghbV9maXJz
dFZpZGVvRnJhbWUpIHsKICAgICAgICAgbV9maXJzdFZpZGVvRnJhbWUgPSB0cnVlOwotICAgICAg
ICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVD
bG9jaygpKTsKKyAgICAgICAgbV9yZXN1bWVkVmlkZW9UaW1lID0gUEFMOjpDTUNsb2NrR2V0VGlt
ZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogICAgICAgICBpZiAoc2FtcGxlLnZp
ZGVvUm90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB8fCBzYW1w
bGUudmlkZW9NaXJyb3JlZCgpKSB7CiAgICAgICAgICAgICBtX3ZpZGVvVHJhbnNmb3JtID0gQ0dB
ZmZpbmVUcmFuc2Zvcm1NYWtlUm90YXRpb24oc3RhdGljX2Nhc3Q8aW50PihzYW1wbGUudmlkZW9S
b3RhdGlvbigpKSAqIE1fUEkgLyAxODApOwogICAgICAgICAgICAgaWYgKHNhbXBsZS52aWRlb01p
cnJvcmVkKCkpCkBAIC00MTIsOCArNDE1LDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGF1dG8gc2FtcGxlVGltZSA9IENNVGltZVN1YnRyYWN0KENNQ2xv
Y2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUp
OwotICAgIHNhbXBsZVRpbWUgPSBDTVRpbWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9E
dXJhdGlvbik7CisgICAgYXV0byBzYW1wbGVUaW1lID0gUEFMOjpDTVRpbWVTdWJ0cmFjdChQQUw6
OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1l
ZFZpZGVvVGltZSk7CisgICAgc2FtcGxlVGltZSA9IFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUs
IG1fY3VycmVudFZpZGVvRHVyYXRpb24pOwogICAgIGlmIChhdXRvIGJ1ZmZlcldpdGhDdXJyZW50
VGltZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcChzYW1wbGUucGxhdGZv
cm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHNhbXBsZVRpbWUpKQogICAgICAgICBt
X3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldpdGhDdXJyZW50VGltZS5n
ZXQoKSk7CiB9CkBAIC00MjIsNyArNDI1LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEKIHsK
ICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRh
LCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1wbGVDb3VudCkpCiAg
ICAgICAgIG1fYXVkaW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoc2FtcGxlQnVmZmVyLmdl
dCgpKTsKLSAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBDTVRpbWVBZGQobV9jdXJyZW50
QXVkaW9TYW1wbGVUaW1lLCB0b0NNVGltZShNZWRpYVRpbWUoc2FtcGxlQ291bnQsIGRlc2NyaXB0
aW9uLnNhbXBsZVJhdGUoKSkpKTsKKyAgICBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUgPSBQQUw6
OkNNVGltZUFkZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIFBBTDo6dG9DTVRpbWUoTWVkaWFU
aW1lKHNhbXBsZUNvdW50LCBkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkpKSk7CiB9CiAKIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZpbmlzaGVkRmx1c2hpbmdTYW1wbGVzKCkKQEAg
LTUyMywxMCArNTI2LDEwIEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXBs
ZXRlRmV0Y2hEYXRhKCkKIHsKICAgICBhdXRvIGN1cnJlbnRUaW1lQ29kZSA9IG1fdGltZUNvZGU7
CiAgICAgaWYgKG1faGFzQXVkaW8pCi0gICAgICAgIG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNv
bmRzKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSk7CisgICAgICAgIG1fdGltZUNvZGUgPSBQQUw6
OkNNVGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKTsKICAgICBlbHNlIHsK
LSAgICAgICAgYXV0byBzYW1wbGVUaW1lID0gQ01UaW1lU3VidHJhY3QoQ01DbG9ja0dldFRpbWUo
Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7Ci0gICAgICAg
IG1fdGltZUNvZGUgPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZUFkZChzYW1wbGVUaW1lLCBtX2N1
cnJlbnRWaWRlb0R1cmF0aW9uKSk7CisgICAgICAgIGF1dG8gc2FtcGxlVGltZSA9IFBBTDo6Q01U
aW1lU3VidHJhY3QoUEFMOjpDTUNsb2NrR2V0VGltZShQQUw6OkNNQ2xvY2tHZXRIb3N0VGltZUNs
b2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUpOworICAgICAgICBtX3RpbWVDb2RlID0gUEFMOjpD
TVRpbWVHZXRTZWNvbmRzKFBBTDo6Q01UaW1lQWRkKHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVv
RHVyYXRpb24pKTsKICAgICB9CiAgICAgbV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcih0YWtl
RGF0YSgpLCBjdXJyZW50VGltZUNvZGUpOwogfQpAQCAtNTUwLDEzICs1NTMsMTMgQEAgUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnRha2VEYXRhKCkKIAog
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cGF1c2UoKQogewotICAgIGF1dG8gcmVj
b3JkaW5nRHVyYXRpb24gPSBDTVRpbWVTdWJ0cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0
SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKLSAgICBtX2N1cnJlbnRWaWRl
b0R1cmF0aW9uID0gQ01UaW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1
cmF0aW9uKTsKKyAgICBhdXRvIHJlY29yZGluZ0R1cmF0aW9uID0gUEFMOjpDTVRpbWVTdWJ0cmFj
dChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1f
cmVzdW1lZFZpZGVvVGltZSk7CisgICAgbV9jdXJyZW50VmlkZW9EdXJhdGlvbiA9IFBBTDo6Q01U
aW1lQWRkKHJlY29yZGluZ0R1cmF0aW9uLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKIH0KIAog
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cmVzdW1lKCkKIHsKLSAgICBtX3Jlc3Vt
ZWRWaWRlb1RpbWUgPSBDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKTsK
KyAgICBtX3Jlc3VtZWRWaWRlb1RpbWUgPSBQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9j
a0dldEhvc3RUaW1lQ2xvY2soKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6Om1pbWVUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggNzZkNTZkN2I4ZDEzYzcyZWEzOWZjMzQ5OWQx
Nzk4OTk3MTdmMGU3OC4uZDA3NjBmMDdlMzcwODEyN2Y5ZGUyZWZhZjkyZjBlMDc3MmZkMzhlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9W
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAg
LTM0LDEyICszNCwxMSBAQAogI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZUQ29tcHJlc3Npb25TZXNz
aW9uLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAorI2ltcG9ydCA8cGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwotCiBzdGQ6
OnVuaXF1ZV9wdHI8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OmNyZWF0ZShTdHJpbmcgbWltZVR5cGUsIENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIGF1dG8gcHJv
ZmlsZSA9IFByb2ZpbGU6OkJhc2VsaW5lOwpAQCAtNjksNyArNjgsNyBAQCBWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcihDTVZpZGVvQ29kZWNU
eXBlIG91dHB1dAogVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yKCkKIHsKICAgICBpZiAobV92dFNlc3Npb24pIHsKLSAgICAgICAgVlRDb21w
cmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKG1fdnRTZXNzaW9uLmdldCgpKTsKKyAgICAgICAgUEFM
OjpWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24uZ2V0KCkpOwogICAg
ICAgICBtX3Z0U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNzcsMTIgKzc2LDEyIEBA
IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cigpCiBib29sIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZShDTUJ1ZmZl
clF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCkKIHsK
ICAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOwotICAgIGlmIChhdXRvIGVy
cm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDTUJ1ZmZl
clF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZvdXRwdXRCdWZm
ZXJRdWV1ZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NG
b3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciB1bmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBxdWV1ZSAlZCIsIGVycm9yKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gb3V0cHV0QnVm
ZmVyUXVldWU7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0QnVmZmVy
UXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVldWVUcmln
Z2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVMTCk7CisgICAgUEFMOjpD
TUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2Fs
bGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNv
bWVzUmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAgbV9pc0VuY29kaW5nID0g
dHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk2LDEwICs5NSwxMCBAQCB2b2lkIFZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2V0Qml0c1BlclNlY29uZCh1bnNpZ25lZCBiaXRSYXRlKQog
dm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCgpCiB7CiAgICAgbV9zZXJp
YWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAgICAgICAgYXV0byBlcnJv
ciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMobV92dFNlc3Npb24uZ2V0KCks
IGtDTVRpbWVJbnZhbGlkKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lv
blNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprQ01UaW1lSW52
YWxpZCk7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwg
IlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRl
RnJhbWVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCi0gICAgICAgIGVycm9yID0gQ01CdWZm
ZXJRdWV1ZU1hcmtFbmRPZkRhdGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CisgICAgICAg
IGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1
ZXVlLmdldCgpKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3Ry
ZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZE
YXRhIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogCiAgICAgICAgIG1faXNFbmNvZGluZyA9IGZh
bHNlOwpAQCAtMTE0LDcgKzExMyw3IEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojp2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2sodm9pZCAqcmVmQ29uLCB2b2lkKiwKIAogICAgIFZp
ZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciAqY29tcHJlc3NvciA9IHN0YXRpY19jYXN0PFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcio+KHJlZkNvbik7CiAKLSAgICBhdXRvIGVycm9yID0gQ01C
dWZmZXJRdWV1ZUVucXVldWUoY29tcHJlc3Nvci0+bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwg
YnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShjb21w
cmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOwogICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApA
QCAtMTMwLDUzICsxMjksNTMgQEAgQ0ZTdHJpbmdSZWYgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjp2dFByb2ZpbGVMZXZlbCgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3Byb2ZpbGUpIHsK
ICAgICBjYXNlIFByb2ZpbGU6OkJhc2VsaW5lOgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxl
dmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9m
aWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CiAgICAgY2FzZSBQcm9maWxlOjpIaWdo
OgotICAgICAgICByZXR1cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWw7Cisg
ICAgICAgIHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVsOwog
ICAgIGNhc2UgUHJvZmlsZTo6TWFpbjoKLSAgICAgICAgcmV0dXJuIGtWVFByb2ZpbGVMZXZlbF9I
MjY0X01haW5fQXV0b0xldmVsOworICAgICAgICByZXR1cm4gUEFMOjprVlRQcm9maWxlTGV2ZWxf
SDI2NF9NYWluX0F1dG9MZXZlbDsKICAgICB9CiB9CiAKIGJvb2wgVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjppbml0Q29tcHJlc3Npb25TZXNzaW9uKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbikKIHsKLSAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNp
b25zID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlw
dGlvbik7CisgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IFBBTDo6Q01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbik7CiAjaWYgUExB
VEZPUk0oSU9TKQogICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gbmls
OwogI2Vsc2UKLSAgICBOU0RpY3Rpb25hcnkgKmVuY29kZXJTcGVjaWZpY2F0aW9ucyA9IEB7KF9f
YnJpZGdlIE5TU3RyaW5nICopa1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJk
d2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyOkBZRVN9OworICAgIE5TRGljdGlvbmFyeSAqZW5j
b2RlclNwZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcgKilQQUw6OmtWVFZpZGVv
RW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rl
cjpAWUVTfTsKICNlbmRpZgogCiAgICAgVlRDb21wcmVzc2lvblNlc3Npb25SZWYgdnRTZXNzaW9u
OwotICAgIGF1dG8gZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCwgbV9vdXRwdXRD
b2RlY1R5cGUsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZW5jb2RlclNwZWNpZmljYXRpb25z
LCBOVUxMLCBOVUxMLCB2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2ssIHRoaXMsICZ2dFNlc3Npb24p
OworICAgIGF1dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0LCBtX291
dHB1dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZillbmNvZGVyU3BlY2lmaWNh
dGlvbnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFjaywgdGhpcywgJnZ0U2Vz
c2lvbik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
U3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJlc3Npb25TZXNzaW9u
Q3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gTk87CiAgICAg
fQogICAgIG1fdnRTZXNzaW9uID0gYWRvcHRDRih2dFNlc3Npb24pOwogCi0gICAgZXJyb3IgPSBW
VFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworICAgIGVycm9yID0gVlRTZXNzaW9u
U2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Np
b25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOwotICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJh
bWVJbnRlcnZhbER1cmF0aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbik7CisgICAg
ZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwg
UEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlv
biwgbV9tYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24pOwogICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNl
c3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50
ZXJ2YWxEdXJhdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICBlcnJvciA9IHNldENv
bXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lv
blByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBtX2V4cGVjdGVkRnJhbWVSYXRlKTsKKyAg
ICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUsIG1fZXhw
ZWN0ZWRGcmFtZVJhdGUpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0
cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwogCi0gICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lv
bi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIHZ0UHJvZmls
ZUxldmVsKCkpOworICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24u
Z2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIHZ0UHJv
ZmlsZUxldmVsKCkpOwogICAgIGlmIChlcnJvcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQ
cm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0
aCAlZCBmb3IgcHJvZmlsZSAlZCIsIGVycm9yLCBtX3Byb2ZpbGUpOwogICAgICAgICBpZiAobV9w
cm9maWxlICE9IFByb2ZpbGU6OkJhc2VsaW5lKSB7Ci0gICAgICAgICAgICBlcnJvciA9IFZUU2Vz
c2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X1Byb2ZpbGVMZXZlbCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVs
KTsKKyAgICAgICAgICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24u
Z2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIFBBTDo6
a1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKTsKICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X1Byb2ZpbGVMZXZlbCBmYWlsZWQgd2l0aCAlZCBmb3IgZGVmYXVsdCBwcm9maWxlIiwgZXJyb3Ip
OwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fb3V0cHV0Qml0UmF0ZSkgewotICAgICAg
ICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCAqbV9vdXRwdXRCaXRS
YXRlKTsKKyAgICAgICAgZXJyb3IgPSBzZXRDb21wcmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0
U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRS
YXRlLCAqbV9vdXRwdXRCaXRSYXRlKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJy
b3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNl
dFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7CiAgICAgfQogCi0gICAgZXJyb3IgPSBWVENvbXByZXNzaW9uU2Vz
c2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSk7CisgICAgZXJyb3Ig
PSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKG1fdnRTZXNz
aW9uLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0s
ICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJl
VG9FbmNvZGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAgICByZXR1cm4gWUVT
OwpAQCAtMTg1LDE0ICsxODQsMTQgQEAgYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6
OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW8KIHZvaWQgVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVm
ZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBpZiAoIW1fdnRTZXNzaW9uKSB7Ci0gICAgICAgIGlmICgh
aW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9u
KGJ1ZmZlcikpKQorICAgICAgICBpZiAoIWluaXRDb21wcmVzc2lvblNlc3Npb24oUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldElt
YWdlQnVmZmVyKGJ1ZmZlcik7Ci0gICAgYXV0byBwcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVNh
bXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIpOwotICAgIGF1dG8gZHVy
YXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7Ci0gICAgYXV0byBlcnJv
ciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGlt
YWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBO
VUxMKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKGJ1ZmZlcik7CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1lU3RhbXAgPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7CisgICAgYXV0byBk
dXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZmZXIpOworICAgIGF1
dG8gZXJyb3IgPSBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNlc3Np
b24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBO
VUxMLCB0aGlzLCBOVUxMKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFT
dHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25F
bmNvZGVGcmFtZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKIH0KIApAQCAtMjA4LDEyICsyMDcs
MTIgQEAgdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihD
TVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIENNU2FtcGxlQnVmZmVyUmVmIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkKIHsKLSAgICByZXR1cm4g
KENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlR2V0SGVh
ZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworICAgIHJldHVybiAoQ01TYW1wbGVCdWZm
ZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZUdldEhlYWQobV9vdXRw
dXRCdWZmZXJRdWV1ZS5nZXQoKSkpKTsKIH0KIAogUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVm
PiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKQog
ewotICAgIHJldHVybiBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lk
Kj4oQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQo
KSkpKSk7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0
PHZvaWQqPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVy
UXVldWUuZ2V0KCkpKSkpOwogfQogCiB1bnNpZ25lZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmJpdFJhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwCmluZGV4IGMzZmU4MjFiOWM1
MjBjOTIyNGU1ZGU4ODhlNTE4YzMxOTZmMzFjYjUuLmEwMjQwODRjMjRlNmQzNjM5NjA4YTY0NjUy
ZWNjNWQ2ZDllZmFjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2VuZGlmCiAKKyNp
bmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDxwYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTIzLDkgKzEy
NCw5IEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dDo6c3RhcnQoKQogICAgIGlmICghbV9yZW1vdGVJT1VuaXQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9PdXRwdXRVbml0U3RhcnQobV9yZW1vdGVJT1VuaXQp
KSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1fcmVt
b3RlSU9Vbml0KSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQgQXVkaW9PdXRwdXRVbml0
U3RhcnQgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJyb3IpOwotICAgICAgICBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21w
b25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1vdGVJT1VuaXQpOwogICAgICAgICBtX3JlbW90ZUlP
VW5pdCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMzksMTEgKzE0MCwx
MSBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OnN0b3AoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1N0YXJ0ZWQpIHsKLSAgICAg
ICAgQXVkaW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CisgICAgICAgIFBBTDo6QXVk
aW9PdXRwdXRVbml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CiAgICAgICAgIG1faXNTdGFydGVkID0g
ZmFsc2U7CiAgICAgfQogCi0gICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1v
dGVJT1VuaXQpOworICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UobV9yZW1v
dGVJT1VuaXQpOwogICAgIG1fcmVtb3RlSU9Vbml0ID0gbnVsbHB0cjsKIH0KIApAQCAtMTYzLDE0
ICsxNjQsMTQgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgaW9Vbml0RGVzY3JpcHRpb24u
Y29tcG9uZW50U3ViVHlwZSA9IGtBdWRpb1VuaXRTdWJUeXBlX0RlZmF1bHRPdXRwdXQ7CiAjZW5k
aWYKIAotICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVkaW9Db21wb25lbnRGaW5k
TmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlvQ29tcG9uZW50IGlv
Q29tcG9uZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXRE
ZXNjcmlwdGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAgICBpZiAoIWlvQ29tcG9u
ZW50KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIGZp
bmQgcmVtb3RlIElPIHVuaXQgY29tcG9uZW50Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBhdXRvIGVycm9yID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwg
JnJlbW90ZUlPVW5pdCk7CisgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0
YW5jZU5ldyhpb0NvbXBvbmVudCwgJnJlbW90ZUlPVW5pdCk7CiAgICAgaWYgKGVycm9yKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIG9wZW4gdnBpbyB1
bml0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xNzgsNyArMTc5
LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIFVJbnQzMiBwYXJhbSA9IDE7Ci0gICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShy
ZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5p
dFNjb3BlX091dHB1dCwgMCwgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICBlcnJvciA9IFBB
TDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJv
cGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIDAsICZwYXJhbSwgc2l6ZW9m
KHBhcmFtKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdl
YlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVB
dWRpb1VuaXQgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgb3V0cHV0LCBlcnJvciA9ICVkIiwg
ZXJyb3IpOwogICAgICAgICByZXR1cm47CkBAIC0xODcsNyArMTg4LDcgQEAgdm9pZCBMb2NhbEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJ
Zk5lZWRlZCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1fZGV2aWNlSUQpIHsKLSAg
ICAgICAgZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091
dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAw
LCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1fZGV2aWNlSUQpKTsKKyAgICAgICAgZXJyb3IgPSBQQUw6
OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3Bl
cnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZtX2RldmljZUlE
LCBzaXplb2YobV9kZXZpY2VJRCkpOwogICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRvIHNldCB1bml0IGRldmljZSBJ
RCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludCltX2RldmljZUlELCAoaW50KWVycm9yLCAoY2hh
ciopJmVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5NiwxNCArMTk3LDE0IEBAIHZv
aWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRl
QXVkaW9Vbml0SWZOZWVkZWQoKQogI2VuZGlmCiAKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0
IGNhbGxiYWNrID0geyBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0OjpyZW5kZXJpbmdDYWxsYmFjaywgdGhpcyB9OwotICAgIGVycm9yID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJh
Y2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNr
KSk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwg
a0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xv
YmFsLCAwLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnJvcikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQgdnBpbyB1
bml0IHNwZWFrZXIgcHJvYywgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVh
bURlc2NyaXB0aW9uKCkpOwotICAgIGVycm9yICA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KHJlbW90
ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3Bl
X0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgJnNpemUp
OworICAgIGVycm9yICA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBr
QXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAs
ICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCAmc2l6ZSk7CiAgICAgaWYg
KGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgdW5hYmxlIHRv
IGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwogICAgICAgICBy
ZXR1cm47CkBAIC0yMTEsMTMgKzIxMiwxMyBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKIAogICAg
IG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCkubVNhbXBsZVJhdGUgPSBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCk7CiAKLSAgICBlcnJvciA9IEF1
ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVh
bUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAmb3V0cHV0RGVzY3JpcHRpb24uc3Ry
ZWFtRGVzY3JpcHRpb24oKSwgc2l6ZW9mKG91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0
aW9uKCkpKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9V
bml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5w
dXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBzaXplb2Yob3V0
cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSkpOwogICAgIGlmIChlcnJvcikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0byBzZXQgaW5wdXQg
c3RyZWFtIGZvcm1hdCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGVycm9yID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShyZW1vdGVJT1VuaXQpOworICAg
IGVycm9yID0gUEFMOjpBdWRpb1VuaXRJbml0aWFsaXplKHJlbW90ZUlPVW5pdCk7CiAgICAgaWYg
KGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQgQXVkaW9Vbml0
SW5pdGlhbGl6ZSgpIGZhaWxlZCwgZXJyb3IgPSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDRiNzg4YWU1YWE4N2I3MjllNWJk
Y2Y5Y2Y3MTM4MTJjNjc3MGEzMjUuLjQ4NWU0Y2U0YzZkOGMzMjQ1Yjc3OWQ2MWE2NzZjYmJiOTdi
YWQ5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTUxLDcgKzUxLDYgQEAK
ICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIEBpbnRlcmZhY2UgV2ViQ29yZUFWVmlk
ZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgOiBOU09iamVjdDxBVkNhcHR1cmVWaWRlb0RhdGFPdXRw
dXRTYW1wbGVCdWZmZXJEZWxlZ2F0ZT4gewogICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKiBtX2Nh
bGxiYWNrOwpAQCAtMzUxLDEwICszNTAsMTAgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
c2V0U2Vzc2lvblNpemVBbmRGcmFtZVJhdGUoKQogICAgICAgICAgICAgaWYgKGZyYW1lUmF0ZVJh
bmdlKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50RnJhbWVSYXRlID0gY2xhbXBUbyhtX2N1
cnJlbnRGcmFtZVJhdGUsIGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lUmF0ZSwgZnJhbWVSYXRlUmFu
Z2UubWF4RnJhbWVSYXRlKTsKIAotICAgICAgICAgICAgICAgIGF1dG8gZnJhbWVEdXJhdGlvbiA9
IENNVGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKLSAgICAgICAgICAgICAgICBpZiAo
Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0
aW9uKSA8IDApCisgICAgICAgICAgICAgICAgYXV0byBmcmFtZUR1cmF0aW9uID0gUEFMOjpDTVRp
bWVNYWtlKDEsIG1fY3VycmVudEZyYW1lUmF0ZSk7CisgICAgICAgICAgICAgICAgaWYgKFBBTDo6
Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5taW5GcmFtZUR1cmF0
aW9uKSA8IDApCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVS
YW5nZS5taW5GcmFtZUR1cmF0aW9uOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKENNVGltZUNv
bXBhcmUoZnJhbWVEdXJhdGlvbiwgZnJhbWVSYXRlUmFuZ2UubWF4RnJhbWVEdXJhdGlvbikgPiAw
KQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBBTDo6Q01UaW1lQ29tcGFyZShmcmFtZUR1cmF0
aW9uLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uKSA+IDApCiAgICAgICAgICAgICAg
ICAgICAgIGZyYW1lRHVyYXRpb24gPSBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZUR1cmF0aW9uOwog
CiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklF
UiwgInNldHRpbmcgZnJhbWUgcmF0ZSB0byAiLCBtX2N1cnJlbnRGcmFtZVJhdGUsICIsIGR1cmF0
aW9uICIsIFBBTDo6dG9NZWRpYVRpbWUoZnJhbWVEdXJhdGlvbikpOwpAQCAtNDE4LDcgKzQxNyw3
IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCiAKICAgICBtX3Nl
c3Npb24gPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZDYXB0dXJlU2Vzc2lvbkluc3RhbmNlKCkgaW5p
dF0pOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQVZDYXB0dXJlU2Vzc2lvblNldEF1
dGhvcml6ZWRUb1VzZUNhbWVyYUluTXVsdGlwbGVGb3JlZ3JvdW5kQXBwTGF5b3V0KG1fc2Vzc2lv
bi5nZXQoKSk7CisgICAgUEFMOjpBVkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2Ft
ZXJhSW5NdWx0aXBsZUZvcmVncm91bmRBcHBMYXlvdXQobV9zZXNzaW9uLmdldCgpKTsKICNlbmRp
ZgogICAgIFttX3Nlc3Npb24gYWRkT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5
UGF0aDpAInJ1bm5pbmciIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250
ZXh0Oih2b2lkICopbmlsXTsKIApAQCAtNDM0LDYgKzQzMyw4IEBAIGJvb2wgQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCiAKIEFWRnJhbWVSYXRlUmFuZ2UqIEFWVmlkZW9DYXB0
dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKGRvdWJsZSByYXRlKQogeworICAg
IHVzaW5nIG5hbWVzcGFjZSBQQUw7IC8vIEZvciBDTVRJTUVfQ09NUEFSRV9JTkxJTkUKKwogICAg
IEFWRnJhbWVSYXRlUmFuZ2UgKmJlc3RGcmFtZVJhdGVSYW5nZSA9IG5pbDsKICAgICBmb3IgKEFW
RnJhbWVSYXRlUmFuZ2UgKmZyYW1lUmF0ZVJhbmdlIGluIFtbZGV2aWNlKCkgYWN0aXZlRm9ybWF0
XSB2aWRlb1N1cHBvcnRlZEZyYW1lUmF0ZVJhbmdlc10pIHsKICAgICAgICAgaWYgKGZyYW1lUmF0
ZVJhbmdlSW5jbHVkZXNSYXRlKHsgW2ZyYW1lUmF0ZVJhbmdlIG1pbkZyYW1lUmF0ZV0sIFtmcmFt
ZVJhdGVSYW5nZSBtYXhGcmFtZVJhdGVdIH0sIHJhdGUpKSB7CkBAIC01OTgsNyArNTk5LDcgQEAg
dm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJhdGVQcmVzZXRzKCkKICAgICBWZWN0b3I8
UmVmPFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKICAgICBmb3IgKEFWQ2FwdHVyZURldmljZUZvcm1h
dCogZm9ybWF0IGluIFtkZXZpY2UoKSBmb3JtYXRzXSkgewogCi0gICAgICAgIENNVmlkZW9EaW1l
bnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25z
KGZvcm1hdC5mb3JtYXREZXNjcmlwdGlvbik7CisgICAgICAgIENNVmlkZW9EaW1lbnNpb25zIGRp
bWVuc2lvbnMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9y
bWF0LmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICAgICAgSW50U2l6ZSBzaXplID0geyBkaW1lbnNp
b25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCB9OwogICAgICAgICBhdXRvIGluZGV4ID0gcHJl
c2V0cy5maW5kTWF0Y2hpbmcoWyZzaXplXShhdXRvJiBwcmVzZXQpIHsKICAgICAgICAgICAgIHJl
dHVybiBzaXplID09IHByZXNldC0+c2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNl
LmNwcAppbmRleCA2ZTI2YzhmYTRlY2QzMGFjMWU1MmZlYzM4YWY1N2QwZTMzZDliYzI0Li5lMTU1
NDYyZjUxODE1ODhiYTNiYzk0NTZjNmI2YWU5YWZlMjFiNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVEZXZpY2UuY3BwCkBAIC0xOSw3ICsxOSw3IEBACiAgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKICAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiAoSU5DTFVESU5HIE5FR0xJR0VQ
QUw6Ok5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0IDxwYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIAogc3RhdGljIGJvb2wgZ2V0RGV2aWNlSW5mbyh1aW50MzJfdCBkZXZpY2VJRCwg
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwgU3Ry
aW5nJiBsYWJlbCkKIHsKQEAgLTIwNSw3ICsyMDQsNyBAQCBSZXRhaW5QdHI8Q01DbG9ja1JlZj4g
Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNlQ2xvY2soKQogICAgICAgICByZXR1cm4gbV9k
ZXZpY2VDbG9jazsKIAogICAgIENNQ2xvY2tSZWYgY2xvY2s7Ci0gICAgYXV0byBlcnIgPSBDTUF1
ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGVyc2lzdGVudElkKCku
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmNsb2NrKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6Q01B
dWRpb0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBlcnNpc3RlbnRJZCgp
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZjbG9jayk7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpDTUF1
ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoJXApIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSBmYWlsZWQg
d2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApp
bmRleCAwM2YzZTYyYTI2MzdjM2U5MDFiYWY2OTRkM2M1MjY1ZWZhNzRhZWIyLi5mNGIzNjU4OTRk
MzdjZDk0ZmYyMWI3ZmI1NGZkYjI2NDFmMzZmZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuY3BwCkBAIC00OCw2ICs0OCw4IEBACiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorCisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5j
bHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpAQCAtNTcsNyArNTksNiBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShNQUMpCiBDb3JlQXVkaW9DYXB0dXJl
U291cmNlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigp
CkBAIC0yMDMsNyArMjA0LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBB
dWRpb1VuaXQoKQogICAgIG1fRFRTQ29udmVyc2lvblJhdGlvID0gMWUtOSAqIHN0YXRpY19jYXN0
PGRvdWJsZT4odGltZWJhc2VJbmZvLm51bWVyKSAvIHN0YXRpY19jYXN0PGRvdWJsZT4odGltZWJh
c2VJbmZvLmRlbm9tKTsKIAogICAgIEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24gaW9Vbml0RGVz
Y3JpcHRpb24gPSB7IGtBdWRpb1VuaXRUeXBlX091dHB1dCwga0F1ZGlvVW5pdFN1YlR5cGVfVm9p
Y2VQcm9jZXNzaW5nSU8sIGtBdWRpb1VuaXRNYW51ZmFjdHVyZXJfQXBwbGUsIDAsIDAgfTsKLSAg
ICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVudCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQobnVs
bHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKKyAgICBBdWRpb0NvbXBvbmVudCBpb0NvbXBvbmVu
dCA9IFBBTDo6QXVkaW9Db21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRp
b24pOwogICAgIEFTU0VSVChpb0NvbXBvbmVudCk7CiAgICAgaWYgKCFpb0NvbXBvbmVudCkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIGZpbmQgdnBpbyB1bml0IGNvbXBvbmVudCIsIHRo
aXMpOwpAQCAtMjEyLDcgKzIxMyw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNl
dHVwQXVkaW9Vbml0KCkKIAogI2lmICFMT0dfRElTQUJMRUQKICAgICBDRlN0cmluZ1JlZiBuYW1l
ID0gbnVsbHB0cjsKLSAgICBBdWRpb0NvbXBvbmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAmbmFt
ZSk7CisgICAgUEFMOjpBdWRpb0NvbXBvbmVudENvcHlOYW1lKGlvQ29tcG9uZW50LCAmbmFtZSk7
CiAgICAgaWYgKG5hbWUpIHsKICAgICAgICAgbV9pb1VuaXROYW1lID0gbmFtZTsKICAgICAgICAg
Q0ZSZWxlYXNlKG5hbWUpOwpAQCAtMjIwLDcgKzIyMSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1No
YXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKICAgICB9CiAjZW5kaWYKIAotICAgIGF1dG8gZXJy
ID0gQXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwgJm1faW9Vbml0KTsKKyAg
ICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZU5ldyhpb0NvbXBvbmVudCwg
Jm1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdl
YlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8g
b3BlbiB2cGlvIHVuaXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciop
JmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yMjgsMTMgKzIyOSwxMyBAQCBPU1N0YXR1
cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAKICAgICBpZiAoIWVuYWJs
ZUVjaG9DYW5jZWxsYXRpb24oKSkgewogICAgICAgICB1aW50MzJfdCBwYXJhbSA9IDA7Ci0gICAg
ICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVy
dHlfVm9pY2VQcm9jZXNzaW5nRW5hYmxlQUdDLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1
dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICAgICAgZXJyID0gUEFMOjpBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJvY2Vzc2lu
Z0VuYWJsZUFHQywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6
ZW9mKHBhcmFtKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1
bmFibGUgdG8gc2V0IHZwaW8gYXV0b21hdGljIGdhaW4gY29udHJvbCwgZXJyb3IgJWQgKCUuNHMp
IiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBlcnI7
CiAgICAgICAgIH0KICAgICAgICAgcGFyYW0gPSAxOwotICAgICAgICBlcnIgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X0J5cGFzc1ZvaWNlUHJvY2Vz
c2luZywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBh
cmFtKSk7CisgICAgICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQs
IGtBVVZvaWNlSU9Qcm9wZXJ0eV9CeXBhc3NWb2ljZVByb2Nlc3NpbmcsIGtBdWRpb1VuaXRTY29w
ZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgICAgICBpZiAo
ZXJyKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9T
aGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgZWNo
byBjYW5jZWxsYXRpb24sIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciop
JmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjQzLDcgKzI0NCw3IEBAIE9TU3Rh
dHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCkKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgdWludDMyX3QgcGFyYW0gPSAxOwotICAgIGVyciA9IEF1ZGlvVW5p
dFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8s
IGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7
CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0
cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlucHV0QnVz
LCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQo
JXApIHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IGlucHV0LCBlcnJvciAlZCAoJS40cykiLCB0
aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMjU1
LDcgKzI1Niw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0
KCkKICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCi0gICAgZXJyID0gQXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2
aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJm1fY2FwdHVyZURldmljZUlE
LCBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmlj
ZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZtX2NhcHR1cmVEZXZpY2VJRCwg
c2l6ZW9mKG1fY2FwdHVyZURldmljZUlEKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgY2FwdHVyZSBkZXZpY2UgSUQgJWQsIGVycm9y
ICVkICglLjRzKSIsIHRoaXMsIChpbnQpbV9jYXB0dXJlRGV2aWNlSUQsIChpbnQpZXJyLCAoY2hh
ciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBAIC0yNzAsNyArMjcxLDcgQEAgT1NTdGF0
dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIGlmIChlcnIpCiAg
ICAgICAgIHJldHVybiBlcnI7CiAKLSAgICBlcnIgPSBBdWRpb1VuaXRJbml0aWFsaXplKG1faW9V
bml0KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUobV9pb1VuaXQpOwogICAg
IGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlv
U2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoJXApIEF1ZGlvVW5pdEluaXRpYWxpemUoKSBmYWls
ZWQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAg
ICAgIHJldHVybiBlcnI7CkBAIC0yOTIsNyArMjkzLDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRV
bml0Ojp1bmR1Y2soKQogT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWlj
cm9waG9uZVByb2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7
IG1pY3JvcGhvbmVDYWxsYmFjaywgdGhpcyB9OwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJbnB1dENhbGxi
YWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2Yo
Y2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9TZXRJbnB1dENhbGxiYWNrLCBrQXVkaW9V
bml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsK
ICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gc2V0
IHZwaW8gdW5pdCBtaWMgcHJvYywgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChj
aGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTMwMSwxNCArMzAyLDE0IEBAIE9T
U3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKICAg
ICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24gbWljcm9waG9uZVByb2NGb3JtYXQgPSB7IH07
CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtaWNyb3Bob25lUHJvY0Zvcm1hdCk7Ci0gICAg
ZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9T
dHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9u
ZVByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5
KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2Nv
cGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7CiAgICAg
aWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9T
aGFyZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIGdldCBvdXRw
dXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKICAgICBtaWNyb3Bob25lUHJv
Y0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGUoKTsKLSAgICBlcnIgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6
ZSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlv
VW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRC
dXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1
cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwg
ZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAg
cmV0dXJuIGVycjsKQEAgLTMyMyw3ICszMjQsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRV
bml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRV
bml0Ojpjb25maWd1cmVTcGVha2VyUHJvYygpCiB7CiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVj
dCBjYWxsYmFjayA9IHsgc3BlYWtlckNhbGxiYWNrLCB0aGlzIH07Ci0gICAgYXV0byBlcnIgPSBB
dWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRl
ckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJmNhbGxiYWNrLCBz
aXplb2YoY2FsbGJhY2spKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVy
dHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlv
VW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7
CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3Jl
QXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRvIHNldCB2
cGlvIHVuaXQgc3BlYWtlciBwcm9jLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwg
KGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMzMyLDE0ICszMzMsMTQgQEAg
T1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoKQogICAg
IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzcGVha2VyUHJvY0Zvcm1hdCA9IHsgfTsKIAog
ICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKHNwZWFrZXJQcm9jRm9ybWF0KTsKLSAgICBlcnIgPSBB
dWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZv
cm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1h
dCwgJnNpemUpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQs
IGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwg
b3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXplKTsKICAgICBpZiAoZXJyKSB7CiAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNv
bmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQs
IGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAg
IHJldHVybiBlcnI7CiAgICAgfQogCiAgICAgc3BlYWtlclByb2NGb3JtYXQubVNhbXBsZVJhdGUg
PSBzYW1wbGVSYXRlKCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQs
IGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwg
b3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsIHNpemUpOworICAgIGVyciA9IFBBTDo6QXVk
aW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3Jt
YXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQs
IHNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRD
LCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0
byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCll
cnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTQ1OSw3ICs0NjAsNyBA
QCB2b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNsZWFudXBBdWRpb1VuaXQoKQogICAgIH0KIAog
ICAgIGlmIChtX2lvVW5pdCkgewotICAgICAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9z
ZShtX2lvVW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2Uo
bV9pb1VuaXQpOwogICAgICAgICBtX2lvVW5pdCA9IG51bGxwdHI7CiAgICAgfQogCkBAIC00Nzcs
NyArNDc4LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRp
b1VuaXQoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsK
LSAgICAgICAgZXJyID0gQXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgICAgIGVy
ciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CiAgICAgICAgIGlmIChlcnIp
IHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCVwKSBBdWRpb091dHB1dFVuaXRTdG9wIGZhaWxl
ZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAg
ICAgICAgICAgICByZXR1cm4gZXJyOwpAQCAtNDkwLDcgKzQ5MSw3IEBAIE9TU3RhdHVzIENvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KCkKICAgICAgICAgcmV0dXJuIGVy
cjsKIAogICAgIGlmIChtX2lvVW5pdFN0YXJ0ZWQpIHsKLSAgICAgICAgZXJyID0gQXVkaW9PdXRw
dXRVbml0U3RhcnQobV9pb1VuaXQpOworICAgICAgICBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0VW5p
dFN0YXJ0KG1faW9Vbml0KTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRp
b1VuaXQoJXApIEF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRz
KSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgICAgICByZXR1cm4gZXJy
OwpAQCAtNTE0LDcgKzUxNSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0
SW50ZXJuYWwoKQogCiAgICAgdW5kdWNrKCk7CiAKLSAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRT
dGFydChtX2lvVW5pdCk7CisgICAgZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdGFydChtX2lv
VW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzdGFydCglcCkgQXVkaW9PdXRwdXRVbml0U3RhcnQgZmFp
bGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsK
ICAgICAgICAgY2xlYW51cEF1ZGlvVW5pdCgpOwpAQCAtNTUxLDcgKzU1Miw3IEBAIHZvaWQgQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKCkKICAgICBpZiAoIW1faW9Vbml0IHx8ICFt
X2lvVW5pdFN0YXJ0ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gZXJyID0gQXVkaW9P
dXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlvT3V0cHV0
VW5pdFN0b3AobV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcCglcCkgQXVkaW9PdXRwdXRV
bml0U3RvcCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICByZXR1cm47CkBAIC01NjUsNyArNTY2LDcgQEAgT1NTdGF0dXMg
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0RGV2aWNlKHVpbnQzMl90KiBkZXZpY2VJ
RCkKICAgICBBU1NFUlQobV9pb1VuaXQpOwogCiAgICAgVUludDMyIHByb3BlcnR5U2l6ZSA9IHNp
emVvZigqZGV2aWNlSUQpOwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0
U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgZGV2aWNlSUQsICZwcm9wZXJ0eVNpemUpOworICAgIGF1
dG8gZXJyID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0
VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0
QnVzLCBkZXZpY2VJRCwgJnByb3BlcnR5U2l6ZSk7CiAgICAgaWYgKGVycikKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdElucHV0
RGV2aWNlKCVwKSB1bmFibGUgdG8gZ2V0IGRlZmF1bHQgaW5wdXQgZGV2aWNlIElELCBlcnJvciAl
ZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggM2Y0ZTRkY2Y0MmMwZmE5M2VmOWFiNjJk
ZDIyYTk3YzUxMzg3MDY2My4uNTgyZjRiMjZjZjExOGM0OTcxYWNkN2QxODMwOTIxOTdlMWU3Njgy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtNTYsNyAr
NTYsNiBAQAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIERpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hh
cmVkVW5pdC5tbQppbmRleCBhYTdmZjA4NzUwNTQyNTgyZjFlZjkxNjdhODFlNmZiNWE1NDhmMTUy
Li5iODZiMDVlOGM2NjViYzJlODA1ZjI3YjM4YjFhNGZkMzMxM2Y5MmMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5p
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1
ZGlvU2hhcmVkVW5pdC5tbQpAQCAtNDQsMTQgKzQ0LDEwIEBACiAjaW1wb3J0IDxBdWRpb1Rvb2xi
b3gvQXVkaW9Db252ZXJ0ZXIuaD4KICNpbXBvcnQgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5o
PgogCisjaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbXBvcnQgPHBh
bC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlvVG9v
bGJveCkKLQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3Rh
dHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwg
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBB
dWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGlu
RGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKLQogbmFtZXNwYWNlIFdlYkNv
cmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGlubGluZSBzaXplX3QgYWxpZ25U
bzE2Qnl0ZXMoc2l6ZV90IHNpemUpCiB7CkBAIC0yMjEsNyArMjE3LDcgQEAgdm9pZCBNb2NrQXVk
aW9TaGFyZWRVbml0OjpyZWNvbmZpZ3VyZSgpCiAgICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBtYWtl
VW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9zdHJlYW1Gb3JtYXQsIG1fbWF4aW1pdW1GcmFt
ZUNvdW50KTsKIAogICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb247
Ci0gICAgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKE5VTEwsICZtX3N0cmVhbUZvcm1h
dCwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBQQUw6
OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShOVUxMLCAmbV9zdHJlYW1Gb3JtYXQsIDAs
IE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgbV9mb3JtYXRE
ZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0RGVzY3JpcHRpb24pOwogCiAgICAgc2l6ZV90IHNh
bXBsZUNvdW50ID0gMiAqIHJhdGU7CkBAIC0yNDMsNyArMjM5LDcgQEAgdm9pZCBNb2NrQXVkaW9T
aGFyZWRVbml0OjplbWl0U2FtcGxlQnVmZmVycyh1aW50MzJfdCBmcmFtZUNvdW50KQogICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2Zvcm1hdERlc2NyaXB0aW9uKTsK
IAotICAgIENNVGltZSBzdGFydFRpbWUgPSBDTVRpbWVNYWtlKG1fc2FtcGxlc0VtaXR0ZWQsIHNh
bXBsZVJhdGUoKSk7CisgICAgQ01UaW1lIHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX3Nh
bXBsZXNFbWl0dGVkLCBzYW1wbGVSYXRlKCkpOwogICAgIG1fc2FtcGxlc0VtaXR0ZWQgKz0gZnJh
bWVDb3VudDsKIAogICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShQQUw6OnRvTWVkaWFUaW1lKHN0
YXJ0VGltZSksICptX2F1ZGlvQnVmZmVyTGlzdCwgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKG1f
c3RyZWFtRm9ybWF0KSwgZnJhbWVDb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMubW0KaW5kZXggYjA1OWEzMjUxZDhiOTY1N2JhOTAxNGM0NGY4MDYzYWY4MjdiMWQ0
My4uYjYwYjg4NjZmYmI4MDQ4OGMyM2ZlMmI1NzY5MmIzMGY4N2UzODY5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAtNTEsNyArNTEsNiBAQAogI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4
IDU4MDk0YjM0MjBmMzljOGYyNmMxNzc3YTJhZWQwMTIzZGJlYTI2MjguLmFhNjk2YWRkZjdmNzc5
MjU5MTUyOTU4M2MyMTYwYzEyNDkxMWQ1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUg
PHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2lu
ZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlPiBSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRj
OjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmIGF1ZGlvVHJhY2ssIFN0cmluZyYmIGF1ZGlvVHJhY2tJ
ZCkKIHsKQEAgLTEzMSw3ICsxMzAsNyBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZUNvY29hOjpPbkRhdGEoY29uc3Qgdm9pZCogYXVkaW9EYXRhLCBpbnQgYml0c1BlcgogICAgICAg
ICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IDA7CiAgICAgfQogCi0gICAgQ01UaW1lIHN0YXJ0VGlt
ZSA9IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgQ01UaW1l
IHN0YXJ0VGltZSA9IFBBTDo6Q01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRl
KTsKICAgICBhdXRvIG1lZGlhVGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoc3RhcnRUaW1lKTsKICAg
ICBtX251bWJlck9mRnJhbWVzICs9IG51bWJlck9mRnJhbWVzOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggOGRmOGY2OGY2ZjcyNDA0
NzVkYmQ0MzIzMDZhYTNhNTY5ZjZlNDhjZi4uMGM3MWUxZGIxMGZhNDM3YTdjMDA0M2QzNjRmNDRi
ZjcyMzcxMWM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5tbQpAQCAtNDIsNyArNDIsNiBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQK
ICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlPiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZw
dHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmIHZpZGVvVHJhY2ssIFN0cmluZyYmIHRy
YWNrSWQpCiB7CkBAIC0xNzMsMTkgKzE3MiwxOSBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZUNvY29hOjpPbkZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUpCiAg
ICAgfQogCiAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm87Ci0gICAgdGltaW5nSW5m
by5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVRpbWVNYWtlKGZyYW1lLnRpbWVzdGFtcF91cygp
LCAxMDAwMDAwKTsKLSAgICB0aW1pbmdJbmZvLmRlY29kZVRpbWVTdGFtcCA9IGtDTVRpbWVJbnZh
bGlkOwotICAgIHRpbWluZ0luZm8uZHVyYXRpb24gPSBrQ01UaW1lSW52YWxpZDsKKyAgICB0aW1p
bmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IFBBTDo6Q01UaW1lTWFrZShmcmFtZS50aW1l
c3RhbXBfdXMoKSwgMTAwMDAwMCk7CisgICAgdGltaW5nSW5mby5kZWNvZGVUaW1lU3RhbXAgPSBQ
QUw6OmtDTVRpbWVJbnZhbGlkOworICAgIHRpbWluZ0luZm8uZHVyYXRpb24gPSBQQUw6OmtDTVRp
bWVJbnZhbGlkOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2Ny
aXB0aW9uOwotICAgIE9TU3RhdHVzIG9zdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJl
ZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBPU1N0YXR1cyBvc3RhdHVz
ID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERl
c2NyaXB0aW9uKTsKICAgICBpZiAob3N0YXR1cyAhPSBub0VycikgewogICAgICAgICBFUlJPUl9M
T0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciAiLCBzdGF0aWNfY2FzdDxpbnQ+KG9z
dGF0dXMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlcjsKLSAgICBvc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdp
dGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhl
bEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsK
KyAgICBvc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVm
ZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCBm
b3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZzYW1wbGVCdWZmZXIpOwogICAgIENGUmVs
ZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKG9zdGF0dXMgIT0gbm9FcnIpIHsKICAg
ICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSLCAiRmFpbGVkIHRv
IGNyZWF0ZSB0aGUgc2FtcGxlIGJ1ZmZlciB3aXRoIGVycm9yICIsIHN0YXRpY19jYXN0PGludD4o
b3N0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHAKaW5kZXggNmJmMGNhNDg3ZGQ2NGRiZWY1MzlkOTQ4ODBmNjI4YzdmYTE2MWJmMS4u
ZTMzYmI2ZGE5ZGRkZDAxYTAwZDk5NmZkOWVmMDJhYzk4MTRhMWViNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC00NSw3ICs0NSw2
IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRM
aW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJl
ZjxSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZTo6Y3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiB2aWRlb1NvdXJjZSkKIHsK
QEAgLTg1LDcgKzg0LDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6
dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICB9CiAKICAgICBB
U1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01T
YW1wbGVCdWZmZXJUeXBlKTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQ
aXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZv
cm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVy
ID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldElt
YWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikp
OwogICAgIGF1dG8gcGl4ZWxGb3JtYXRUeXBlID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0
VHlwZShwaXhlbEJ1ZmZlcik7CiAKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY29u
dmVydGVkQnVmZmVyID0gcGl4ZWxCdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJl
ck1hYy5tbQppbmRleCA3OGJiY2FkMTM5OTg2MmY1NWI5NzBiZTQ3N2YyNTE0YzRmMzQ4NDU0Li4x
MjkzZGE1NTlmOTI5YTdhZWVjNTRkMDdhYTlhZTRmOTk0Zjk1YjQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5k
b3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KQEAgLTQ2LDcgKzQ2LDYgQEAKIFdURl9ERUNMQVJFX0NG
X1RZUEVfVFJBSVQoQ0dJbWFnZSk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKIHN0YXRpYyBib29sIGFueU9mQ0dXaW5kb3coY29uc3QgRnVuY3Rpb248Ym9v
bChDRkRpY3Rpb25hcnlSZWYgaW5mbywgdW5zaWduZWQgaWQsIGNvbnN0IFN0cmluZyYgdGl0bGUp
PiYgcHJlZGljYXRlKQogewo=
</data>
<flag name="commit-queue"
          id="454395"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432374</attachid>
            <date>2021-06-28 02:12:46 -0700</date>
            <delta_ts>2021-06-28 05:29:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227250-20210628191244.patch</filename>
            <type>text/plain</type>
            <size>327426</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc2MGFmZjhiNzMzNTgy
NDE3ZjA3N2M5MDRjOTQ4ZmYyMzgxZWU5Yy4uZGZiN2RkYjllMTQ1ZWFjZjUzOTZhNmI0ZGE3ZDcx
YmQ5Yjc2NTAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOSBAQAorMjAyMS0wNi0yMyAgSmVh
bi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgdXNlcyBv
ZiBBdWRpb1Rvb2xib3ggZnJhbWV3b3JrIHVzZSBzb2Z0IGxpbmtpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI1MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzk2MDYwOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFVuaWZ5IEF1ZGlvVG9vbGJveCwgQ29yZU1lZGlhLCBWaWRlb1Rvb2xib3ggYW5k
IE1lZGlhVG9vbGJveCdzIG1ldGhvZAorICAgICAgICBkZWZpbml0aW9ucyBhbmQgdGhlaXIgdXNl
LCBlbnN1cmluZyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzb2Z0LWxpbmtlZC4KKyAgICAgICAgVW5p
ZmllZCBidWlsZHMgYW5kIHRoZSBpbmNvbnNpc3RlbnQgdXNlIG9mIGV4cGxpY2l0bHkgdXNpbmcg
dGhlIFBBTCBuYW1lc3BhY2UKKyAgICAgICAgY2F1c2VkIHNvbWUgY2FsbHMgdG8gYmUgYW1iaWd1
b3VzIGxlYWRpbmcgdG8gY29tcGlsYXRpb24gZXJyb3JzOyBzb21lCisgICAgICAgIGNvZGUgd291
bGQgYWxzbyB1c2UgdGhlIHNvZnRsaW5rZWQgbWV0aG9kcyB3aGlsZSBvdGhlcnMgY2FsbGVkIGlu
dG8gdGhlIGZyYW1ld29ya3MKKyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIFRvIGdldCBhcm91
bmQgdGhvc2Ugd2UgZW5zdXJlIHRoYXQgYW55IGNhbGxzIHRvIEF1ZGlvVG9vbGJveCBvciBDb3Jl
TWVkaWEgaXMgYWx3YXlzIHVzaW5nCisgICAgICAgIHRoZSBmdWxseSByZXNvbHZlZCBQQUwgbmFt
ZS4KKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGB1c2luZyBuYW1lc3BhY2UgUEFMO2Agc3Rh
dGVtZW50cyB3aGVyZXZlciBhcHBsaWNhYmxlLgorICAgICAgICBObyBjaGFuZ2UgaW4gb2JzZXJ2
YWJsZSBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjp+QXVkaW9GaWxlUmVhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjp+QXVkaW9PdXRwdXRVbml0QWRhcHRvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlzdCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29uZmlndXJl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRVbml0QWRhcHRvck1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmZpbmFsaXplQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5w
cmVwYXJlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2Nlc3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZUltYWdlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjdXJyZW50
TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cGxhdGZvcm1NaW5UaW1lU2Vla2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NYXhUaW1lTG9hZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3VwRGlkQXJyaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBl
cmZvcm1UYXNrQXRNZWRpYVRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6RWZmZWN0aXZlUmF0
ZUNoYW5nZWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEN1cnJlbnRUaW1lRGlk
Q2hhbmdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpk
ZXN0cm95TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjp2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlQ3VycmVudEZyYW1lSW1hZ2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJhaXQ8Q01TYW1wbGVCdWZmZXJS
ZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVh
dGVJbWFnZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnBy
ZXNlbnRhdGlvblRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpkZWNvZGVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQzo6ZHVyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjpzaXplSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFW
Rk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZG9l
c0NNU2FtcGxlQnVmZmVySGF2ZVN5bmNJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1w
bGVCdWZmZXJSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6aXNDTVNhbXBsZUJ1ZmZl
ckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ01TYW1wbGVC
dWZmZXJOb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6cHJlc2VudGF0aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM6Om9mZnNldFRpbWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1w
bGVBVkZPYmpDOjppc0RpdmlzYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNh
bXBsZUFWRk9iakM6OmRpdmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9i
akM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZm
ZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpyZW5kZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFj
a0RhdGE6OmNvbnN1bWVGcmFtZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3Vt
ZUZyYW1lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpB
dWRpb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0NNQ29sb3JQcmltYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQ01U
cmFuc2ZlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0NNWUNiQ1JNYXRy
aXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdURjo6Q0ZUeXBlVHJh
aXQ8Q01TYW1wbGVCdWZmZXJSZWY+Ojp0eXBlSUQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpzZXRUaW1lYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzaG91bGREZWNvZGVTYW1wbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbkZvclNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmRlY29kZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OmhhbmRsZURlY29tcHJlc3Npb25PdXRwdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjph
dXRvbWF0aWNEZXF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjppc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om5vdGlmeVdoZW5I
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldER1cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Y29tcGFyZUJ1ZmZl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjp1cGRh
dGVRb3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpzZWVr
YWJsZVJhbmdlc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5BdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjph
dHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51
bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93
V2F0ZXJUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmdldE91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnRha2VPdXRwdXRTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0Nv
bXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFz
c2V0V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjphcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
YXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVk
aW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNvbXBsZXRlRmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6flZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2
aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjp2dFByb2ZpbGVMZXZlbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFNlc3Npb25TaXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmcmFtZUR1cmF0aW9uRm9yRnJhbWVSYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVByZXNldHMp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2U6OmRldmlj
ZUNsb2NrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
ZXR1cEF1ZGlvVW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFyZWRVbml0Ojpj
b25maWd1cmVNaWNyb3Bob25lUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVTcGVha2VyUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVk
aW9TaGFyZWRVbml0OjpjbGVhbnVwQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlQXVkaW9Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6c3RvcEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRJbnB1dERldmljZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0F1ZGlvU2hhcmVkVW5pdDo6ZW1pdFNhbXBsZUJ1ZmZlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2E6Ok9uRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYTo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW06CisKIDIwMjEtMDYtMjEgIEplYW4t
WXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIG1l
dGhvZCBpbiBBdWRpb0ZpbGVSZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGI2MjY3YzdmNmU5
Y2YwNmRlZDAwMDMzZTFlMmEwZGE5MjY1MTU3ZDcuLjk1OTEyMWY2NzgxNzJiNGVlODA2Njc2ZjBk
YTcxNzg5ZDdjY2Q2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIx
LTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgTm90
IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MjUwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgor
ICAgICAgICAqIHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWV0aG9kcyB3aG9z
ZSBkZWZpbml0aW9ucyB3ZXJlIHNjYXR0ZXJlZCBhY3Jvc3MKKyAgICAgICAgdGhlIGNvZGUuCisg
ICAgICAgICogcGFsL2NvY29hL01lZGlhVG9vbGJveFNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBw
YWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaDogU2FtZSBhcyBhYm92ZS4KKyAgICAgICAg
KiBwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9BdWRp
b1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisgICAgICAgICogcGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaDogQWRkIG1pc3NpbmcgbWV0aG9kczsgUmVzaHVmZmxlZCBkZWZpbml0aW9ucyBhcyBtYW55
IGRpZG4ndAorICAgICAgICBleGlzdCBvbiBXaW5kb3dzLCB5ZXQgY291bGQgcG90ZW50aWFsbHkg
YmUgbG9hZGVkIGFuZCBlcnJvci4KKyAgICAgICAgKiBwYWwvY2YvVmlkZW9Ub29sYm94U29mdExp
bmsuY3BwOgorICAgICAgICAqIHBhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlz
c2luZyBtZXRob2RzIGFuZCBmaXggc29tZSBzcGVsbGluZyBpbiBkZWZpbmUgbmFtZXMKKyAgICAg
ICAgKiBwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwOgorICAgICAgICAqIHBhbC9j
b2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oOiBBZGQgbWlzc2luZyBtZXRob2RzCisKIDIwMjEt
MDYtMjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01v
ZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIG1vZGVsIHJlc291cmNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA3ODQ3OWUyYTFiMjIwM2YwOTVmZWQzNTg1OTQ5MGFmZGU3YTA4M2NjLi4zYmYyMThm
ZDZlYTAxMTU5MGExMjFjZTM2OTA0YmM3OTE0OTliZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDIxLTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAg
ICAgICAgTm90IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlu
a2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
MjUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTYwNjA5MD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1
ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbnN1bWVB
dWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0
ZVdyYXBwZXIpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwcGVyU3RvcmFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OndyYXBwZXJWVGFibGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1h
dFJlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFT
YW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y29uc3VtZUF1ZGlvQ29tcG9uZW50UmVn
aXN0cmF0aW9ucyk6CisKIDIwMjEtMDYtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBpT1MgYnVpbGQgYWZ0ZXIg
cmRhcjovLzc2NzgxODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggNmE4MjNkNjFhZDEw
MTAzMmJiZTE5NGE2MmI1YjYxNTZkMjNjYWIxMi4uMDljMmVhMzI5YzJjMGNhNmVlNmY3YmEzYTJj
NDRhZGY4MzQ4ZTVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtNTMsOCArNTMsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KICNpZiAh
VVNFKExJQldFQlJUQykKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGVlckNvbm5lY3Rpb25CYWNr
ZW5kPiBjcmVhdGVOb1BlZXJDb25uZWN0aW9uQmFja2VuZChSVENQZWVyQ29ubmVjdGlvbiYpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KaW5kZXggNDAwZjliOGQxNmI1OTNiNDg1ZTAwYzdmNzhm
NTlkZTk4ZGMzN2Q5Zi4uNzQ5OTRlMmM1MTAwZWNhYmE2MTU5MGZiMTE4MGFhMGJjMzdiMGRiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpAQCAtNTgsNyArNTgsNiBAQAogI2ltcG9ydCA8cGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogc3RhdGljIEpT
VmFsdWUgKmpzVmFsdWVXaXRoVmFsdWVJbkNvbnRleHQoaWQsIEpTQ29udGV4dCAqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZUNvY29hLmNwcAppbmRleCA1YjEzNWIzOWE1YTBhMWQ4MDFiZTY4NzhmYmRm
ZjY3NjZjMmU4YWNlLi5mMWMyYWYzM2M1ZmEyYWI2ZmM1MTY2OTk4M2ZhNzBlNzY5NjQwMjgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAjaW5jbHVk
ZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExp
bmsuaCIKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgaW5saW5lIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBzdHJlYW1EZXNjcmlwdGlvbihz
aXplX3Qgc2FtcGxlUmF0ZSwgc2l6ZV90IGNoYW5uZWxDb3VudCkKQEAgLTcxLDcgKzY5LDcgQEAg
dm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjb25zdW1lQXVkaW8oQXVkaW9CdXMmIGJ1cywg
c2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ01U
aW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2UobV9udW1iZXJPZkZyYW1lcywgbV9jdXJyZW50U2V0
dGluZ3Muc2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVN
YWtlKG1fbnVtYmVyT2ZGcmFtZXMsIG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSk7CiAg
ICAgYXV0byBtZWRpYVRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKHN0YXJ0VGltZSk7CiAgICAgbV9u
dW1iZXJPZkZyYW1lcyArPSBudW1iZXJPZkZyYW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCA2N2I3OGY0NmE3ODEx
Nzg4OGYwMGQwODk3ZGJhNTdlN2FjNTM4NTAyLi4zMzNhYTIyNGM3MWE3NTBjZDlhMGY2OWY3ODNk
ZDAxNTk3NTEwYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMjYsMjAgKzI2LDQ2IEBACiAKICNpZiBVU0UoQVZGT1VO
REFUSU9OKQogCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29tcG9uZW50Lmg+CiAjaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CisjaW5jbHVkZSA8QXVkaW9Ub29s
Ym94L0F1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1hdC5oPgot
CisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvVW5pdC5oPgorI2luY2x1ZGUgPEF1ZGlvVG9v
bGJveC9FeHRlbmRlZEF1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgog
CiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZU
X0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEF1ZGlv
VG9vbGJveENvcmUsIFBBTF9FWFBPUlQpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbywgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIG91dFNpemUsIEJvb2xlYW4qIG91dFdyaXRh
YmxlKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgb3V0U2l6ZSwgb3V0V3JpdGFi
bGUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1
ZGlvRm9ybWF0R2V0UHJvcGVydHksIE9TU3RhdHVzLCAoQXVkaW9Gb3JtYXRQcm9wZXJ0eUlEIGlu
UHJvcGVydHlJRCwgVUludDMyIGluU3BlY2lmaWVyU2l6ZSwgY29uc3Qgdm9pZCogaW5TcGVjaWZp
ZXIsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQcm9wZXJ0eURhdGEpLCAo
aW5Qcm9wZXJ0eUlELCBpblNwZWNpZmllclNpemUsIGluU3BlY2lmaWVyLCBpb1Byb3BlcnR5RGF0
YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJl
Ziogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3Jt
YXQsIG91dEF1ZGlvQ29udmVydGVyKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckRpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9D
b252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciksIChpbkF1ZGlvQ29udmVydGVyKSkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRl
clNldFByb3BlcnR5LCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0
ZXIsIEF1ZGlvQ29udmVydGVyUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3Bl
cnR5RGF0YVNpemUsIGNvbnN0IHZvaWQqIGluUHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFTaXplLCBpblByb3BlcnR5RGF0YSkpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlv
UHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29u
dmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0ZXJSZWYg
aW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBjb25zdCBBdWRpb0J1
ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEpLCAo
aW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXREYXRhLCBvdXRPdXRw
dXREYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94
LCBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVy
dGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyQ29tcGxleElucHV0RGF0YVBy
b2MgaW5JbnB1dERhdGFQcm9jLCB2b2lkKiBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwgVUludDMy
KiBpb091dHB1dERhdGFQYWNrZXRTaXplLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91dHB1dERhdGEs
IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24qIG91dFBhY2tldERlc2NyaXB0aW9uKSwgKGlu
QXVkaW9Db252ZXJ0ZXIsIGluSW5wdXREYXRhUHJvYywgaW5JbnB1dERhdGFQcm9jVXNlckRhdGEs
IGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIG91dE91dHB1dERhdGEsIG91dFBhY2tldERlc2NyaXB0
aW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBB
dWRpb091dHB1dFVuaXRTdGFydCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvT3V0cHV0
VW5pdFN0b3AsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEluc3RhbmNl
RGlzcG9zZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudEluc3RhbmNlIGluSW5zdGFuY2UpLCAo
aW5JbnN0YW5jZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9v
bGJveCwgQXVkaW9Db21wb25lbnRDb3B5TmFtZSwgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBp
bkNvbXBvbmVudCwgQ0ZTdHJpbmdSZWYqIG91dE5hbWUpLCAoaW5Db21wb25lbnQsIG91dE5hbWUp
KQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRp
b25zLCBPU1N0YXR1cywgKENGRGF0YVJlZiogb3V0QnVuZGxlUmVnaXN0cmF0aW9ucyksIChvdXRC
dW5kbGVSZWdpc3RyYXRpb25zKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQXVkaW9Ub29sYm94Q29yZSwgQXVkaW9D
b21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJhdGlvbnMsIE9TU3RhdHVzLCAoQ0ZEYXRhUmVmIGlu
QnVuZGxlUmVnaXN0cmF0aW9ucyksIChpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCBQQUxfRVhQT1JU
KQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVk
aW9GaWxlQ2xvc2UsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5BdWRpb0ZpbGUpLCAoaW5BdWRp
b0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZvaWQgKmluQ2xpZW50RGF0
YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmlsZV9Xcml0ZVByb2MgaW5X
cml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVGdW5jLCBBdWRpb0ZpbGVf
U2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlEIGluRmlsZVR5cGVIaW50
LCBBdWRpb0ZpbGVJRCAqb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0YSwgaW5SZWFkRnVuYywg
aW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMsIGluRmlsZVR5cGVIaW50
LCBvdXRBdWRpb0ZpbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRp
b1Rvb2xib3gsIEV4dEF1ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVm
IGluRXh0QXVkaW9GaWxlKSwgKGluRXh0QXVkaW9GaWxlKSkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0ZpbGUsIEV4dEF1ZGlvRmlsZVByb3Bl
cnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgKmlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCAqb3V0
UHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxlLCBpblByb3BlcnR5SUQsIGlvUHJvcGVydHlE
YXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlv
RmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyICppb051bWJlckZyYW1lcywgQXVkaW9CdWZm
ZXJMaXN0ICppb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEp
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZVNldFByb3BlcnR5LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlv
RmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiBpblByb3Bl
cnR5RGF0YVNpemUsIGNvbnN0IHZvaWQgKmluUHJvcGVydHlEYXRhKSwgKGluRXh0QXVkaW9GaWxl
LCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmls
ZVdyYXBBdWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVh
biBpbkZvcldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiAqb3V0RXh0QXVkaW9GaWxlKSwgKGluRmls
ZUlELCBpbkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0
dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxlUmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAo
aW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbXBvbmVudEZpbmROZXh0LCBBdWRpb0NvbXBvbmVu
dCwgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBjb25zdCBBdWRpb0NvbXBvbmVudERlc2Ny
aXB0aW9uKiBpbkRlc2MpLCAoaW5Db21wb25lbnQsIGluRGVzYykpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25lbnRJbnN0YW5jZU5l
dywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQXVkaW9Db21wb25lbnRJ
bnN0YW5jZSogb3V0SW5zdGFuY2UpLCAoaW5Db21wb25lbnQsIG91dEluc3RhbmNlKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQ
cm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlE
IGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50
LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNj
b3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0YVNpemUpKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEluaXRpYWxpemUsIE9TU3Rh
dHVzLCAoQXVkaW9Vbml0IGluVW5pdCksIChpblVuaXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0
U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGlu
RGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1l
bnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCiAKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGlu
ay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oCmlu
ZGV4IDQ5ZTMyZTE3OTQwMzYzYjg0OTc3NDQzNWJkMjA5NWU2NGFiNDg4MWIuLmRkZjEzYTAyN2E0
NWEyMmI4Mzk4ZDEzNWU4ZTBiM2RmYzY4NTUyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTI2LDI3ICsyNiwxMTQgQEAKIAog
I2lmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlw
ZXMuaD4KICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogdHlwZWRlZiBVSW50MzIgQXVk
aW9Db252ZXJ0ZXJQcm9wZXJ0eUlEOwogdHlwZWRlZiBVSW50MzIgQXVkaW9Gb3JtYXRQcm9wZXJ0
eUlEOwogdHlwZWRlZiBzdHJ1Y3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29udmVydGVy
KiBBdWRpb0NvbnZlcnRlclJlZjsKK3R5cGVkZWYgc3RydWN0IEF1ZGlvQnVmZmVyTGlzdCBBdWRp
b0J1ZmZlckxpc3Q7Cit0eXBlZGVmIE9TU3RhdHVzICgqQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5w
dXREYXRhUHJvYykoQXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwKKyAgICBVSW50
MzIqIGlvTnVtYmVyRGF0YVBhY2tldHMsCisgICAgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEsCisg
ICAgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbioqIG91dERhdGFQYWNrZXREZXNjcmlwdGlv
biwKKyAgICB2b2lkKiBpblVzZXJEYXRhKTsKKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlRXh0QXVk
aW9GaWxlKiBFeHRBdWRpb0ZpbGVSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0ZpbGVJ
RCogQXVkaW9GaWxlSUQ7Cit0eXBlZGVmIFVJbnQzMiBBdWRpb0ZpbGVUeXBlSUQ7Cit0eXBlZGVm
IFVJbnQzMiBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlv
RmlsZV9SZWFkUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBpblBv
c2l0aW9uLAorICAgIFVJbnQzMiByZXF1ZXN0Q291bnQsCisgICAgdm9pZCogYnVmZmVyLAorICAg
IFVJbnQzMiogYWN0dWFsQ291bnQpOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlvRmlsZV9Xcml0
ZVByb2MpKAorICAgIHZvaWQqIGluQ2xpZW50RGF0YSwKKyAgICBTSW50NjQgaW5Qb3NpdGlvbiwK
KyAgICBVSW50MzIgcmVxdWVzdENvdW50LAorICAgIGNvbnN0IHZvaWQqIGJ1ZmZlciwKKyAgICBV
SW50MzIqIGFjdHVhbENvdW50KTsKK3R5cGVkZWYgU0ludDY0ICgqQXVkaW9GaWxlX0dldFNpemVQ
cm9jKSgKKyAgICB2b2lkKiBpbkNsaWVudERhdGEpOwordHlwZWRlZiBPU1N0YXR1cyAoKkF1ZGlv
RmlsZV9TZXRTaXplUHJvYykoCisgICAgdm9pZCogaW5DbGllbnREYXRhLAorICAgIFNJbnQ2NCBp
blNpemUpOwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQXVkaW9Db21wb25lbnQqIEF1ZGlvQ29tcG9u
ZW50OworCisjaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoZGVmaW5lZChBVURJT0NPTVBPTkVOVF9O
T0NBUkJPTklOU1RBTkNFUykgJiYgQVVESU9DT01QT05FTlRfTk9DQVJCT05JTlNUQU5DRVMpCit0
eXBlZGVmIHN0cnVjdCBPcGFxdWVBdWRpb0NvbXBvbmVudEluc3RhbmNlKiBBdWRpb0NvbXBvbmVu
dEluc3RhbmNlOworI2Vsc2UKK3R5cGVkZWYgc3RydWN0IENvbXBvbmVudEluc3RhbmNlUmVjb3Jk
KiBBdWRpb0NvbXBvbmVudEluc3RhbmNlOworI2VuZGlmCit0eXBlZGVmIEF1ZGlvQ29tcG9uZW50
SW5zdGFuY2UgQXVkaW9Vbml0OworCit0eXBlZGVmIHN0cnVjdCBBdWRpb0NvbXBvbmVudERlc2Ny
aXB0aW9uIEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb247Cit0eXBlZGVmIFVJbnQzMiBBdWRpb1Vu
aXRQcm9wZXJ0eUlEOwordHlwZWRlZiBVSW50MzIgQXVkaW9Vbml0U2NvcGU7Cit0eXBlZGVmIFVJ
bnQzMiBBdWRpb1VuaXRFbGVtZW50OwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIo
UEFMLCBBdWRpb1Rvb2xib3gpCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3hDb3JlKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1
ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8sIE9TU3RhdHVzLCAoQXVk
aW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyKiBvdXRTaXplLCBCb29sZWFuKiBvdXRXcml0YWJsZSksIChp
bkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQsIG91dFNpemUsIG91dFdyaXRhYmxlKSkKKyNk
ZWZpbmUgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eUluZm8gc29mdExpbmtfQXVkaW9Ub29sYm94
X0F1ZGlvQ29udmVydGVyR2V0UHJvcGVydHlJbmZvCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0
dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRlclBy
b3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlvUHJvcGVydHlEYXRhU2l6ZSwgdm9pZCog
b3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9w
ZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQogI2RlZmluZSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckdldFByb3BlcnR5
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9D
b252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
KiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRl
c3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAo
aW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkK
ICNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29u
dmVydGVyTmV3CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJv
eCwgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlLCBPU1N0YXR1cywgKEF1ZGlvQ29udmVydGVyUmVmIGlu
QXVkaW9Db252ZXJ0ZXIpLCAoaW5BdWRpb0NvbnZlcnRlcikpCisjZGVmaW5lIEF1ZGlvQ29udmVy
dGVyRGlzcG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJEaXNwb3NlCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Q
cm9wZXJ0eURhdGFTaXplLCBjb25zdCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29u
dmVydGVyLCBpblByb3BlcnR5SUQsIGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEp
KQogI2RlZmluZSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJv
eF9BdWRpb0NvbnZlcnRlclNldFByb3BlcnR5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChB
dWRpb0Zvcm1hdFByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXpl
LCBjb25zdCB2b2lkKiBpblNwZWNpZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZv
aWQqIG91dFByb3BlcnR5RGF0YSksIChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5T
cGVjaWZpZXIsIGlvUHJvcGVydHlEYXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKICNkZWZpbmUg
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Gb3JtYXRH
ZXRQcm9wZXJ0eQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xi
b3gsIEF1ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9D
b252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgVUludDMyIGluTnVtYmVyUENNRnJhbWVzLCBj
b25zdCBBdWRpb0J1ZmZlckxpc3QqIGluSW5wdXREYXRhLCBBdWRpb0J1ZmZlckxpc3QqIG91dE91
dHB1dERhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5OdW1iZXJQQ01GcmFtZXMsIGluSW5wdXRE
YXRhLCBvdXRPdXRwdXREYXRhKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxl
eEJ1ZmZlciBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxl
eEJ1ZmZlcgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIsIE9TU3RhdHVzLCAoQXVkaW9Db252ZXJ0
ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJv
YyBpbklucHV0RGF0YVByb2MsIHZvaWQqIGluSW5wdXREYXRhUHJvY1VzZXJEYXRhLCBVSW50MzIq
IGlvT3V0cHV0RGF0YVBhY2tldFNpemUsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSwg
QXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogb3V0UGFja2V0RGVzY3JpcHRpb24pLCAoaW5B
dWRpb0NvbnZlcnRlciwgaW5JbnB1dERhdGFQcm9jLCBpbklucHV0RGF0YVByb2NVc2VyRGF0YSwg
aW9PdXRwdXREYXRhUGFja2V0U2l6ZSwgb3V0T3V0cHV0RGF0YSwgb3V0UGFja2V0RGVzY3JpcHRp
b24pKQorI2RlZmluZSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyIHNvZnRMaW5rX0F1
ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0U3RhcnQs
IE9TU3RhdHVzLCAoQXVkaW9Vbml0IGNpKSwgKGNpKSkKKyNkZWZpbmUgQXVkaW9PdXRwdXRVbml0
U3RhcnQgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvT3V0cHV0VW5pdFN0YXJ0CitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9PdXRwdXRVbml0
U3RvcCwgT1NTdGF0dXMsIChBdWRpb1VuaXQgY2kpLCAoY2kpKQorI2RlZmluZSBBdWRpb091dHB1
dFVuaXRTdG9wIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb091dHB1dFVuaXRTdG9wCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25l
bnRJbnN0YW5jZURpc3Bvc2UsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnRJbnN0YW5jZSBpbklu
c3RhbmNlKSwgKGluSW5zdGFuY2UpKQorI2RlZmluZSBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlz
cG9zZSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bvc2UK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0Nv
bXBvbmVudENvcHlOYW1lLCBPU1N0YXR1cywgKEF1ZGlvQ29tcG9uZW50IGluQ29tcG9uZW50LCBD
RlN0cmluZ1JlZiogb3V0TmFtZSksIChpbkNvbXBvbmVudCwgb3V0TmFtZSkpCisjZGVmaW5lIEF1
ZGlvQ29tcG9uZW50Q29weU5hbWUgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29tcG9uZW50
Q29weU5hbWUKKwogU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBB
dWRpb1Rvb2xib3hDb3JlLCBBdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9ucywg
T1NTdGF0dXMsIChDRkRhdGFSZWYqIG91dEJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAob3V0QnVuZGxl
UmVnaXN0cmF0aW9ucykpCiAjZGVmaW5lIEF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3Ry
YXRpb25zIHNvZnRMaW5rQXVkaW9Ub29sYm94Q29yZUF1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJS
ZWdpc3RyYXRpb25zCiBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveENvcmUsIEF1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25z
LCBPU1N0YXR1cywgKENGRGF0YVJlZiBpbkJ1bmRsZVJlZ2lzdHJhdGlvbnMpLCAoaW5CdW5kbGVS
ZWdpc3RyYXRpb25zKSkKICNkZWZpbmUgQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJlZ2lzdHJh
dGlvbnMgc29mdExpbmtBdWRpb1Rvb2xib3hDb3JlQXVkaW9Db21wb25lbnRBcHBseVNlcnZlclJl
Z2lzdHJhdGlvbnMKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rv
b2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxl
KSwgKGluQXVkaW9GaWxlKSkKKyNkZWZpbmUgQXVkaW9GaWxlQ2xvc2Ugc29mdExpbmtfQXVkaW9U
b29sYm94X0F1ZGlvRmlsZUNsb3NlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IEF1ZGlvVG9vbGJveCwgQXVkaW9GaWxlT3BlbldpdGhDYWxsYmFja3MsIE9TU3RhdHVzLCAodm9p
ZCogaW5DbGllbnREYXRhLCBBdWRpb0ZpbGVfUmVhZFByb2MgaW5SZWFkRnVuYywgQXVkaW9GaWxl
X1dyaXRlUHJvYyBpbldyaXRlRnVuYywgQXVkaW9GaWxlX0dldFNpemVQcm9jIGluR2V0U2l6ZUZ1
bmMsIEF1ZGlvRmlsZV9TZXRTaXplUHJvYyBpblNldFNpemVGdW5jLCBBdWRpb0ZpbGVUeXBlSUQg
aW5GaWxlVHlwZUhpbnQsIEF1ZGlvRmlsZUlEKiBvdXRBdWRpb0ZpbGUpLCAoaW5DbGllbnREYXRh
LCBpblJlYWRGdW5jLCBpbldyaXRlRnVuYywgaW5HZXRTaXplRnVuYywgaW5TZXRTaXplRnVuYywg
aW5GaWxlVHlwZUhpbnQsIG91dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEF1ZGlvRmlsZU9wZW5XaXRo
Q2FsbGJhY2tzIHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0ZpbGVPcGVuV2l0aENhbGxiYWNr
cworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1
ZGlvRmlsZURpc3Bvc2UsIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxl
KSwgKGluRXh0QXVkaW9GaWxlKSkKKyNkZWZpbmUgRXh0QXVkaW9GaWxlRGlzcG9zZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlRGlzcG9zZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5LCBPU1N0
YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgRXh0QXVkaW9GaWxlUHJvcGVy
dHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBvdXRQ
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURh
dGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0
eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFk
LCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJlZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyKiBpb051
bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlv
TnVtYmVyRnJhbWVzLCBpb0RhdGEpKQorI2RlZmluZSBFeHRBdWRpb0ZpbGVSZWFkIHNvZnRMaW5r
X0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVSZWFkCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVz
LCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlE
IGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCogaW5Q
cm9wZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURh
dGFTaXplLCBpblByb3BlcnR5RGF0YSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5
IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9FeHRBdWRpb0ZpbGVTZXRQcm9wZXJ0eQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCwgT1NTdGF0dXMsIChBdWRpb0ZpbGVJRCBpbkZpbGVJRCwgQm9vbGVhbiBpbkZv
cldyaXRpbmcsIEV4dEF1ZGlvRmlsZVJlZiogb3V0RXh0QXVkaW9GaWxlKSwgKGluRmlsZUlELCBp
bkZvcldyaXRpbmcsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5lIEV4dEF1ZGlvRmlsZVdyYXBB
dWRpb0ZpbGVJRCBzb2Z0TGlua19BdWRpb1Rvb2xib3hfRXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmls
ZUlECitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgRXh0
QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0QXVkaW9GaWxl
UmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkpCisjZGVmaW5l
IEV4dEF1ZGlvRmlsZU9wZW5VUkwgc29mdExpbmtfQXVkaW9Ub29sYm94X0V4dEF1ZGlvRmlsZU9w
ZW5VUkwKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gs
IEF1ZGlvQ29tcG9uZW50RmluZE5leHQsIEF1ZGlvQ29tcG9uZW50LCAoQXVkaW9Db21wb25lbnQg
aW5Db21wb25lbnQsIGNvbnN0IEF1ZGlvQ29tcG9uZW50RGVzY3JpcHRpb24qIGluRGVzYyksIChp
bkNvbXBvbmVudCwgaW5EZXNjKSkKKyNkZWZpbmUgQXVkaW9Db21wb25lbnRGaW5kTmV4dCBzb2Z0
TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Db21wb25lbnRGaW5kTmV4dAorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VO
ZXcsIE9TU3RhdHVzLCAoQXVkaW9Db21wb25lbnQgaW5Db21wb25lbnQsIEF1ZGlvQ29tcG9uZW50
SW5zdGFuY2UqIG91dEluc3RhbmNlKSwgKGluQ29tcG9uZW50LCBvdXRJbnN0YW5jZSkpCisjZGVm
aW5lIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcgc29mdExpbmtfQXVkaW9Ub29sYm94X0F1ZGlv
Q29tcG9uZW50SW5zdGFuY2VOZXcKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
QXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQg
aW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUs
IEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCB2b2lkKiBvdXREYXRhLCBVSW50MzIqIGlvRGF0
YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0
YVNpemUpKQorI2RlZmluZSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSBzb2Z0TGlua19BdWRpb1Rvb2xi
b3hfQXVkaW9Vbml0R2V0UHJvcGVydHkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQXVkaW9Ub29sYm94LCBBdWRpb1VuaXRJbml0aWFsaXplLCBPU1N0YXR1cywgKEF1ZGlvVW5p
dCBpblVuaXQpLCAoaW5Vbml0KSkKKyNkZWZpbmUgQXVkaW9Vbml0SW5pdGlhbGl6ZSBzb2Z0TGlu
a19BdWRpb1Rvb2xib3hfQXVkaW9Vbml0SW5pdGlhbGl6ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdFNldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvVW5pdCBpblVuaXQsIEF1ZGlvVW5pdFByb3BlcnR5SUQgaW5JRCwgQXVkaW9Vbml0
U2NvcGUgaW5TY29wZSwgQXVkaW9Vbml0RWxlbWVudCBpbkVsZW1lbnQsIGNvbnN0IHZvaWQqIGlu
RGF0YSwgVUludDMyIGluRGF0YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1l
bnQsIGluRGF0YSwgaW5EYXRhU2l6ZSkpCisjZGVmaW5lIEF1ZGlvVW5pdFNldFByb3BlcnR5IHNv
ZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb1VuaXRTZXRQcm9wZXJ0eQorCiAjZW5kaWYgLy8gVVNF
KEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5jcHAKaW5kZXggYzE0MzkyYmEyYzkxNDJkNTFiNDc0ZTdkMjQ0ODBiOTcxOWY4YTRj
Ni4uNWYyZmIwNWU0Mzg0YzllMTUxNTExZjNjMjBjYTU4MTU0MGMwMWFkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgPENvcmVNZWRpYS9DTUJ1ZmZlclF1ZXVlLmg+CiAjaW5jbHVkZSA8Q29yZVZp
ZGVvL0NvcmVWaWRlby5oPgogI2VuZGlmCiAKQEAgLTUzLDggKzU0LDEwIEBAIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldERhdGFCCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiwgQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUluZGV4IHNhbXBsZUluZGV4LCBDTVNhbXBsZVRp
bWluZ0luZm8qIHRpbWluZ0luZm9PdXQpLCAoc2J1Ziwgc2FtcGxlSW5kZXgsIHRpbWluZ0luZm9P
dXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHksIEJvb2xlYW4sIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbXBh
cmUsIGludDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIp
LCBQQUxfRVhQT1JUKQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01UaW1lQWRkLCBDTVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGlt
ZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbXBhcmUsIGlu
dDMyX3QsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUsIGludDMy
X3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGltZSwgbmV3
VGltZXNjYWxlLCBtZXRob2QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0
NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYWtlLCBDTVRp
bWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2FsZSksICh2YWx1ZSwgdGltZXNjYWxl
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYWtlV2l0aFNlY29uZHMsIENNVGltZSwgKEZsb2F0NjQg
c2Vjb25kcywgaW50MzJfdCBwcmVmZXJyZWRUaW1lU2NhbGUpLCAoc2Vjb25kcywgcHJlZmVycmVk
VGltZVNjYWxlKSwgUEFMX0VYUE9SVCkKQEAgLTYyLDYgKzY1LDE1IEBAIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVTdWJ0cmFj
dCwgQ01UaW1lCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VHZXRFbmQsIENNVGltZSwgKENNVGltZVJhbmdlIHJhbmdl
KSwgKHJhbmdlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZU1ha2UsIENNVGltZVJhbmdlLCAo
Q01UaW1lIHN0YXJ0LCBDTVRpbWUgZHVyYXRpb24pLCAoc3RhcnQsIGR1cmF0aW9uKSwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTVRpbWVSYW5nZUVxdWFsLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UxLCBD
TVRpbWVSYW5nZSByYW5nZTIpLCAocmFuZ2UxLCByYW5nZTIpLCBQQUxfRVhQT1JUKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZU1heGltdW0sIENNVGltZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0
aW1lMiksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUx
LCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5n
ZUNvbnRhaW5zVGltZSwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdlLCBDTVRpbWUgdGltZSks
IChyYW5nZSwgdGltZSksIFBBTF9FWFBPUlQpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW52YWxpZCwgQ01UaW1lLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBDb3JlTWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZVBv
c2l0aXZlSW5maW5pdHksIENNVGltZSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUmFuZ2VJbnZhbGlk
LCBDTVRpbWVSYW5nZSwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSwg
UEFMX0VYUE9SVCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2Ny
aXB0aW9uRXh0ZW5zaW9uQXRvbXMsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1h
dERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9S
VCkKQEAgLTc0LDYgKzg2LDcgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHIKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSwgQ0ZTdHJpbmdSZWYs
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRF
X1NUXzQyOF8xLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlv
bllDYkNyTWF0cml4X0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQorCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NN
VGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5kLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBr
Q01UZXh0TWFya3VwQWxpZ25tZW50VHlwZV9NaWRkbGUsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX1N0YXJ0LCBDRlN0cmluZ1JlZiwgUEFMX0VY
UE9SVCkKQEAgLTkzLDIwICsxMDYsMjMgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRleHRNYXJrdXBBdHRyaWJ1dGUKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01U
ZXh0TWFya3VwQXR0cmlidXRlX1dyaXRpbmdEaXJlY3Rpb25TaXplUGVyY2VudGFnZSwgQ0ZTdHJp
bmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X0xlZnRUb1JpZ2h0LCBD
RlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UZXh0VmVydGljYWxMYXlvdXRfUmlnaHRUb0xl
ZnQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbnZhbGlkLCBDTVRpbWUsIFBB
TF9FWFBPUlQpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwga0NNVGltZVplcm8sIENNVGltZSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lUG9z
aXRpdmVJbmZpbml0eSwgQ01UaW1lLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGltZVJhbmdl
KTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1
YlR5cGUsIEZvdXJDaGFyQ29kZSwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNj
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlLCBDTU1lZGlh
VHlwZSwgKENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9SVCkK
KworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeSwgT1NTdGF0dXMsIChDTUJsb2NrQnVm
ZmVyUmVmIHRoZUJ1ZmZlciksICh0aGVCdWZmZXIpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJHZXREYXRhUG9pbnRlciwgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZUJ1ZmZlciwg
c2l6ZV90IG9mZnNldCwgc2l6ZV90KiBsZW5ndGhBdE9mZnNldE91dCwgc2l6ZV90KiB0b3RhbExl
bmd0aE91dCwgY2hhcioqIGRhdGFQb2ludGVyT3V0KSwgKHRoZUJ1ZmZlciwgb2Zmc2V0LCBsZW5n
dGhBdE9mZnNldE91dCwgdG90YWxMZW5ndGhPdXQsIGRhdGFQb2ludGVyT3V0KSwgUEFMX0VYUE9S
VCkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExvY2FsQ2VudGVyLCBDTU5vdGlm
aWNhdGlvbkNlbnRlclJlZiwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTU5vdGlmaWNhdGlv
bkNlbnRlckFkZExpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNl
bnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJh
Y2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogb2JqZWN0LCBVSW50MzIg
ZmxhZ3MpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJhY2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0
LCBmbGFncyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5l
ciwgT1NTdGF0dXMsIChDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIGNvbnN0IHZvaWQq
IGxpc3RlbmVyLCBDTU5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBDRlN0cmluZ1JlZiBu
b3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIG9iamVjdCksIChjZW50ZXIsIGxpc3RlbmVyLCBjYWxs
YmFjaywgbm90aWZpY2F0aW9uLCBvYmplY3QpLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZl
clJlZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0
YVJlYWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkICptYWtlRGF0YVJlYWR5
UmVmY29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1D
b3VudCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25z
dCBDTVNhbXBsZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1T
YW1wbGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90ICpzYW1wbGVTaXplQXJyYXksIENNU2FtcGxl
QnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBt
YWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0
aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJh
eSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCksIFBBTF9F
WFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYg
KnNidWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JU
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENN
SXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5m
byAqc2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmICpzQnVmQ29weU91dCksIChh
bGxvY2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGlt
aW5nQXJyYXksIHNCdWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHksIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVm
ZmVyUmVmIGRhdGFCdWZmZXIsIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0Vu
dHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRl
bUNvdW50IG51bVNhbXBsZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJh
eSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNhbXBsZUJ1ZmZlck91dCksIChhbGxvY2F0b3IsIGRhdGFC
dWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRy
aWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgbnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVB
cnJheSwgc2FtcGxlQnVmZmVyT3V0KSwgUEFMX0VYUE9SVCkKKworU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJl
ZiBkYXRhQnVmZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJl
YWR5Q2FsbGJhY2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVm
Y29uLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBD
TVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVm
ZmVyUmVmKiBzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtl
RGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9u
LCBudW1TYW1wbGVzLCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwg
bnVtU2FtcGxlU2l6ZUVudHJpZXMsIHNhbXBsZVNpemVBcnJheSwgc0J1Zk91dCksIFBBTF9FWFBP
UlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYqIHNi
dWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpLCBQQUxfRVhQT1JUKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcsIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBvcmlnaW5hbFNCdWYsIENNSXRl
bUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyog
c2FtcGxlVGltaW5nQXJyYXksIENNU2FtcGxlQnVmZmVyUmVmKiBzQnVmQ29weU91dCksIChhbGxv
Y2F0b3IsIG9yaWdpbmFsU0J1ZiwgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5n
QXJyYXksIHNCdWZDb3B5T3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5V2l0aEltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdERlc2NyaXB0aW9uLCBjb25zdCBDTVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWlu
ZywgQ01TYW1wbGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBpbWFnZUJ1ZmZlciwg
Zm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZVRpbWluZywgc0J1Zk91dCksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01TYW1wbGVCdWZmZXJDcmVhdGVGb3JJbWFnZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIEJvb2xlYW4gZGF0
YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5
Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZjb24sIENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1w
bGVUaW1pbmcsIENNU2FtcGxlQnVmZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9y
LCBpbWFnZUJ1ZmZlciwgZGF0YVJlYWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRh
UmVhZHlSZWZjb24sIGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNhbXBsZUJ1ZmZl
ck91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAsIENN
VGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBPUlQpCkBAIC0x
MTYsMTQgKzEzMiwxNSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRQcmVzZQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0T3V0cHV0RHVyYXRpb24sIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1
ZiksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1l
U3RhbXAsIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZiksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5LCBDRkFycmF5UmVm
LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQm9vbGVhbiBjcmVhdGVJZk5lY2Vzc2FyeSksIChz
YnVmLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1Ziwg
Q01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWluZ0luZm8gKnRpbWlu
Z0FycmF5T3V0LCBDTUl0ZW1Db3VudCAqdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwgKHNi
dWYsIHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWluZ0FycmF5RW50cmll
c05lZWRlZE91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01UaW1lQ29udmVydFNjYWxlLCBDTVRpbWUsIChD
TVRpbWUgdGltZSwgaW50MzJfdCBuZXdUaW1lc2NhbGUsIENNVGltZVJvdW5kaW5nTWV0aG9kIG1l
dGhvZCksICh0aW1lLCBuZXdUaW1lc2NhbGUsIG1ldGhvZCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgdGltaW5nQXJyYXlFbnRyaWVzLCBDTVNhbXBsZVRpbWlu
Z0luZm8qIHRpbWluZ0FycmF5T3V0LCBDTUl0ZW1Db3VudCogdGltaW5nQXJyYXlFbnRyaWVzTmVl
ZGVkT3V0KSwgKHNidWYsIHRpbWluZ0FycmF5RW50cmllcywgdGltaW5nQXJyYXlPdXQsIHRpbWlu
Z0FycmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRU
b3RhbFNhbXBsZVNpemUsIHNpemVfdCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1Ziks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyLCBPU1N0YXR1cywgKENN
U2FtcGxlQnVmZmVyUmVmIHNidWYsIENNQmxvY2tCdWZmZXJSZWYgYnVmZmVyKSwgKHNidWYsIGJ1
ZmZlciksIFBBTF9FWFBPUlQpCisKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUdldEF0dGFjaG1lbnQsIENGVHlwZVJlZiwgKENNQXR0
YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyaW5nUmVmIGtleSwgQ01BdHRhY2htZW50TW9k
ZSogYXR0YWNobWVudE1vZGVPdXQpLCAodGFyZ2V0LCBrZXksIGF0dGFjaG1lbnRNb2RlT3V0KSwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJS
ZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENGVHlwZVJlZiB2YWx1ZSwgQ01BdHRhY2htZW50
TW9kZSBhdHRhY2htZW50TW9kZSksICh0YXJnZXQsIGtleSwgdmFsdWUsIGF0dGFjaG1lbnRNb2Rl
KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBDTVJlbW92ZUF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRC
ZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXkpLCAodGFyZ2V0LCBrZXkpLCBQQUxfRVhQ
T1JUKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWViYXNlUmVm
ICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91dCksIFBB
TF9FWFBPUlQpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywg
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1l
YmFzZVJlZiogdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VP
dXQpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNl
UmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0UmF0
ZSwgRmxvYXQ2NCwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZWJhc2VTZXRSYXRlLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGltZWJh
c2UsIEZsb2F0NjQgcmF0ZSksICh0aW1lYmFzZSwgcmF0ZSksIFBBTF9FWFBPUlQpCkBAIC0xNDQs
MTEgKzE2MSwxMyBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZURlcXVldWVBbgogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVFbnF1
ZXVlLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUmVmIGJ1ZmZl
ciksIChxdWV1ZSwgYnVmZmVyKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eSwg
Qm9vbGVhbiwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwgQ01JdGVtQ291bnQsIChDTUJ1ZmZlclF1ZXVl
UmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJh
Y2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAqLCAo
KSwgKCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVk
U2FtcGxlQnVmZmVycywgY29uc3QgQ01CdWZmZXJDYWxsYmFja3MqLCAoKSwgKCksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVN
ZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUs
IChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZl
clF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVl
UmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRy
aWdnZXIsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRy
aWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dl
ckNvbmRpdGlvbiBjb25kaXRpb24sIENNVGltZSB0aW1lLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRv
a2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIGNhbGxiYWNrLCByZWZjb24sIGNvbmRpdGlv
biwgdGltZSwgdHJpZ2dlclRva2VuT3V0KSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5z
dGFsbFRyaWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVl
UmVmIHF1ZXVlLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFjaywg
dm9pZCogdHJpZ2dlclJlZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJpZ2dl
ckNvbmRpdGlvbiwgQ01JdGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1ZVRy
aWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ssIHRy
aWdnZXJSZWZjb24sIHRyaWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdnZXJU
b2tlbk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEsIE9TU3Rh
dHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwg
KHF1ZXVlKSwgUEFMX0VYUE9SVCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNw
bGF5LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05v
dFN5bmMsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQpAQCAtMTY4LDQwICsxODcsNDAgQEAgU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGwKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2
ZVJhdGVDaGFuZ2VkLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlm
aWNhdGlvbl9UaW1lSnVtcGVkLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24gKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwg
KGRlc2MpLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3QgbGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVs
TGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdpY0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2lj
Q29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBt
YWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBleHRlbnNpb25zLCBvdXREZXNjKSwgUEFMX0VY
UE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRNYWdpY0Nvb2tpZSwgY29uc3Qgdm9p
ZCosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYywgc2l6ZV90KiBzaXplT3V0KSwg
KGRlc2MsIHNpemVPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdl
dFN0cmVhbUJhc2ljRGVzY3JpcHRpb24sIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0LCBj
b25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBk
ZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1v
cnlCbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBzdHJ1Y3R1cmVBbGxvY2F0b3IsIHZv
aWQqIG1lbW9yeUJsb2NrLCBzaXplX3QgYmxvY2tMZW5ndGgsIENGQWxsb2NhdG9yUmVmIGJsb2Nr
QWxsb2NhdG9yLCBjb25zdCBDTUJsb2NrQnVmZmVyQ3VzdG9tQmxvY2tTb3VyY2UqIGN1c3RvbUJs
b2NrU291cmNlLCBzaXplX3Qgb2Zmc2V0VG9EYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgQ01CbG9j
a0J1ZmZlckZsYWdzIGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmKiBibG9ja0J1ZmZlck91dCksIChz
dHJ1Y3R1cmVBbGxvY2F0b3IsIG1lbW9yeUJsb2NrLCBibG9ja0xlbmd0aCwgYmxvY2tBbGxvY2F0
b3IsIGN1c3RvbUJsb2NrU291cmNlLCBvZmZzZXRUb0RhdGEsIGRhdGFMZW5ndGgsIGZsYWdzLCBi
bG9ja0J1ZmZlck91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZl
ckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmLCBzaXplX3QgKmJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3Qg
KmJ1ZmZlckxpc3RPdXQsIHNpemVfdCBidWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1
ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWlu
dDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYgKmJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1
ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBidWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1
ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVy
T3V0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhS
ZXRhaW5lZEJsb2NrQnVmZmVyLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIHNp
emVfdCogYnVmZmVyTGlzdFNpemVOZWVkZWRPdXQsIEF1ZGlvQnVmZmVyTGlzdCogYnVmZmVyTGlz
dE91dCwgc2l6ZV90IGJ1ZmZlckxpc3RTaXplLCBDRkFsbG9jYXRvclJlZiBiYnVmU3RydWN0QWxs
b2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9yLCB1aW50MzJfdCBmbGFn
cywgQ01CbG9ja0J1ZmZlclJlZiogYmxvY2tCdWZmZXJPdXQpLCAoc2J1ZiwgYnVmZmVyTGlzdFNp
emVOZWVkZWRPdXQsIGJ1ZmZlckxpc3RPdXQsIGJ1ZmZlckxpc3RTaXplLCBiYnVmU3RydWN0QWxs
b2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNh
bXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
Q29weVNhbXBsZUJ1ZmZlckZvclJhbmdlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1w
bGVCdWZmZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1
Zk91dCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9T
U3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50
cmllcywgc2l6ZV90KiBzaXplQXJyYXlPdXQsIENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVz
TmVlZGVkT3V0KSwgKHNidWYsIHNpemVBcnJheUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFy
cmF5RW50cmllc05lZWRlZE91dCksIFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVy
Q3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHks
IENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFj
aywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNv
bnN0IEF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24gKnBhY2tldERlc2NyaXB0aW9ucywgQ01T
YW1wbGVCdWZmZXJSZWYgKnNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVh
ZHksIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVz
Y3JpcHRpb24sIG51bVNhbXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91
dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVm
ZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJl
ZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9y
LCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNi
dWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZm
ZXJMaXN0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tl
dERlc2NyaXB0aW9ucywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxv
Y2tCdWZmZXJSZWYgZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVy
TWFrZURhdGFSZWFkeUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCogbWFrZURh
dGFSZWFkeVJlZmNvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwg
Q01JdGVtQ291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHNidWZQVFMsIGNvbnN0IEF1ZGlvU3RyZWFt
UGFja2V0RGVzY3JpcHRpb24qIHBhY2tldERlc2NyaXB0aW9ucywgQ01TYW1wbGVCdWZmZXJSZWYq
IHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VEYXRhUmVh
ZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24sIG51bVNh
bXBsZXMsIHNidWZQVFMsIHBhY2tldERlc2NyaXB0aW9ucywgc0J1Zk91dCksIFBBTF9FWFBPUlQp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRp
YSwgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aFBhY2tldERlc2NyaXB0aW9ucywg
T1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYgZGF0
YUJ1ZmZlciwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVt
Q291bnQgbnVtU2FtcGxlcywgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgY29uc3QgQXVk
aW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVzY3JpcHRpb25zLCBDTVNhbXBsZUJ1
ZmZlclJlZiogc2FtcGxlQnVmZmVyT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZm9ybWF0
RGVzY3JpcHRpb24sIG51bVNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgcGFja2V0RGVz
Y3JpcHRpb25zLCBzYW1wbGVCdWZmZXJPdXQpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZm
ZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0
b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVm
ZmVyTGlzdCogYnVmZmVyTGlzdCksIChzYnVmLCBiYnVmU3RydWN0QWxsb2NhdG9yLCBiYnVmTWVt
b3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChz
YnVmKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUsIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXplLCBjb25zdCBBdWRpb0NoYW5uZWxMYXlv
dXQqIGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6ZSwgY29uc3Qgdm9pZCogbWFnaWNDb29r
aWUsIENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25S
ZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBsYXlvdXRTaXplLCBsYXlvdXQsIG1hZ2lj
Q29va2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lvbnMsIG91dERlc2MpLCBQQUxfRVhQT1JU
KQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVk
aWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llLCBjb25zdCB2b2lkKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjLCBzaXplX3QqIHNpemVPdXQpLCAoZGVz
Yywgc2l6ZU91dCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0Umlj
aGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9Gb3JtYXRMaXN0SXRlbSAqLCAoQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYyksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAsIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgQ01UaW1lIG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCksIChz
YnVmLCBvdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApLCBQQUxfRVhQT1JUKQorCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9j
a0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01DbG9ja0dldFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spLCBQQUxf
RVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzLCB1aW50NjRfdCwg
KENNVGltZSBob3N0VGltZSksIChob3N0VGltZSksIFBBTF9FWFBPUlQpCiAKLVNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYs
IE9TU3RhdHVzICgqIENNU0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBjYWxsYmFjaykoIENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNv
biksIHZvaWQgKnJlZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSwgUEFMX0VYUE9SVCkK
LVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBDTVNhbXBsZUJ1ZmZlckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBF
IGhhbmRsZXIpKENNU2FtcGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxl
ciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9yRWFjaFNhbXBsZSwgT1NTdGF0
dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoKkNNU0FNUExFQlVGRkVSQ0FM
TF9OT0VTQ0FQRSBjYWxsYmFjaykoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBDTUl0
ZW1Db3VudCBpbmRleCwgdm9pZCogcmVmY29uKSwgdm9pZCogcmVmY29uKSwgKHNidWYsIGNhbGxi
YWNrLCByZWZjb24pLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFj
aFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAoXkNN
U0FNUExFQlVGRkVSQ0FMTF9OT0VTQ0FQRSBoYW5kbGVyKShDTVNhbXBsZUJ1ZmZlclJlZiwgQ01J
dGVtQ291bnQpKSwgKHNidWYsIGhhbmRsZXIpLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2Nr
Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiog
Y2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCksIFBBTF9FWFBPUlQpCisKIFNPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlh
LCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxG
b3JtYXQsIENGU3RyaW5nUmVmLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKLSNl
bmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb0Nsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01D
bG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCksIFBBTF9FWFBPUlQpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
Q01UaW1lTWF4aW11bSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGlt
ZTEsIHRpbWUyKSwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNaW5pbXVtLCBDTVRpbWUsIChDTVRpbWUg
dGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpLCBQQUxfRVhQT1JUKQotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZVJhbmdlQ29udGFpbnNUaW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0
aW1lKSwgKHJhbmdlLCB0aW1lKSwgUEFMX0VYUE9SVCkKLQotU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBD
TVRpbWUsIFBBTF9FWFBPUlQpCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKE1BQykKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNl
Q2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmlu
Z1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNl
VUlELCBjbG9ja091dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZTdHJpbmdSZWYgZGV2aWNlVUlE
LCBDTUNsb2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGRldmljZVVJRCwgY2xvY2tPdXQp
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlLCB2b2lkKiwgKENN
QmFzZU9iamVjdFJlZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENN
QmFzZU9iamVjdEdldFZUYWJsZSwgY29uc3QgQ01CYXNlVlRhYmxlKiwgKENNQmFzZU9iamVjdFJl
ZiBiYXNlT2JqZWN0KSwgKGJhc2VPYmplY3QpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNRGVyaXZlZE9iamVj
dENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IENNQmFz
ZVZUYWJsZSogdlRhYmxlLCBDTUJhc2VDbGFzc0lEIGNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiog
YmFzZU9iamVjdCksIChhbGxvY2F0b3IsIHZUYWJsZSwgY2xhc3NJRCwgYmFzZU9iamVjdCksIFBB
TF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
LmgKaW5kZXggNzUyNWI5MTljNjk1ZDM2MDk3YjExMTAzMmI5NGY3NDdmMTUxZjFmMC4uM2UxNjZm
Yjc5YjIxYjk4YjU0OGYzOGZhN2JiZTZhMzRmNDAzOTNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaApAQCAtNjMsMTIgKzYzLDE1IEBAIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZVRpbWluZ0luZm8sCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mbyBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVC
dWZmZXJEYXRhSXNSZWFkeSwgQm9vbGVhbiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1
ZikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHkgc29mdExpbmtfQ29yZU1lZGlh
X0NNU2FtcGxlQnVmZmVyRGF0YUlzUmVhZHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVDb252ZXJ0U2NhbGUsIENNVGltZSwgKENNVGltZSB0aW1l
LCBpbnQzMl90IG5ld1RpbWVzY2FsZSwgQ01UaW1lUm91bmRpbmdNZXRob2QgbWV0aG9kKSwgKHRp
bWUsIG5ld1RpbWVzY2FsZSwgbWV0aG9kKSkKLSNkZWZpbmUgQ01UaW1lQ29udmVydFNjYWxlIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVDb252ZXJ0U2NhbGUKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5LCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVm
ZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVzLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBD
TVNhbXBsZVRpbWluZ0luZm8qIHNhbXBsZVRpbWluZ0FycmF5LCBDTUl0ZW1Db3VudCBudW1TYW1w
bGVTaXplRW50cmllcywgY29uc3Qgc2l6ZV90KiBzYW1wbGVTaXplQXJyYXksIENNU2FtcGxlQnVm
ZmVyUmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGlt
aW5nQXJyYXksIG51bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNhbXBsZUJ1
ZmZlck91dCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkgc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHkKKwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUFkZCwgQ01UaW1lLCAoQ01UaW1lIHRpbWUx
LCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUgQ01UaW1lQWRkIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVRpbWVBZGQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWVDb21wYXJlLCBpbnQzMl90LCAoQ01UaW1lIHRpbWUxLCBDTVRp
bWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKICNkZWZpbmUgQ01UaW1lQ29tcGFyZSBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01UaW1lQ29tcGFyZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZUNvbnZlcnRTY2FsZSwgQ01UaW1lLCAoQ01UaW1lIHRpbWUs
IGludDMyX3QgbmV3VGltZXNjYWxlLCBDTVRpbWVSb3VuZGluZ01ldGhvZCBtZXRob2QpLCAodGlt
ZSwgbmV3VGltZXNjYWxlLCBtZXRob2QpKQorI2RlZmluZSBDTVRpbWVDb252ZXJ0U2NhbGUgc29m
dExpbmtfQ29yZU1lZGlhX0NNVGltZUNvbnZlcnRTY2FsZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRp
bWUgdGltZSksICh0aW1lKSkKICNkZWZpbmUgQ01UaW1lR2V0U2Vjb25kcyBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01UaW1lR2V0U2Vjb25kcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFsdWUsIGludDMyX3Qg
dGltZXNjYWxlKSwgKHZhbHVlLCB0aW1lc2NhbGUpKQpAQCAtODMsMzMgKzg2LDQ3IEBAIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZU1ha2Us
IENNVGltZVJhbmdlLCAoQ01UCiAjZGVmaW5lIENNVGltZVJhbmdlTWFrZSBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01UaW1lUmFuZ2VNYWtlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VFcXVhbCwgQm9vbGVhbiwgKENNVGltZVJhbmdlIHJhbmdl
MSwgQ01UaW1lUmFuZ2UgcmFuZ2UyKSwgKHJhbmdlMSwgcmFuZ2UyKSkKICNkZWZpbmUgQ01UaW1l
UmFuZ2VFcXVhbCBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lUmFuZ2VFcXVhbAorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1heGltdW0sIENNVGlt
ZSwgKENNVGltZSB0aW1lMSwgQ01UaW1lIHRpbWUyKSwgKHRpbWUxLCB0aW1lMikpCisjZGVmaW5l
IENNVGltZU1heGltdW0gc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1heGltdW0KK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNaW5pbXVtLCBDTVRp
bWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQorI2RlZmlu
ZSBDTVRpbWVNaW5pbXVtIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNaW5pbXVtCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VDb250YWlu
c1RpbWUsIEJvb2xlYW4sIChDTVRpbWVSYW5nZSByYW5nZSwgQ01UaW1lIHRpbWUpLCAocmFuZ2Us
IHRpbWUpKQorI2RlZmluZSBDTVRpbWVSYW5nZUNvbnRhaW5zVGltZSBzb2Z0TGlua19Db3JlTWVk
aWFfQ01UaW1lUmFuZ2VDb250YWluc1RpbWUKKworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJbnZhbGlkLCBDTVRpbWUpCisjZGVmaW5lIGtDTVRp
bWVJbnZhbGlkIGdldF9Db3JlTWVkaWFfa0NNVGltZUludmFsaWQoKQorU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCisjZGVm
aW5lIGtDTVRpbWVaZXJvIGdldF9Db3JlTWVkaWFfa0NNVGltZVplcm8oKQorU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5
LCBDTVRpbWUpCisjZGVmaW5lIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5IGdldF9Db3JlTWVkaWFf
a0NNVGltZVBvc2l0aXZlSW5maW5pdHkoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGltZVJhbmdlKTsKKyNkZWZp
bmUga0NNVGltZVJhbmdlSW52YWxpZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWVSYW5nZUludmFsaWQo
KQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVJ
bmRlZmluaXRlLCBDTVRpbWUpCisjZGVmaW5lIGtDTVRpbWVJbmRlZmluaXRlIGdldF9Db3JlTWVk
aWFfa0NNVGltZUluZGVmaW5pdGUoKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3Jp
cHRpb25FeHRlbnNpb25BdG9tcywgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9uQXRvbXMgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlwdGlvbkV4dGVu
c2lvbkF0b21zKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMywgQ0ZTdHJpbmdSZWYp
Ci0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0
aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRp
b25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19EQ0lfUDMoKQor
I2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMyBnZXRfQ29y
ZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzKCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlw
dGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFy
aWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lv
bl9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQorI2RlZmlu
ZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0lUVV9SXzIwMjAoKQogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9y
bWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25Db2xvclByaW1hcmll
c19QM19ENjUgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01G
b3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1AzX0Q2NSgpCisjZGVmaW5lIGtDTUZvcm1h
dERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1IGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0
RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19QM19ENjUoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX0Z1
bGxSYW5nZVZpZGVvLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8gZ2V0
X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRlbygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0
aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvIGdldF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3Jp
cHRpb25FeHRlbnNpb25fRnVsbFJhbmdlVmlkZW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9JVFVfUl8yMDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25F
eHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAg
Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNj
cmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fSVRVX1JfMjAyMCgpCisjZGVmaW5lIGtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFfa0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0lUVV9SXzIwMjAoKQogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRywgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZv
cm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5j
dGlvbl9JVFVfUl8yMTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uRXh0
ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hM
RygpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8y
MTAwX0hMRyBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9JVFVfUl8yMTAwX0hMRygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX0xpbmVhciwgQ0ZT
dHJpbmdSZWYpCi0jZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1h
dERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9MaW5lYXIgZ2V0X0NvcmVNZWRpYV9rQ01Gb3Jt
YXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fTGluZWFyKCkKKyNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X0xpbmVhciBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9MaW5lYXIoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRLCBD
RlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRy
YW5zZmVyRnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF8yMDg0X1BRIGdldF9Db3JlTWVkaWFfa0NN
Rm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFEoKQogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERlc2Ny
aXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSwgQ0ZTdHJpbmdSZWYpCi0jZGVm
aW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2Ny
aXB0aW9uRXh0ZW5zaW9uX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9TTVBU
RV9TVF80MjhfMSgpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlv
bl9TTVBURV9TVF80MjhfMSBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNm
ZXJGdW5jdGlvbl9TTVBURV9TVF80MjhfMSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8y
MDIwLCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25f
a0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwIGdldF9Db3JlTWVkaWFf
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0RGVzY3JpcHRpb25ZQ2JDck1h
dHJpeF9JVFVfUl8yMDIwKCkKLVNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRD
b250ZW50T3JpZ2luYWxGb3JtYXQsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01Gb3JtYXREZXNj
cmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQgZ2V0X0NvcmVN
ZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2lu
YWxGb3JtYXQoKQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTUZvcm1hdERlc2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCLCBDRlN0
cmluZ1JlZikKLSNkZWZpbmUga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fa0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXRE
ZXNjcmlwdGlvbkV4dGVuc2lvbl9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25f
c1JHQigpCisjZGVmaW5lIGtDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAy
MCBnZXRfQ29yZU1lZGlhX2tDTUZvcm1hdERlc2NyaXB0aW9uWUNiQ3JNYXRyaXhfSVRVX1JfMjAy
MCgpCisKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01U
ZXh0TWFya3VwQWxpZ25tZW50VHlwZV9FbmQsIENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ01UZXh0
TWFya3VwQWxpZ25tZW50VHlwZV9FbmQgZ2V0X0NvcmVNZWRpYV9rQ01UZXh0TWFya3VwQWxpZ25t
ZW50VHlwZV9FbmQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIGtDTVRleHRNYXJrdXBBbGlnbm1lbnRUeXBlX01pZGRsZSwgQ0ZTdHJpbmdSZWYpCkBAIC0x
NDgsMTQgKzE2NSw2IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01UZXh0VmVydGljYWxMYXlvdXRfTGVmdFRvUmlnaHQsCiAjZGVmaW5lIGtDTVRleHRW
ZXJ0aWNhbExheW91dF9MZWZ0VG9SaWdodCBnZXRfQ29yZU1lZGlhX2tDTVRleHRWZXJ0aWNhbExh
eW91dF9MZWZ0VG9SaWdodCgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0LCBDRlN0cmluZ1JlZikK
ICNkZWZpbmUga0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0IGdldF9Db3JlTWVkaWFf
a0NNVGV4dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0KCkKLVNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW52YWxpZCwgQ01UaW1lKQotI2RlZmlu
ZSBrQ01UaW1lSW52YWxpZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbnZhbGlkKCkKLVNPRlRfTElO
S19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1l
KQotI2RlZmluZSBrQ01UaW1lWmVybyBQQUw6OmdldF9Db3JlTWVkaWFfa0NNVGltZVplcm8oKQot
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVQb3Np
dGl2ZUluZmluaXR5LCBDTVRpbWUpCi0jZGVmaW5lIGtDTVRpbWVQb3NpdGl2ZUluZmluaXR5IGdl
dF9Db3JlTWVkaWFfa0NNVGltZVBvc2l0aXZlSW5maW5pdHkoKQotU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWVSYW5nZUludmFsaWQsIENNVGltZVJh
bmdlKTsKLSNkZWZpbmUga0NNVGltZVJhbmdlSW52YWxpZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWVS
YW5nZUludmFsaWQoKQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKQEAgLTE2MywxOSArMTcyLDIx
IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUZvcm1h
dERlc2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlCiAjZGVmaW5lIENNRm9ybWF0RGVzY3JpcHRpb25H
ZXRNZWRpYVN1YlR5cGUgc29mdExpbmtfQ29yZU1lZGlhX0NNRm9ybWF0RGVzY3JpcHRpb25HZXRN
ZWRpYVN1YlR5cGUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlLCBDTU1lZGlhVHlwZSwgKENNRm9ybWF0
RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01Gb3JtYXREZXNjcmlwdGlv
bkdldE1lZGlhVHlwZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1l
ZGlhVHlwZQorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01Ob3RpZmljYXRpb25DZW50ZXJHZXREZWZhdWx0TG9jYWxDZW50ZXIsIENNTm90aWZpY2F0aW9u
Q2VudGVyUmVmLCAodm9pZCksICgpKQogI2RlZmluZSBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERl
ZmF1bHRMb2NhbENlbnRlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01Ob3RpZmljYXRpb25DZW50ZXJH
ZXREZWZhdWx0TG9jYWxDZW50ZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTU5vdGlmaWNhdGlvbkNlbnRlckFkZExpc3RlbmVyLCBPU1N0YXR1cywgKENN
Tm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90
aWZpY2F0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29u
c3Qgdm9pZCogb2JqZWN0LCBVSW50MzIgZmxhZ3MpLCAoY2VudGVyLCBsaXN0ZW5lciwgY2FsbGJh
Y2ssIG5vdGlmaWNhdGlvbiwgb2JqZWN0LCBmbGFncykpCiAjZGVmaW5lIENNTm90aWZpY2F0aW9u
Q2VudGVyQWRkTGlzdGVuZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVy
QWRkTGlzdGVuZXIKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTU5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZUxpc3RlbmVyLCBPU1N0YXR1cywgKENNTm90aWZp
Y2F0aW9uQ2VudGVyUmVmIGNlbnRlciwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENNTm90aWZpY2F0
aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9p
ZCogb2JqZWN0KSwgKGNlbnRlciwgbGlzdGVuZXIsIGNhbGxiYWNrLCBub3RpZmljYXRpb24sIG9i
amVjdCkpCiAjZGVmaW5lIENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIgc29mdExp
bmtfQ29yZU1lZGlhX0NNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIKLVNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQmxvY2tCdWZmZXJSZWYg
ZGF0YUJ1ZmZlciwgQm9vbGVhbiBkYXRhUmVhZHksIENNU2FtcGxlQnVmZmVyTWFrZURhdGFSZWFk
eUNhbGxiYWNrIG1ha2VEYXRhUmVhZHlDYWxsYmFjaywgdm9pZCAqbWFrZURhdGFSZWFkeVJlZmNv
biwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiwgQ01JdGVtQ291bnQg
bnVtU2FtcGxlcywgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29uc3QgQ01T
YW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmdBcnJheSwgQ01JdGVtQ291bnQgbnVtU2FtcGxl
U2l6ZUVudHJpZXMsIGNvbnN0IHNpemVfdCAqc2FtcGxlU2l6ZUFycmF5LCBDTVNhbXBsZUJ1ZmZl
clJlZiAqc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURh
dGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwg
bnVtU2FtcGxlcywgbnVtU2FtcGxlVGltaW5nRW50cmllcywgc2FtcGxlVGltaW5nQXJyYXksIG51
bVNhbXBsZVNpemVFbnRyaWVzLCBzYW1wbGVTaXplQXJyYXksIHNCdWZPdXQpKQorCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVh
dGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVm
IGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVh
ZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIHZvaWQqIG1ha2VEYXRhUmVhZHlSZWZj
b24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50
IG51bVNhbXBsZXMsIENNSXRlbUNvdW50IG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIGNvbnN0IENN
U2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nQXJyYXksIENNSXRlbUNvdW50IG51bVNhbXBs
ZVNpemVFbnRyaWVzLCBjb25zdCBzaXplX3QqIHNhbXBsZVNpemVBcnJheSwgQ01TYW1wbGVCdWZm
ZXJSZWYqIHNCdWZPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBkYXRhUmVhZHksIG1ha2VE
YXRhUmVhZHlDYWxsYmFjaywgbWFrZURhdGFSZWFkeVJlZmNvbiwgZm9ybWF0RGVzY3JpcHRpb24s
IG51bVNhbXBsZXMsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMsIHNhbXBsZVRpbWluZ0FycmF5LCBu
dW1TYW1wbGVTaXplRW50cmllcywgc2FtcGxlU2l6ZUFycmF5LCBzQnVmT3V0KSkKICNkZWZpbmUg
Q01TYW1wbGVCdWZmZXJDcmVhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ3Jl
YXRlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJDcmVhdGVDb3B5LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01TYW1wbGVCdWZmZXJSZWYgKnNidWZDb3B5T3V0KSwg
KGFsbG9jYXRvciwgc2J1Ziwgc2J1ZkNvcHlPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNU2Ft
cGxlQnVmZmVyUmVmKiBzYnVmQ29weU91dCksIChhbGxvY2F0b3IsIHNidWYsIHNidWZDb3B5T3V0
KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5IHNvZnRMaW5rX0NvcmVNZWRpYV9D
TVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2lu
YWxTQnVmLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVUaW1pbmdFbnRyaWVzLCBjb25zdCBDTVNhbXBs
ZVRpbWluZ0luZm8gKnNhbXBsZVRpbWluZ0FycmF5LCBDTVNhbXBsZUJ1ZmZlclJlZiAqc0J1ZkNv
cHlPdXQpLCAoYWxsb2NhdG9yLCBvcmlnaW5hbFNCdWYsIG51bVNhbXBsZVRpbWluZ0VudHJpZXMs
IHNhbXBsZVRpbWluZ0FycmF5LCBzQnVmQ29weU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1Rp
bWluZywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNU2FtcGxlQnVmZmVy
UmVmIG9yaWdpbmFsU0J1ZiwgQ01JdGVtQ291bnQgbnVtU2FtcGxlVGltaW5nRW50cmllcywgY29u
c3QgQ01TYW1wbGVUaW1pbmdJbmZvKiBzYW1wbGVUaW1pbmdBcnJheSwgQ01TYW1wbGVCdWZmZXJS
ZWYqIHNCdWZDb3B5T3V0KSwgKGFsbG9jYXRvciwgb3JpZ2luYWxTQnVmLCBudW1TYW1wbGVUaW1p
bmdFbnRyaWVzLCBzYW1wbGVUaW1pbmdBcnJheSwgc0J1ZkNvcHlPdXQpKQogI2RlZmluZSBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFn
ZUJ1ZmZlciwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWSW1hZ2VCdWZm
ZXJSZWYgaW1hZ2VCdWZmZXIsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiwgY29uc3QgQ01TYW1wbGVUaW1pbmdJbmZvICpzYW1wbGVUaW1pbmcsIENNU2FtcGxl
QnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGZvcm1hdERlc2Ny
aXB0aW9uLCBzYW1wbGVUaW1pbmcsIHNCdWZPdXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VC
dWZmZXIsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVy
UmVmIGltYWdlQnVmZmVyLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3Jp
cHRpb24sIGNvbnN0IENNU2FtcGxlVGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1
ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGltYWdlQnVmZmVyLCBmb3JtYXREZXNjcmlw
dGlvbiwgc2FtcGxlVGltaW5nLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeVdpdGhJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJD
cmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ3JlYXRlRm9ySW1hZ2VCdWZmZXIsIE9TU3Rh
dHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVm
ZmVyLCBCb29sZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJh
Y2sgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24sIGNvbnN0IENNU2FtcGxl
VGltaW5nSW5mbyogc2FtcGxlVGltaW5nLCBDTVNhbXBsZUJ1ZmZlclJlZiogc2FtcGxlQnVmZmVy
T3V0KSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNh
bGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVmY29uLCBmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlVGlt
aW5nLCBzYW1wbGVCdWZmZXJPdXQpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvcklt
YWdlQnVmZmVyIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckNyZWF0ZUZvckltYWdl
QnVmZmVyCkBAIC0xOTMsMTkgKzIwNCwyMSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpbwogI2Rl
ZmluZSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlu
a19Db3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXksIENGQXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVj
ZXNzYXJ5KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJy
YXkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVudHJpZXMsIENNU2FtcGxlVGltaW5n
SW5mbyAqdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50ICp0aW1pbmdBcnJheUVudHJpZXNOZWVk
ZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0aW1pbmdBcnJheU91dCwgdGltaW5n
QXJyYXlFbnRyaWVzTmVlZGVkT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheSwgT1NT
dGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUl0ZW1Db3VudCB0aW1pbmdBcnJheUVu
dHJpZXMsIENNU2FtcGxlVGltaW5nSW5mbyogdGltaW5nQXJyYXlPdXQsIENNSXRlbUNvdW50KiB0
aW1pbmdBcnJheUVudHJpZXNOZWVkZWRPdXQpLCAoc2J1ZiwgdGltaW5nQXJyYXlFbnRyaWVzLCB0
aW1pbmdBcnJheU91dCwgdGltaW5nQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSkKICNkZWZpbmUgQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkgc29mdExpbmtfQ29yZU1lZGlhX0NN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5CiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNp
emUsIHNpemVfdCwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiAjZGVmaW5lIENN
U2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBs
ZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlciwgT1NTdGF0dXMsIChD
TVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciksIChzYnVmLCBi
dWZmZXIpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXIgc29mdExpbmtfQ29y
ZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlcgorCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01HZXRBdHRhY2htZW50LCBDRlR5cGVSZWYsIChD
TUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBrZXksIENNQXR0YWNobWVu
dE1vZGUqIGF0dGFjaG1lbnRNb2RlT3V0KSwgKHRhcmdldCwga2V5LCBhdHRhY2htZW50TW9kZU91
dCkpCiAjZGVmaW5lIENNR2V0QXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01HZXRBdHRh
Y2htZW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01T
ZXRBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJp
bmdSZWYga2V5LCBDRlR5cGVSZWYgdmFsdWUsIENNQXR0YWNobWVudE1vZGUgYXR0YWNobWVudE1v
ZGUpLCAodGFyZ2V0LCBrZXksIHZhbHVlLCBhdHRhY2htZW50TW9kZSkpCiAjZGVmaW5lIENNU2V0
QXR0YWNobWVudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01TZXRBdHRhY2htZW50CiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01SZW1vdmVBdHRhY2htZW50LCB2
b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5KSwgKHRh
cmdldCwga2V5KSkKICNkZWZpbmUgQ01SZW1vdmVBdHRhY2htZW50IHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVJlbW92ZUF0dGFjaG1lbnQKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywgQ01UaW1lYmFz
ZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGltZWJhc2VPdXQp
KQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1l
YmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYqIHRpbWViYXNlT3V0
KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKICNkZWZpbmUgQ01UaW1l
YmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUNy
ZWF0ZVdpdGhNYXN0ZXJDbG9jawogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChDTVRpbWViYXNlUmVmIHRpbWVi
YXNlKSwgKHRpbWViYXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdldFRpbWUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNVGltZWJhc2VHZXRUaW1lCkBAIC0yMjcsNyArMjQwLDcgQEAgU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lckRpc3Bh
dGNoU291cmNlVG8KICNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0Zp
cmVJbW1lZGlhdGVseSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0
Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZUNvcHlBc0RpY3Rpb25hcnksIENGRGljdGlvbmFyeVJlZiwg
KENNVGltZSB0aW1lLCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAodGltZSwgYWxsb2NhdG9y
KSkKICNkZWZpbmUgQ01UaW1lQ29weUFzRGljdGlvbmFyeSBzb2Z0TGlua19Db3JlTWVkaWFfQ01U
aW1lQ29weUFzRGljdGlvbmFyeQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFn
ZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmICpvdXREZXNjKSwgKGFsbG9jYXRv
ciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJl
ZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFs
bG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQogI2RlZmluZSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1l
bnNpb25zLCBDTVZpZGVvRGltZW5zaW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2
aWRlb0Rlc2MpLCAodmlkZW9EZXNjKSkKICNkZWZpbmUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
R2V0RGltZW5zaW9ucyBzb2Z0TGlua19Db3JlTWVkaWFfQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
R2V0RGltZW5zaW9ucwpAQCAtMjQ5LDIzICsyNjIsMjMgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCwgQ01J
dGUKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50IHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1l
U3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVldWUpKQogI2RlZmlu
ZSBDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAgc29mdExpbmtfQ29y
ZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcAotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRD
YWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMsIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tz
ICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzLCBjb25z
dCBDTUJ1ZmZlckNhbGxiYWNrcyosICgpLCAoKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldENh
bGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycyBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZm
ZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycwogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQcmVz
ZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAocXVl
dWUpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1w
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENN
QnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHJlZmNvbiwgQ01CdWZm
ZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gY29uZGl0aW9uLCBDTVRpbWUgdGltZSwgQ01CdWZmZXJR
dWV1ZVRyaWdnZXJUb2tlbiogdHJpZ2dlclRva2VuT3V0KSwgKHF1ZXVlLCBjYWxsYmFjaywgcmVm
Y29uLCBjb25kaXRpb24sIHRpbWUsIHRyaWdnZXJUb2tlbk91dCkpCisjZGVmaW5lIENNQnVmZmVy
UXVldWVJbnN0YWxsVHJpZ2dlciBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUluc3Rh
bGxUcmlnZ2VyCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQsIE9TU3RhdHVz
LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayB0
cmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIHRyaWdnZXJSZWZjb24sIENNQnVmZmVyUXVldWVUcmlnZ2Vy
Q29uZGl0aW9uIHRyaWdnZXJDb25kaXRpb24sIENNSXRlbUNvdW50IHRyaWdnZXJUaHJlc2hvbGQs
IENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4qIHRyaWdnZXJUb2tlbk91dCksIChxdWV1ZSwgdHJp
Z2dlckNhbGxiYWNrLCB0cmlnZ2VyUmVmY29uLCB0cmlnZ2VyQ29uZGl0aW9uLCB0cmlnZ2VyVGhy
ZXNob2xkLCB0cmlnZ2VyVG9rZW5PdXQpKQogI2RlZmluZSBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRy
aWdnZXJXaXRoSW50ZWdlclRocmVzaG9sZCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1
ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQKIFNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YSwgT1NT
dGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZm
ZXJRdWV1ZU1hcmtFbmRPZkRhdGEgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVNYXJr
RW5kT2ZEYXRhCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01CdWZmZXJRdWV1ZUdldER1cmF0aW9uLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
KSwgKHF1ZXVlKSkKKyNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldER1cmF0aW9uIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RHVyYXRpb24KIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNw
bGF5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERp
c3BsYXkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSgp
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQXR0
YWNobWVudEtleV9Ob3RTeW5jIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9O
b3RTeW5jKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBr
Q01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwgQ0ZTdHJpbmdSZWYpCi0j
ZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5IGdldF9Db3Jl
TWVkaWFfa0NNU2FtcGxlQXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHkoKQotU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1l
bnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMsIENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01TYW1w
bGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzIGdldF9Db3JlTWVkaWFfa0NNU2Ft
cGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycygpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtl
eV9EaXNwbGF5RW1wdHlNZWRpYUltbWVkaWF0ZWx5LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NN
U2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9EaXNwbGF5RW1wdHlNZWRpYUltbWVkaWF0ZWx5IGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9EaXNwbGF5RW1wdHlNZWRp
YUltbWVkaWF0ZWx5KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0RyYWluQWZ0ZXJEZWNvZGluZywgQ0ZT
dHJpbmdSZWYpCkBAIC0yODAsMTAgKzI5MywxMCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hF
QURFUihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9TYW1wbAog
I2RlZmluZSBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJlZmVyZW5jZUJ5dGVP
ZmZzZXQgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1NhbXBsZVJl
ZmVyZW5jZUJ5dGVPZmZzZXQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfU2FtcGxlUmVmZXJlbmNlVVJM
LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9TYW1w
bGVSZWZlcmVuY2VVUkwgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5
X1NhbXBsZVJlZmVyZW5jZVVSTCgpCi1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQs
IENGU3RyaW5nUmVmKQotI2RlZmluZSBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVS
YXRlQ2hhbmdlZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2
ZVJhdGVDaGFuZ2VkKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkLCBDRlN0cmluZ1JlZikKLSNk
ZWZpbmUga0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGltZUp1bXBlZCBnZXRfQ29yZU1lZGlhX2tD
TVRpbWViYXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUlt
bWVkaWF0ZWx5LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NNU2FtcGxlQXR0YWNobWVudEtleV9E
aXNwbGF5SW1tZWRpYXRlbHkgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rp
c3BsYXlJbW1lZGlhdGVseSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVycywgQ0ZT
dHJpbmdSZWYpCisjZGVmaW5lIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlP
dGhlcnMgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5
T3RoZXJzKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBr
Q01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgQ0ZTdHJp
bmdSZWYpCiAjZGVmaW5lIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZl
ckNvbnN1bWVkIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRp
b25fQnVmZmVyQ29uc3VtZWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxl
RHVyYXRpb24sIENGU3RyaW5nUmVmKQpAQCAtMjkzLDcxICszMDYsNzkgQEAgU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1l
bnRLZXlfR3JhZHUKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBnZXRfQ29yZU1lZGlhX2tDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfVHJpbUR1cmF0aW9u
QXRTdGFydCwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVm
ZmVyQXR0YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0YXJ0IGdldF9Db3JlTWVkaWFfa0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0YXJ0KCkKIAorU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTVRpbWViYXNlTm90aWZpY2F0
aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NNVGltZWJh
c2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0ZUNoYW5nZWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1l
YmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCgpCitTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwga0NNVGltZWJhc2VOb3RpZmljYXRpb25fVGlt
ZUp1bXBlZCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX1Rp
bWVKdW1wZWQgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVk
KCkKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogYXNiZCwgc2l6ZV90IGxh
eW91dFNpemUsIGNvbnN0IEF1ZGlvQ2hhbm5lbExheW91dCogbGF5b3V0LCBzaXplX3QgbWFnaWND
b29raWVTaXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSwgQ0ZEaWN0aW9uYXJ5UmVmIGV4dGVu
c2lvbnMsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiogb3V0RGVzYyksIChhbGxvY2F0b3Is
IGFzYmQsIGxheW91dFNpemUsIGxheW91dCwgbWFnaWNDb29raWVTaXplLCBtYWdpY0Nvb2tpZSwg
ZXh0ZW5zaW9ucywgb3V0RGVzYykpCisjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIGRlc2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSkKICNk
ZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uICosIChDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKK1NP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBjb25zdCBBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24qLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YykpCiAjZGVmaW5lIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3Jp
cHRpb24gc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVh
bUJhc2ljRGVzY3JpcHRpb24KK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0
LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBkZXNjKSwgKGRlc2MpKQorI2RlZmluZSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNo
ZXN0RGVjb2RhYmxlRm9ybWF0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0CisKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2Nr
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIHN0cnVjdHVyZUFsbG9jYXRvciwgdm9pZCogbWVt
b3J5QmxvY2ssIHNpemVfdCBibG9ja0xlbmd0aCwgQ0ZBbGxvY2F0b3JSZWYgYmxvY2tBbGxvY2F0
b3IsIGNvbnN0IENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1NvdXJjZSogY3VzdG9tQmxvY2tTb3Vy
Y2UsIHNpemVfdCBvZmZzZXRUb0RhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBDTUJsb2NrQnVmZmVy
RmxhZ3MgZmxhZ3MsIENNQmxvY2tCdWZmZXJSZWYqIGJsb2NrQnVmZmVyT3V0KSwgKHN0cnVjdHVy
ZUFsbG9jYXRvciwgbWVtb3J5QmxvY2ssIGJsb2NrTGVuZ3RoLCBibG9ja0FsbG9jYXRvciwgY3Vz
dG9tQmxvY2tTb3VyY2UsIG9mZnNldFRvRGF0YSwgZGF0YUxlbmd0aCwgZmxhZ3MsIGJsb2NrQnVm
ZmVyT3V0KSkKICNkZWZpbmUgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBzb2Z0
TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jawotU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0
QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIsIE9TU3RhdHVzLCAoQ01TYW1w
bGVCdWZmZXJSZWYgc2J1Ziwgc2l6ZV90ICpidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgQXVkaW9C
dWZmZXJMaXN0ICpidWZmZXJMaXN0T3V0LCBzaXplX3QgYnVmZmVyTGlzdFNpemUsIENGQWxsb2Nh
dG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJidWZNZW1vcnlBbGxv
Y2F0b3IsIHVpbnQzMl90IGZsYWdzLCBDTUJsb2NrQnVmZmVyUmVmICpibG9ja0J1ZmZlck91dCks
IChzYnVmLCBidWZmZXJMaXN0U2l6ZU5lZWRlZE91dCwgYnVmZmVyTGlzdE91dCwgYnVmZmVyTGlz
dFNpemUsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBi
bG9ja0J1ZmZlck91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1
ZmZlciwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBzaXplX3QqIGJ1ZmZlckxp
c3RTaXplTmVlZGVkT3V0LCBBdWRpb0J1ZmZlckxpc3QqIGJ1ZmZlckxpc3RPdXQsIHNpemVfdCBi
dWZmZXJMaXN0U2l6ZSwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgQ0ZBbGxv
Y2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMyX3QgZmxhZ3MsIENNQmxvY2tCdWZm
ZXJSZWYqIGJsb2NrQnVmZmVyT3V0KSwgKHNidWYsIGJ1ZmZlckxpc3RTaXplTmVlZGVkT3V0LCBi
dWZmZXJMaXN0T3V0LCBidWZmZXJMaXN0U2l6ZSwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1l
bW9yeUFsbG9jYXRvciwgZmxhZ3MsIGJsb2NrQnVmZmVyT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVC
dWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciBzb2Z0TGlua19D
b3JlTWVkaWFfQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9j
a0J1ZmZlcgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENN
U2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcywgQ01JdGVtQ291bnQsIChDTVNhbXBsZUJ1ZmZlclJl
ZiBzYnVmKSwgKHNidWYpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMgc29m
dExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyR2V0TnVtU2FtcGxlcwotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkdldFJpY2hlc3REZWNvZGFibGVGb3JtYXQsIGNvbnN0IEF1ZGlvRm9ybWF0TGlzdEl0ZW0gKiwg
KENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQotI2RlZmluZSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0IHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxlRm9ybWF0
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1
ZmZlckFzc3VyZUJsb2NrTWVtb3J5LCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVm
ZmVyKSwgKHRoZUJ1ZmZlcikpCisjZGVmaW5lIENNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9y
eSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CbG9ja0J1ZmZlckFzc3VyZUJsb2NrTWVtb3J5CitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdl
dERhdGFQb2ludGVyLCBPU1N0YXR1cywgKENNQmxvY2tCdWZmZXJSZWYgdGhlQnVmZmVyLCBzaXpl
X3Qgb2Zmc2V0LCBzaXplX3QqIGxlbmd0aEF0T2Zmc2V0T3V0LCBzaXplX3QqIHRvdGFsTGVuZ3Ro
T3V0LCBjaGFyKiogZGF0YVBvaW50ZXJPdXQpLCAodGhlQnVmZmVyLCBvZmZzZXQsIGxlbmd0aEF0
T2Zmc2V0T3V0LCB0b3RhbExlbmd0aE91dCwgZGF0YVBvaW50ZXJPdXQpKQorI2RlZmluZSBDTUJs
b2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tCdWZmZXJH
ZXREYXRhUG9pbnRlcgorCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVN
ZWRpYSwgQ01TYW1wbGVCdWZmZXJDb3B5U2FtcGxlQnVmZmVyRm9yUmFuZ2UsIE9TU3RhdHVzLCAo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRlJhbmdl
IHNhbXBsZVJhbmdlLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIHNi
dWYsIHNhbXBsZVJhbmdlLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01TYW1wbGVCdWZmZXJDb3B5U2Ft
cGxlQnVmZmVyRm9yUmFuZ2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ29weVNh
bXBsZUJ1ZmZlckZvclJhbmdlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVTaXplQXJyYXksIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ01JdGVtQ291bnQgc2l6ZUFycmF5RW50cmllcywgc2l6ZV90
KiBzaXplQXJyYXlPdXQsIENNSXRlbUNvdW50KiBzaXplQXJyYXlFbnRyaWVzTmVlZGVkT3V0KSwg
KHNidWYsIHNpemVBcnJheUVudHJpZXMsIHNpemVBcnJheU91dCwgc2l6ZUFycmF5RW50cmllc05l
ZWRlZE91dCkpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5IHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVNpemVBcnJheQogCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1ZmZl
ckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDTUJsb2NrQnVmZmVyUmVmIGRhdGFCdWZmZXIsIEJvb2xlYW4gZGF0YVJlYWR5
LCBDTVNhbXBsZUJ1ZmZlck1ha2VEYXRhUmVhZHlDYWxsYmFjayBtYWtlRGF0YVJlYWR5Q2FsbGJh
Y2ssIHZvaWQgKm1ha2VEYXRhUmVhZHlSZWZjb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9y
bWF0RGVzY3JpcHRpb24sIENNSXRlbUNvdW50IG51bVNhbXBsZXMsIENNVGltZSBzYnVmUFRTLCBj
b25zdCBBdWRpb1N0cmVhbVBhY2tldERlc2NyaXB0aW9uICpwYWNrZXREZXNjcmlwdGlvbnMsIENN
U2FtcGxlQnVmZmVyUmVmICpzQnVmT3V0KSwgKGFsbG9jYXRvciwgZGF0YUJ1ZmZlciwgZGF0YVJl
YWR5LCBtYWtlRGF0YVJlYWR5Q2FsbGJhY2ssIG1ha2VEYXRhUmVhZHlSZWZjb24sIGZvcm1hdERl
c2NyaXB0aW9uLCBudW1TYW1wbGVzLCBzYnVmUFRTLCBwYWNrZXREZXNjcmlwdGlvbnMsIHNCdWZP
dXQpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVk
aW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVmZmVyLCBCb29s
ZWFuIGRhdGFSZWFkeSwgQ01TYW1wbGVCdWZmZXJNYWtlRGF0YVJlYWR5Q2FsbGJhY2sgbWFrZURh
dGFSZWFkeUNhbGxiYWNrLCB2b2lkKiBtYWtlRGF0YVJlYWR5UmVmY29uLCBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3VudCBudW1TYW1wbGVzLCBDTVRp
bWUgc2J1ZlBUUywgY29uc3QgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiogcGFja2V0RGVz
Y3JpcHRpb25zLCBDTVNhbXBsZUJ1ZmZlclJlZiogc0J1Zk91dCksIChhbGxvY2F0b3IsIGRhdGFC
dWZmZXIsIGRhdGFSZWFkeSwgbWFrZURhdGFSZWFkeUNhbGxiYWNrLCBtYWtlRGF0YVJlYWR5UmVm
Y29uLCBmb3JtYXREZXNjcmlwdGlvbiwgbnVtU2FtcGxlcywgc2J1ZlBUUywgcGFja2V0RGVzY3Jp
cHRpb25zLCBzQnVmT3V0KSkKICNkZWZpbmUgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQ
YWNrZXREZXNjcmlwdGlvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVm
ZmVyTGlzdCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBDRkFsbG9jYXRvclJl
ZiBiYnVmU3RydWN0QWxsb2NhdG9yLCBDRkFsbG9jYXRvclJlZiBiYnVmTWVtb3J5QWxsb2NhdG9y
LCB1aW50MzJfdCBmbGFncywgY29uc3QgQXVkaW9CdWZmZXJMaXN0ICpidWZmZXJMaXN0KSwgKHNi
dWYsIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIGJidWZNZW1vcnlBbGxvY2F0b3IsIGZsYWdzLCBidWZm
ZXJMaXN0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoUGFja2V0RGVzY3JpcHRpb25zLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01CbG9ja0J1ZmZlclJlZiBkYXRhQnVm
ZmVyLCBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uLCBDTUl0ZW1Db3Vu
dCBudW1TYW1wbGVzLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBjb25zdCBBdWRpb1N0
cmVhbVBhY2tldERlc2NyaXB0aW9uKiBwYWNrZXREZXNjcmlwdGlvbnMsIENNU2FtcGxlQnVmZmVy
UmVmKiBzYW1wbGVCdWZmZXJPdXQpLCAoYWxsb2NhdG9yLCBkYXRhQnVmZmVyLCBmb3JtYXREZXNj
cmlwdGlvbiwgbnVtU2FtcGxlcywgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBwYWNrZXREZXNjcmlw
dGlvbnMsIHNhbXBsZUJ1ZmZlck91dCkpCisjZGVmaW5lIENNQXVkaW9TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYsIENGQWxsb2NhdG9yUmVmIGJidWZTdHJ1Y3RBbGxvY2F0b3IsIENGQWxsb2NhdG9yUmVmIGJi
dWZNZW1vcnlBbGxvY2F0b3IsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBBdWRpb0J1ZmZlckxpc3Qq
IGJ1ZmZlckxpc3QpLCAoc2J1ZiwgYmJ1ZlN0cnVjdEFsbG9jYXRvciwgYmJ1Zk1lbW9yeUFsbG9j
YXRvciwgZmxhZ3MsIGJ1ZmZlckxpc3QpKQogI2RlZmluZSBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1ZmZl
clNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3Rh
dHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNkZWZpbmUgQ01TYW1wbGVC
dWZmZXJTZXREYXRhUmVhZHkgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyU2V0RGF0
YVJlYWR5Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBhc2JkLCBzaXplX3Qg
bGF5b3V0U2l6ZSwgY29uc3QgQXVkaW9DaGFubmVsTGF5b3V0KiBsYXlvdXQsIHNpemVfdCBtYWdp
Y0Nvb2tpZVNpemUsIGNvbnN0IHZvaWQqIG1hZ2ljQ29va2llLCBDRkRpY3Rpb25hcnlSZWYgZXh0
ZW5zaW9ucywgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRv
ciwgYXNiZCwgbGF5b3V0U2l6ZSwgbGF5b3V0LCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2ll
LCBleHRlbnNpb25zLCBvdXREZXNjKSkKLSNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmLCBDTVRpbWUgb3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKSwgKHNidWYs
IG91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCkpCisjZGVmaW5lIENNU2FtcGxlQnVmZmVyU2V0
T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNhbXBsZUJ1
ZmZlclNldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcAorCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xv
Y2tSZWYsICh2b2lkKSwgKCkpCi0jZGVmaW5lIENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrICBzb2Z0
TGlua19Db3JlTWVkaWFfQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2sKKyNkZWZpbmUgQ01DbG9ja0dl
dEhvc3RUaW1lQ2xvY2sgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRIb3N0VGltZUNsb2Nr
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dl
dFRpbWUsIENNVGltZSwgKENNQ2xvY2tSZWYgY2xvY2spLCAoY2xvY2spKQotI2RlZmluZSBDTUNs
b2NrR2V0VGltZSAgc29mdExpbmtfQ29yZU1lZGlhX0NNQ2xvY2tHZXRUaW1lCisjZGVmaW5lIENN
Q2xvY2tHZXRUaW1lIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUNsb2NrR2V0VGltZQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQ2xvY2tDb252ZXJ0SG9zdFRp
bWVUb1N5c3RlbVVuaXRzLCB1aW50NjRfdCwgKENNVGltZSBob3N0VGltZSksIChob3N0VGltZSkp
CiAjZGVmaW5lIENNQ2xvY2tDb252ZXJ0SG9zdFRpbWVUb1N5c3RlbVVuaXRzIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1Vbml0cwogCi1TT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsRm9y
RWFjaFNhbXBsZSwgT1NTdGF0dXMsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBPU1N0YXR1cyAo
KiBDTVNBTVBMRUJVRkZFUkNBTExfTk9FU0NBUEUgY2FsbGJhY2spKENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlciwgQ01JdGVtQ291bnQgaW5kZXgsIHZvaWQgKnJlZmNvbiksIHZvaWQgKnJl
ZmNvbiksIChzYnVmLCBjYWxsYmFjaywgcmVmY29uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckNhbGxGb3JFYWNoU2FtcGxlLCBP
U1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3RhdHVzICgqQ01TQU1QTEVCVUZG
RVJDQUxMX05PRVNDQVBFIGNhbGxiYWNrKShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIs
IENNSXRlbUNvdW50IGluZGV4LCB2b2lkKiByZWZjb24pLCB2b2lkKiByZWZjb24pLCAoc2J1Ziwg
Y2FsbGJhY2ssIHJlZmNvbikpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1w
bGUgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVmZmVyQ2FsbEZvckVhY2hTYW1wbGUKLVNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZl
ckNhbGxCbG9ja0ZvckVhY2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1
ZiwgT1NTdGF0dXMgKF4gQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2Ft
cGxlQnVmZmVyUmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJDYWxsQmxv
Y2tGb3JFYWNoU2FtcGxlLCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIE9TU3Rh
dHVzICheQ01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGhhbmRsZXIpKENNU2FtcGxlQnVmZmVy
UmVmLCBDTUl0ZW1Db3VudCkpLCAoc2J1ZiwgaGFuZGxlcikpCiAjZGVmaW5lIENNU2FtcGxlQnVm
ZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01TYW1wbGVCdWZm
ZXJDYWxsQmxvY2tGb3JFYWNoU2FtcGxlCiAKLSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKLQot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2Nr
T3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1
ZGlvQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNs
b2NrUmVmKiBjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSkKICNkZWZpbmUgQ01BdWRp
b0Nsb2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvQ2xvY2tDcmVhdGUKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVNYXhpbXVtLCBD
TVRpbWUsIChDTVRpbWUgdGltZTEsIENNVGltZSB0aW1lMiksICh0aW1lMSwgdGltZTIpKQotI2Rl
ZmluZSBDTVRpbWVNYXhpbXVtIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWVNYXhpbXVtCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWluaW11bSwg
Q01UaW1lLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRpbWUyKSkKLSNk
ZWZpbmUgQ01UaW1lTWluaW11bSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWluaW11bQotU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlQ29u
dGFpbnNUaW1lLCBCb29sZWFuLCAoQ01UaW1lUmFuZ2UgcmFuZ2UsIENNVGltZSB0aW1lKSwgKHJh
bmdlLCB0aW1lKSkKLSNkZWZpbmUgQ01UaW1lUmFuZ2VDb250YWluc1RpbWUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNVGltZVJhbmdlQ29udGFpbnNUaW1lCiAKLVNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQotI2RlZmlu
ZSBrQ01UaW1lSW5kZWZpbml0ZSBnZXRfQ29yZU1lZGlhX2tDTVRpbWVJbmRlZmluaXRlKCkKK1NP
RlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01G
b3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQs
IENGU3RyaW5nUmVmKQorI2RlZmluZSBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9Qcm90
ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlw
dGlvbkV4dGVuc2lvbl9Qcm90ZWN0ZWRDb250ZW50T3JpZ2luYWxGb3JtYXQoKQorU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9zUkdCLCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga0NN
Rm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0IgZ2V0X0NvcmVNZWRpYV9rQ01G
b3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fc1JHQigpCiAKLSNlbmRpZiAvLyBQTEFU
Rk9STShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZP
Uk0oTUFDKQogCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwg
Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgQ0ZTdHJpbmdSZWYgZGV2aWNlVUlELCBDTUNsb2NrUmVmICpjbG9ja091dCksIChhbGxv
Y2F0b3IsIGRldmljZVVJRCwgY2xvY2tPdXQpKQotI2RlZmluZSBDTUF1ZGlvRGV2aWNlQ2xvY2tD
cmVhdGUgIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xv
Y2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1Jl
ZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYqIGNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlE
LCBjbG9ja091dCkpCisjZGVmaW5lIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSBzb2Z0TGlua19D
b3JlTWVkaWFfQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UsIHZv
aWQqLCAoQ01CYXNlT2JqZWN0UmVmIGJhc2VPYmplY3QpLCAoYmFzZU9iamVjdCkpCi0jZGVmaW5l
IENNQmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlhX0NN
QmFzZU9iamVjdEdldERlcml2ZWRTdG9yYWdlCisjZGVmaW5lIENNQmFzZU9iamVjdEdldERlcml2
ZWRTdG9yYWdlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJhc2VPYmplY3RHZXREZXJpdmVkU3RvcmFn
ZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmFzZU9i
amVjdEdldFZUYWJsZSwgY29uc3QgQ01CYXNlVlRhYmxlKiwgKENNQmFzZU9iamVjdFJlZiBiYXNl
T2JqZWN0KSwgKGJhc2VPYmplY3QpKQotI2RlZmluZSBDTUJhc2VPYmplY3RHZXRWVGFibGUgUEFM
Ojpzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0VlRhYmxlCisjZGVmaW5lIENNQmFz
ZU9iamVjdEdldFZUYWJsZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01CYXNlT2JqZWN0R2V0VlRhYmxl
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01EZXJpdmVk
T2JqZWN0Q3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgY29uc3Qg
Q01CYXNlVlRhYmxlKiB2VGFibGUsIENNQmFzZUNsYXNzSUQgY2xhc3NJRCwgQ01CYXNlT2JqZWN0
UmVmKiBiYXNlT2JqZWN0KSwgKGFsbG9jYXRvciwgdlRhYmxlLCBjbGFzc0lELCBiYXNlT2JqZWN0
KSkKLSNkZWZpbmUgQ01EZXJpdmVkT2JqZWN0Q3JlYXRlIFBBTDo6c29mdExpbmtfQ29yZU1lZGlh
X0NNRGVyaXZlZE9iamVjdENyZWF0ZQorI2RlZmluZSBDTURlcml2ZWRPYmplY3RDcmVhdGUgc29m
dExpbmtfQ29yZU1lZGlhX0NNRGVyaXZlZE9iamVjdENyZWF0ZQogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9v
bGJveFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94
U29mdExpbmsuY3BwCmluZGV4IGY1MWNiYmIxNjY2M2I4MWVjZTIwMWU4YWQ1NzI1YzI1MTIxZjU2
ZmIuLjcyZjQxMTRlZWFhZGY2MjBjZTM3MDIzMDk5NDc2NmI0OGM3OTViMTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0z
NCwxMyArMzQsMTkgQEAgU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgVmlkZW9Ub29sYm94LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0
ZWRGcmFtZVJhdGUsIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Uo
UEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJ
bnRlcnZhbER1cmF0aW9uLCBDRlN0cmluZ1JlZikKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1l
LCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBDRlN0cmlu
Z1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVMZXZlbCwgQ0ZTdHJpbmdSZWYpCiAKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0Vu
Y29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIs
IENGU3RyaW5nUmVmKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rv
b2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbCwgQ0ZTdHJpbmdS
ZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwga1ZU
UHJvZmlsZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwsIENGU3RyaW5nUmVmKQorU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9I
MjY0X01haW5fQXV0b0xldmVsLCBDRlN0cmluZ1JlZikKIAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgaW50MzJfdCB3aWR0aCwgaW50MzJf
dCBoZWlnaHQsIENNVmlkZW9Db2RlY1R5cGUgY29kZWNUeXBlLCBDRkRpY3Rpb25hcnlSZWYgZW5j
b2RlclNwZWNpZmljYXRpb24sIENGRGljdGlvbmFyeVJlZiBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJp
YnV0ZXMsIENGQWxsb2NhdG9yUmVmIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBWVENvbXByZXNz
aW9uT3V0cHV0Q2FsbGJhY2sgb3V0cHV0Q2FsbGJhY2ssIHZvaWQqIG91dHB1dENhbGxiYWNrUmVm
Q29uLCBWVENvbXByZXNzaW9uU2Vzc2lvblJlZiogY29tcHJlc3Npb25TZXNzaW9uT3V0KSwgKGFs
bG9jYXRvciwgd2lkdGgsIGhlaWdodCwgY29kZWNUeXBlLCBlbmNvZGVyU3BlY2lmaWNhdGlvbiwg
c291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBjb21wcmVzc2VkRGF0YUFsbG9jYXRvciwgb3V0
cHV0Q2FsbGJhY2ssIG91dHB1dENhbGxiYWNrUmVmQ29uLCBjb21wcmVzc2lvblNlc3Npb25PdXQp
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29t
cHJlc3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNl
c3Npb25SZWYgc2Vzc2lvbiwgQ01UaW1lIGNvbXBsZXRlVW50aWxQcmVzZW50YXRpb25UaW1lU3Rh
bXApLCAoc2Vzc2lvbiwgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCkpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lv
blNlc3Npb25FbmNvZGVGcmFtZSwgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBz
ZXNzaW9uLCBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVRpbWUgcHJlc2VudGF0aW9u
VGltZVN0YW1wLCBDTVRpbWUgZHVyYXRpb24sIENGRGljdGlvbmFyeVJlZiBmcmFtZVByb3BlcnRp
ZXMsIHZvaWQqIHNvdXJjZUZyYW1lUmVmY29uLCBWVEVuY29kZUluZm9GbGFncyogaW5mb0ZsYWdz
T3V0KSwgKHNlc3Npb24sIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0
aW9uLCBmcmFtZVByb3BlcnRpZXMsIHNvdXJjZUZyYW1lUmVmY29uLCBpbmZvRmxhZ3NPdXQpKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJl
c3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Np
b25TZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRl
LCB2b2lkLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKIAog
U09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBW
aWRlb1Rvb2xib3gsIFZUUmVzdHJpY3RWaWRlb0RlY29kZXJzLCBPU1N0YXR1cywgKFZUVmlkZW9E
ZWNvZGVyUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uRmxhZ3MsIGNvbnN0IENNVmlkZW9Db2RlY1R5
cGUqIGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBDTUl0ZW1Db3VudCBhbGxvd2VkQ29kZWNUeXBlQ291
bnQpLCAocmVzdHJpY3Rpb25GbGFncywgYWxsb3dlZENvZGVjVHlwZUxpc3QsIGFsbG93ZWRDb2Rl
Y1R5cGVDb3VudCksIFBBTF9FWFBPUlQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY2YvVmlkZW9Ub29sYm94U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y2YvVmlkZW9Ub29sYm94U29mdExpbmsuaAppbmRleCBlYzBmZjAxY2MxZmUxYTIxMDZjYzdhN2Yw
MmU4Yzg0YjdkZDBkYTg0Li42MGE4ZmYzNzQyZDQ5NjEwN2IxNGZhYzdjNDEzNzNhYmM2ZDY5NGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRM
aW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGlu
ay5oCkBAIC0zNyw5ICszNywyMCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZQogI2RlZmluZSBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiBnZXRf
VmlkZW9Ub29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZh
bER1cmF0aW9uKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29s
Ym94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBDRlN0cmluZ1JlZikKICNk
ZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSBnZXRfVmlkZW9Ub29sYm94
X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUoKQorU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlf
QXZlcmFnZUJpdFJhdGUsIENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X0F2ZXJhZ2VCaXRSYXRlIGdldF9WaWRlb1Rvb2xib3hfa1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWws
IENGU3RyaW5nUmVmKQorI2RlZmluZSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1Byb2ZpbGVM
ZXZlbCBnZXRfVmlkZW9Ub29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxl
dmVsKCkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gs
IGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZp
ZGVvRW5jb2RlciwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVFZpZGVvRW5jb2RlclNwZWNpZmlj
YXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciBnZXRfVmlkZW9Ub29s
Ym94X2tWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRl
ZFZpZGVvRW5jb2RlcigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFZpZGVv
VG9vbGJveCwga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsLCBDRlN0cmlu
Z1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsIGdl
dF9WaWRlb1Rvb2xib3hfa1ZUUHJvZmlsZUxldmVsX0gyNjRfQmFzZWxpbmVfQXV0b0xldmVsKCkK
K1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRQcm9m
aWxlTGV2ZWxfSDI2NF9IaWdoX0F1dG9MZXZlbCwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtWVFBy
b2ZpbGVMZXZlbF9IMjY0X0hpZ2hfQXV0b0xldmVsIGdldF9WaWRlb1Rvb2xib3hfa1ZUUHJvZmls
ZUxldmVsX0gyNjRfSGlnaF9BdXRvTGV2ZWwoKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVs
LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2
ZWwgZ2V0X1ZpZGVvVG9vbGJveF9rVlRQcm9maWxlTGV2ZWxfSDI2NF9NYWluX0F1dG9MZXZlbCgp
CisKIAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZU
Q29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9j
YXRvciwgaW50MzJfdCB3aWR0aCwgaW50MzJfdCBoZWlnaHQsIENNVmlkZW9Db2RlY1R5cGUgY29k
ZWNUeXBlLCBDRkRpY3Rpb25hcnlSZWYgZW5jb2RlclNwZWNpZmljYXRpb24sIENGRGljdGlvbmFy
eVJlZiBzb3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIENGQWxsb2NhdG9yUmVmIGNvbXByZXNz
ZWREYXRhQWxsb2NhdG9yLCBWVENvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sgb3V0cHV0Q2FsbGJh
Y2ssIHZvaWQqIG91dHB1dENhbGxiYWNrUmVmQ29uLCBWVENvbXByZXNzaW9uU2Vzc2lvblJlZiog
Y29tcHJlc3Npb25TZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwgd2lkdGgsIGhlaWdodCwgY29kZWNU
eXBlLCBlbmNvZGVyU3BlY2lmaWNhdGlvbiwgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBj
b21wcmVzc2VkRGF0YUFsbG9jYXRvciwgb3V0cHV0Q2FsbGJhY2ssIG91dHB1dENhbGxiYWNrUmVm
Q29uLCBjb21wcmVzc2lvblNlc3Npb25PdXQpKQogI2RlZmluZSBWVENvbXByZXNzaW9uU2Vzc2lv
bkNyZWF0ZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUK
QEAgLTQ5LDYgKzYwLDggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRl
b1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUKICNkZWZpbmUgVlRDb21w
cmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVz
c2lvblNlc3Npb25FbmNvZGVGcmFtZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVz
LCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikp
CiAjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIHNvZnRM
aW5rX1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1l
cworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29t
cHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSwgdm9pZCwgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVm
IHNlc3Npb24pLCAoc2Vzc2lvbikpCisjZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxp
ZGF0ZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRl
CiAKIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29s
Ym94LCBWVFJlc3RyaWN0VmlkZW9EZWNvZGVycywgT1NTdGF0dXMsIChWVFZpZGVvRGVjb2RlclJl
c3RyaWN0aW9ucyByZXN0cmljdGlvbkZsYWdzLCBjb25zdCBDTVZpZGVvQ29kZWNUeXBlKiBhbGxv
d2VkQ29kZWNUeXBlTGlzdCwgQ01JdGVtQ291bnQgYWxsb3dlZENvZGVjVHlwZUNvdW50KSwgKHJl
c3RyaWN0aW9uRmxhZ3MsIGFsbG93ZWRDb2RlY1R5cGVMaXN0LCBhbGxvd2VkQ29kZWNUeXBlQ291
bnQpKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9v
bGJveFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29s
Ym94U29mdExpbmsuY3BwCmluZGV4IDY3NGU2NDk0YTBhOGI1OTY5MDNlM2NhNWNmYjZhMjNkZGFj
MzYzOGMuLmQ0NDQ5MzFlZmQ4YWU1NTYwYjhjMWIyN2YyMmFkOTJlNzkzNDg1ZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsu
Y3BwCkBAIC00MSw2ICs0MSwxMCBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9vbGJveCwgTVRfR2V0U2hvdQogCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1lZGlhVG9v
bGJveCwga01UU3VwcG9ydE5vdGlmaWNhdGlvbl9TaG91bGRQbGF5SERSVmlkZW9DaGFuZ2VkLCBD
RlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSwgdm9pZCos
IChNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXApLCAodGFwKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFBBTCwgTWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNv
dXJjZUF1ZGlvLCBPU1N0YXR1cywgKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCwgQ01JdGVt
Q291bnQgbnVtYmVyRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QgKmJ1ZmZlckxpc3RJbk91dCwgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBGbGFncyAqZmxhZ3NPdXQsIENNVGltZVJhbmdlICp0aW1lUmFuZ2VP
dXQsIENNSXRlbUNvdW50ICpudW1iZXJGcmFtZXNPdXQpLCAodGFwLCBudW1iZXJGcmFtZXMsIGJ1
ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsIHRpbWVSYW5nZU91dCwgbnVtYmVyRnJhbWVzT3V0KSkK
K1NPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
TWVkaWFUb29sYm94LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFs
bG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tz
KiBjYWxsYmFja3MsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRB
dWRpb1Byb2Nlc3NpbmdUYXBSZWYqIHRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxh
Z3MsIHRhcE91dCksIFBBTF9FWFBPUlQpCisKICNpZiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVB
REVSKQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIE1l
ZGlhVG9vbGJveCwga01UUGx1Z2luRm9ybWF0UmVhZGVyUHJvcGVydHlfRHVyYXRpb24sIENGU3Ry
aW5nUmVmLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2Nv
YS9NZWRpYVRvb2xib3hTb2Z0TGluay5oCmluZGV4IGM3ZGUwMmNlNjNjMmMzMDBkOTY1NGY2Njcw
YmZjMTI1MDIyOTM0NGUuLjI1NWE3NjdiNTVlZWY0ZThlZWQxOWRlZjI5NzE3ODQ5MGJlOTNmMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvTWVkaWFUb29sYm94U29m
dExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL01lZGlhVG9vbGJveFNv
ZnRMaW5rLmgKQEAgLTQxLDYgKzQxLDEzIEBAIFNPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9G
T1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBNVF9HZXRTaG91bGRQbGF5SERSVmlkCiAKIFNP
RlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgTWVkaWFUb29sYm94LCBr
TVRTdXBwb3J0Tm90aWZpY2F0aW9uX1Nob3VsZFBsYXlIRFJWaWRlb0NoYW5nZWQsIENGU3RyaW5n
UmVmKQogCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIE1lZGlhVG9vbGJveCwg
TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Qcm9jZXNzaW5n
VGFwUmVmIHRhcCksICh0YXApKQorI2RlZmluZSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3Jh
Z2Ugc29mdExpbmtfTWVkaWFUb29sYm94X01UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBNZWRpYVRvb2xib3gsIE1UQXVkaW9Q
cm9jZXNzaW5nVGFwR2V0U291cmNlQXVkaW8sIE9TU3RhdHVzLCAoTVRBdWRpb1Byb2Nlc3NpbmdU
YXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1iZXJGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCAqYnVm
ZmVyTGlzdEluT3V0LCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCwgQ01UaW1l
UmFuZ2UgKnRpbWVSYW5nZU91dCwgQ01JdGVtQ291bnQgKm51bWJlckZyYW1lc091dCksICh0YXAs
IG51bWJlckZyYW1lcywgYnVmZmVyTGlzdEluT3V0LCBmbGFnc091dCwgdGltZVJhbmdlT3V0LCBu
dW1iZXJGcmFtZXNPdXQpKQorI2RlZmluZSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1
ZGlvIHNvZnRMaW5rX01lZGlhVG9vbGJveF9NVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1
ZGlvCitTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIE1lZGlhVG9v
bGJveCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBjb25zdCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENhbGxiYWNrcyogY2FsbGJh
Y2tzLCBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0aW9uRmxhZ3MgZmxhZ3MsIE1UQXVkaW9Qcm9j
ZXNzaW5nVGFwUmVmKiB0YXBPdXQpLCAoYWxsb2NhdG9yLCBjYWxsYmFja3MsIGZsYWdzLCB0YXBP
dXQpKQorI2RlZmluZSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcENyZWF0ZSBzb2Z0TGlua19NZWRpYVRv
b2xib3hfTVRBdWRpb1Byb2Nlc3NpbmdUYXBDcmVhdGUKKwogI2lmIEhBVkUoTVRfUExVR0lOX0ZP
Uk1BVF9SRUFERVIpCiAKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgTWVkaWFU
b29sYm94LCBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJQcm9wZXJ0eV9EdXJhdGlvbiwgQ0ZTdHJpbmdS
ZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1NTI0ZWVjNTU4N2QxZTkxNzBlZjlmMTQ5
MmNjMDdkZTI1YzgwZWM3Li5jNTYyYmU3NjM1ZWE2YTE1ODQwODMzYWJjMmUxOTEwMTBjYzMxNzZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTM1MCw3ICszNTAsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRG9jdW1lbnQpOwogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVz
cGFjZSBXVEY6OlVuaWNvZGU7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4V3JpdGVSZWN1
cnNpb25EZXB0aCA9IDIxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAppbmRleCA5ZjU1NjA4MDJiYWMzMmJiNDk5ZWM5N2M5YjBhZTMyZTExYzYyMWM3Li44NTBjZGU3
MjcwZjBkNjFkYzI1NDQ5YzFkYTg5YTQ5YTFhZjQzNjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTA5LDcgKzEwOSw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxDYW52YXNFbGVtZW50KTsK
IAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIC8v
IFRoZXNlIHZhbHVlcyBjb21lIGZyb20gdGhlIFdoYXRXRy9XM0MgSFRNTCBzcGVjLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDAzNTI2ZmMzMTlhOWQxYjZi
MDdkNjhiMmI0NjJhY2E4NTQ3ZmNmZC4uN2QzYjEzMjFlOGE3MGQwZDFlOGRjMzEzNWE4MWFkY2Jl
NTgwMjZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0x
OTAsOCArMTkwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoSFRNTE1lZGlhRWxlbWVudCk7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0
YXRpYyBjb25zdCBTZWNvbmRzIFNlZWtSZXBlYXREZWxheSB7IDEwMF9tcyB9Owogc3RhdGljIGNv
bnN0IGRvdWJsZSBTZWVrVGltZSA9IDAuMjsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIFNjYW5SZXBl
YXREZWxheSB7IDEuNV9zIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKaW5kZXggZmQzZDNlMDNh
MDNmMDgxMDUyMTI4NmJkMDI2YTkxMDExMWQzY2M4NC4uNWQ1NmI5ZWUxYTBkM2Q2N2E3OWMzMDc2
MWQxMzgxNWQ3YzA2NDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcApAQCAtMzYsMjUgKzM2
LDEzIEBACiAjaW5jbHVkZSAiQXVkaW9GaWxlUmVhZGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRDb252
ZXJzaW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9F
eHRlbmRlZEF1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0
aW9uLmg+CisjaW5jbHVkZSA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CiAjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
I2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLKEF1ZGlv
VG9vbGJveCkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvRmlsZUNsb3NlLCBPU1N0YXR1
cywgKEF1ZGlvRmlsZUlEIGluQXVkaW9GaWxlKSwgKGluQXVkaW9GaWxlKSkKLVNPRlRfTElOSyhB
dWRpb1Rvb2xib3gsIEF1ZGlvRmlsZU9wZW5XaXRoQ2FsbGJhY2tzLCBPU1N0YXR1cywgKHZvaWQg
KmluQ2xpZW50RGF0YSwgQXVkaW9GaWxlX1JlYWRQcm9jIGluUmVhZEZ1bmMsIEF1ZGlvRmlsZV9X
cml0ZVByb2MgaW5Xcml0ZUZ1bmMsIEF1ZGlvRmlsZV9HZXRTaXplUHJvYyBpbkdldFNpemVGdW5j
LCBBdWRpb0ZpbGVfU2V0U2l6ZVByb2MgaW5TZXRTaXplRnVuYywgQXVkaW9GaWxlVHlwZUlEIGlu
RmlsZVR5cGVIaW50LCBBdWRpb0ZpbGVJRCAqb3V0QXVkaW9GaWxlKSwgKGluQ2xpZW50RGF0YSwg
aW5SZWFkRnVuYywgaW5Xcml0ZUZ1bmMsIGluR2V0U2l6ZUZ1bmMsIGluU2V0U2l6ZUZ1bmMsIGlu
RmlsZVR5cGVIaW50LCBvdXRBdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0
QXVkaW9GaWxlRGlzcG9zZSwgT1NTdGF0dXMsIChFeHRBdWRpb0ZpbGVSZWYgaW5FeHRBdWRpb0Zp
bGUpLCAoaW5FeHRBdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9G
aWxlR2V0UHJvcGVydHksIE9TU3RhdHVzLCAoRXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxl
LCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGluUHJvcGVydHlJRCwgVUludDMyICppb1Byb3BlcnR5
RGF0YVNpemUsIHZvaWQgKm91dFByb3BlcnR5RGF0YSksIChpbkV4dEF1ZGlvRmlsZSwgaW5Qcm9w
ZXJ0eUlELCBpb1Byb3BlcnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCi1TT0ZUX0xJTkso
QXVkaW9Ub29sYm94LCBFeHRBdWRpb0ZpbGVSZWFkLCBPU1N0YXR1cywgKEV4dEF1ZGlvRmlsZVJl
ZiBpbkV4dEF1ZGlvRmlsZSwgVUludDMyICppb051bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0
ICppb0RhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGlvTnVtYmVyRnJhbWVzLCBpb0RhdGEpKQotU09G
VF9MSU5LKEF1ZGlvVG9vbGJveCwgRXh0QXVkaW9GaWxlU2V0UHJvcGVydHksIE9TU3RhdHVzLCAo
RXh0QXVkaW9GaWxlUmVmIGluRXh0QXVkaW9GaWxlLCBFeHRBdWRpb0ZpbGVQcm9wZXJ0eUlEIGlu
UHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCAqaW5Qcm9w
ZXJ0eURhdGEpLCAoaW5FeHRBdWRpb0ZpbGUsIGluUHJvcGVydHlJRCwgaW5Qcm9wZXJ0eURhdGFT
aXplLCBpblByb3BlcnR5RGF0YSkpCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBFeHRBdWRpb0Zp
bGVXcmFwQXVkaW9GaWxlSUQsIE9TU3RhdHVzLCAoQXVkaW9GaWxlSUQgaW5GaWxlSUQsIEJvb2xl
YW4gaW5Gb3JXcml0aW5nLCBFeHRBdWRpb0ZpbGVSZWYgKm91dEV4dEF1ZGlvRmlsZSksIChpbkZp
bGVJRCwgaW5Gb3JXcml0aW5nLCBvdXRFeHRBdWRpb0ZpbGUpKQotU09GVF9MSU5LKEF1ZGlvVG9v
bGJveCwgRXh0QXVkaW9GaWxlT3BlblVSTCwgT1NTdGF0dXMsIChDRlVSTFJlZiBpblVSTCwgRXh0
QXVkaW9GaWxlUmVmKiBvdXRFeHRBdWRpb0ZpbGUpLCAoaW5VUkwsIG91dEV4dEF1ZGlvRmlsZSkp
Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIEF1ZGlvQnVmZmVyTGlzdCogdHJ5Q3JlYXRlQXVkaW9CdWZmZXJMaXN0KHNpemVfdCBudW1i
ZXJPZkJ1ZmZlcnMpCkBAIC0xMDMsMjIgKzkxLDIyIEBAIEF1ZGlvRmlsZVJlYWRlcjo6QXVkaW9G
aWxlUmVhZGVyKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSkKICAgICA6IG1fZGF0
YShkYXRhKQogICAgICwgbV9kYXRhU2l6ZShkYXRhU2l6ZSkKIHsKLSAgICBpZiAoQXVkaW9GaWxl
T3BlbldpdGhDYWxsYmFja3ModGhpcywgcmVhZFByb2MsIDAsIGdldFNpemVQcm9jLCAwLCAwLCAm
bV9hdWRpb0ZpbGVJRCkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6QXVkaW9GaWxlT3BlbldpdGhD
YWxsYmFja3ModGhpcywgcmVhZFByb2MsIDAsIGdldFNpemVQcm9jLCAwLCAwLCAmbV9hdWRpb0Zp
bGVJRCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChFeHRBdWRpb0ZpbGVX
cmFwQXVkaW9GaWxlSUQobV9hdWRpb0ZpbGVJRCwgZmFsc2UsICZtX2V4dEF1ZGlvRmlsZVJlZikg
IT0gbm9FcnIpCisgICAgaWYgKFBBTDo6RXh0QXVkaW9GaWxlV3JhcEF1ZGlvRmlsZUlEKG1fYXVk
aW9GaWxlSUQsIGZhbHNlLCAmbV9leHRBdWRpb0ZpbGVSZWYpICE9IG5vRXJyKQogICAgICAgICBt
X2V4dEF1ZGlvRmlsZVJlZiA9IDA7CiB9CiAKIEF1ZGlvRmlsZVJlYWRlcjo6fkF1ZGlvRmlsZVJl
YWRlcigpCiB7CiAgICAgaWYgKG1fZXh0QXVkaW9GaWxlUmVmKQotICAgICAgICBFeHRBdWRpb0Zp
bGVEaXNwb3NlKG1fZXh0QXVkaW9GaWxlUmVmKTsKKyAgICAgICAgUEFMOjpFeHRBdWRpb0ZpbGVE
aXNwb3NlKG1fZXh0QXVkaW9GaWxlUmVmKTsKIAogICAgIG1fZXh0QXVkaW9GaWxlUmVmID0gMDsK
IAogICAgIGlmIChtX2F1ZGlvRmlsZUlEKQotICAgICAgICBBdWRpb0ZpbGVDbG9zZShtX2F1ZGlv
RmlsZUlEKTsKKyAgICAgICAgUEFMOjpBdWRpb0ZpbGVDbG9zZShtX2F1ZGlvRmlsZUlEKTsKIAog
ICAgIG1fYXVkaW9GaWxlSUQgPSAwOwogfQpAQCAtMTU1LDcgKzE0Myw3IEBAIFJlZlB0cjxBdWRp
b0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBt
aXhUb01vbm8pCiAKICAgICAvLyBHZXQgZmlsZSdzIGRhdGEgZm9ybWF0CiAgICAgVUludDMyIHNp
emUgPSBzaXplb2YobV9maWxlRGF0YUZvcm1hdCk7Ci0gICAgaWYgKEV4dEF1ZGlvRmlsZUdldFBy
b3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZURhdGFG
b3JtYXQsICZzaXplLCAmbV9maWxlRGF0YUZvcm1hdCkgIT0gbm9FcnIpCisgICAgaWYgKFBBTDo6
RXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQ
cm9wZXJ0eV9GaWxlRGF0YUZvcm1hdCwgJnNpemUsICZtX2ZpbGVEYXRhRm9ybWF0KSAhPSBub0Vy
cikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBzaXplX3QgbnVtYmVyT2ZDaGFubmVs
cyA9IG1fZmlsZURhdGFGb3JtYXQubUNoYW5uZWxzUGVyRnJhbWU7CkBAIC0xNjMsNyArMTUxLDcg
QEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1w
bGVSYXRlLCBib29sIG1peFRvTW9ubykKICAgICAvLyBOdW1iZXIgb2YgZnJhbWVzCiAgICAgU0lu
dDY0IG51bWJlck9mRnJhbWVzNjQgPSAwOwogICAgIHNpemUgPSBzaXplb2YobnVtYmVyT2ZGcmFt
ZXM2NCk7Ci0gICAgaWYgKEV4dEF1ZGlvRmlsZUdldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVm
LCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfRmlsZUxlbmd0aEZyYW1lcywgJnNpemUsICZudW1iZXJP
ZkZyYW1lczY0KSAhPSBub0VyciB8fCBudW1iZXJPZkZyYW1lczY0IDw9IDApCisgICAgaWYgKFBB
TDo6RXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0Zp
bGVQcm9wZXJ0eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVzNjQpICE9
IG5vRXJyIHx8IG51bWJlck9mRnJhbWVzNjQgPD0gMCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBkb3VibGUgZmlsZVNhbXBsZVJhdGUgPSBtX2ZpbGVEYXRhRm9ybWF0Lm1TYW1wbGVS
YXRlOwpAQCAtMTg1LDcgKzE3Myw3IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVy
OjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAgICAgaWYgKHNh
bXBsZVJhdGUpCiAgICAgICAgIG1fY2xpZW50RGF0YUZvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBs
ZVJhdGU7CiAKLSAgICBpZiAoRXh0QXVkaW9GaWxlU2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVS
ZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9DbGllbnREYXRhRm9ybWF0LCBzaXplb2YoQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSwgJm1fY2xpZW50RGF0YUZvcm1hdCkgIT0gbm9FcnIpCisg
ICAgaWYgKFBBTDo6RXh0QXVkaW9GaWxlU2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtF
eHRBdWRpb0ZpbGVQcm9wZXJ0eV9DbGllbnREYXRhRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uKSwgJm1fY2xpZW50RGF0YUZvcm1hdCkgIT0gbm9FcnIpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgLy8gQ2hhbmdlIG51bWJlck9mRnJhbWVzNjQgdG8gZGVz
dGluYXRpb24gc2FtcGxlLXJhdGUKQEAgLTI0Myw3ICsyMzEsNyBAQCBSZWZQdHI8QXVkaW9CdXM+
IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9N
b25vKQogCiAgICAgLy8gUmVhZCBmcm9tIHRoZSBmaWxlIChvciBpbi1tZW1vcnkgdmVyc2lvbikK
ICAgICBVSW50MzIgZnJhbWVzVG9SZWFkID0gbnVtYmVyT2ZGcmFtZXM7Ci0gICAgaWYgKEV4dEF1
ZGlvRmlsZVJlYWQobV9leHRBdWRpb0ZpbGVSZWYsICZmcmFtZXNUb1JlYWQsIGJ1ZmZlckxpc3Qp
ICE9IG5vRXJyKSB7CisgICAgaWYgKFBBTDo6RXh0QXVkaW9GaWxlUmVhZChtX2V4dEF1ZGlvRmls
ZVJlZiwgJmZyYW1lc1RvUmVhZCwgYnVmZmVyTGlzdCkgIT0gbm9FcnIpIHsKICAgICAgICAgZGVz
dHJveUF1ZGlvQnVmZmVyTGlzdChidWZmZXJMaXN0KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9GaWxlUmVhZGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmgKaW5kZXggYjdiOTE2M2I1NmUyNmMyOWNhYjg0ZWUy
NDc2OWUyOTcxNDE3YWZmYy4uMGJiYmJhMjc4NTdkOTc5ZWNjNjg4Zjg3ZjAzMzlmNjY1ZWY0MjUy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9G
aWxlUmVhZGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5oCkBAIC0zMSwxMCArMzEsMTIgQEAKIAogI2lmIEVOQUJM
RShXRUJfQVVESU8pCiAKLSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+Ci0jaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+CisjaW5jbHVkZSA8Q29yZUF1
ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCit1c2luZyBF
eHRBdWRpb0ZpbGVSZWYgPSBzdHJ1Y3QgT3BhcXVlRXh0QXVkaW9GaWxlKjsKK3VzaW5nIEF1ZGlv
RmlsZUlEID0gc3RydWN0IE9wYXF1ZUF1ZGlvRmlsZUlEKjsKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBdWRpb0J1czsKQEAgLTU4LDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBjb25z
dCB2b2lkKiBtX2RhdGEgPSB7IG51bGxwdHIgfTsKICAgICBzaXplX3QgbV9kYXRhU2l6ZSA9IHsg
MCB9OwogCi0gICAgQXVkaW9GaWxlSUQgbV9hdWRpb0ZpbGVJRCA9IHsgMCB9OworICAgIEF1ZGlv
RmlsZUlEIG1fYXVkaW9GaWxlSUQgPSB7IG51bGxwdHIgfTsKICAgICBFeHRBdWRpb0ZpbGVSZWYg
bV9leHRBdWRpb0ZpbGVSZWYgPSB7IG51bGxwdHIgfTsKIAogICAgIEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiBtX2ZpbGVEYXRhRm9ybWF0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcApp
bmRleCA0Nzg3NTA3MmE3ODZlZDY4NmMxZDQwMWU4MmU2MjU5Y2EyM2M1NGI2Li4xNDhiMDU1ZGJl
Yzg5NDNlYTVhYWM2OGU2ODU4ZGU3ZDBiODIzMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb091dHB1dFVuaXRBZGFwdG9y
LmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAorI2luY2x1
ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IoQXVkaW9V
bml0UmVuZGVyZXImIHJlbmRlcmVyKQpAQCAtMzksMTIgKzQxLDEyIEBAIEF1ZGlvT3V0cHV0VW5p
dEFkYXB0b3I6OkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IoQXVkaW9Vbml0UmVuZGVyZXImIHJlbmRl
cmVyKQogQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6fkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IoKQog
ewogICAgIGlmIChtX291dHB1dFVuaXQpCi0gICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VE
aXNwb3NlKG1fb3V0cHV0VW5pdCk7CisgICAgICAgIFBBTDo6QXVkaW9Db21wb25lbnRJbnN0YW5j
ZURpc3Bvc2UobV9vdXRwdXRVbml0KTsKIH0KIAogT1NTdGF0dXMgQXVkaW9PdXRwdXRVbml0QWRh
cHRvcjo6c3RhcnQoKQogewotICAgIGF1dG8gcmVzdWx0ID0gQXVkaW9PdXRwdXRVbml0U3RhcnQo
bV9vdXRwdXRVbml0KTsKKyAgICBhdXRvIHJlc3VsdCA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3Rh
cnQobV9vdXRwdXRVbml0KTsKICAgICBpZiAocmVzdWx0ICE9IG5vRXJyKQogICAgICAgICBXVEZM
b2dBbHdheXMoIkVSUk9SOiBBdWRpb091dHB1dFVuaXRTdGFydCgpIGNhbGwgZmFpbGVkIHdpdGgg
ZXJyb3IgY29kZTogJWxkIiwgc3RhdGljX2Nhc3Q8bG9uZz4ocmVzdWx0KSk7CiAgICAgcmV0dXJu
IHJlc3VsdDsKQEAgLTUyLDcgKzU0LDcgQEAgT1NTdGF0dXMgQXVkaW9PdXRwdXRVbml0QWRhcHRv
cjo6c3RhcnQoKQogCiBPU1N0YXR1cyBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpzdG9wKCkKIHsK
LSAgICByZXR1cm4gQXVkaW9PdXRwdXRVbml0U3RvcChtX291dHB1dFVuaXQpOworICAgIHJldHVy
biBQQUw6OkF1ZGlvT3V0cHV0VW5pdFN0b3AobV9vdXRwdXRVbml0KTsKIH0KIAogLy8gRGVmYXVs
dE91dHB1dFVuaXQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckxpc3QuY3BwCmluZGV4IGZkZjY3
NzU3ZDFiNDc3NjA4MDhiMTNmYjQzNGU0MGIzZGZkMzBlMDQuLjRlOTA2NGQwYzZlOTMwODlhZTBl
YWE2Zjk5OGVjZDY1MzczNWQxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmNwcApAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKICNpbmNsdWRlIDxBY2NlbGVyYXRl
L0FjY2VsZXJhdGUuaD4KICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4K
KyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbmNsdWRlIDx3dGYv
U2V0Rm9yU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjcyLDcgKzI3Myw3IEBA
IE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZm
ZXJMaXN0JiBzb3VyY2UsIHNpemVfdCBmCiAKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24gaW5wdXRGb3JtYXQ7CiAgICAgVUludDMyIHByb3BlcnR5RGF0YVNpemUgPSBzaXplb2YoaW5w
dXRGb3JtYXQpOwotICAgIEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkoY29udmVydGVyLCBrQXVk
aW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNp
emUsICZpbnB1dEZvcm1hdCk7CisgICAgUEFMOjpBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5KGNv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZw
cm9wZXJ0eURhdGFTaXplLCAmaW5wdXRGb3JtYXQpOwogICAgIEFTU0VSVChmcmFtZUNvdW50IDw9
IHNvdXJjZS5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplIC8gaW5wdXRGb3JtYXQubUJ5dGVzUGVy
UGFja2V0KTsKIAogICAgIEF1ZGlvQ29udmVydGVyRnJvbUFCTENvbnRleHQgY29udGV4dCB7IHNv
dXJjZSwgZnJhbWVDb3VudCwgaW5wdXRGb3JtYXQubUJ5dGVzUGVyUGFja2V0IH07CkBAIC0yODAs
NyArMjgxLDcgQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpjb3B5RnJvbShjb25z
dCBBdWRpb0J1ZmZlckxpc3QmIHNvdXJjZSwgc2l6ZV90IGYKICNpZiAhTE9HX0RJU0FCTEVECiAg
ICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG91dHB1dEZvcm1hdDsKICAgICBwcm9wZXJ0
eURhdGFTaXplID0gc2l6ZW9mKG91dHB1dEZvcm1hdCk7Ci0gICAgQXVkaW9Db252ZXJ0ZXJHZXRQ
cm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNj
cmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZvdXRwdXRGb3JtYXQpOworICAgIFBBTDo6QXVk
aW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShjb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRP
dXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnByb3BlcnR5RGF0YVNpemUsICZvdXRwdXRGb3JtYXQp
OwogCiAgICAgQVNTRVJUKENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihvdXRwdXRGb3JtYXQpLm51
bWJlck9mQ2hhbm5lbFN0cmVhbXMoKSA9PSBtX2J1ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCkpOwog
ICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBtX2J1ZmZlckxpc3QtPmJ1ZmZlckNvdW50KCk7
ICsraSkgewpAQCAtMjkwLDcgKzI5MSw3IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dDo6Y29weUZyb20oY29uc3QgQXVkaW9CdWZmZXJMaXN0JiBzb3VyY2UsIHNpemVfdCBmCiAjZW5k
aWYKIAogICAgIFVJbnQzMiBzYW1wbGVzQ29udmVydGVkID0gbV9zYW1wbGVDYXBhY2l0eTsKLSAg
ICBPU1N0YXR1cyBlcnIgPSBBdWRpb0NvbnZlcnRlckZpbGxDb21wbGV4QnVmZmVyKGNvbnZlcnRl
ciwgYXVkaW9Db252ZXJ0ZXJGcm9tQUJMQ2FsbGJhY2ssICZjb250ZXh0LCAmc2FtcGxlc0NvbnZl
cnRlZCwgbV9idWZmZXJMaXN0LT5saXN0KCksIG51bGxwdHIpOworICAgIE9TU3RhdHVzIGVyciA9
IFBBTDo6QXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcihjb252ZXJ0ZXIsIGF1ZGlvQ29u
dmVydGVyRnJvbUFCTENhbGxiYWNrLCAmY29udGV4dCwgJnNhbXBsZXNDb252ZXJ0ZWQsIG1fYnVm
ZmVyTGlzdC0+bGlzdCgpLCBudWxscHRyKTsKICAgICBpZiAoIWVyciB8fCBlcnIgPT0ga1Jhbk91
dE9mSW5wdXREYXRhU3RhdHVzKSB7CiAgICAgICAgIG1fc2FtcGxlQ291bnQgPSBzYW1wbGVzQ29u
dmVydGVkOwogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQppbmRleCBl
NWVjNDc3Nzg1ODFhN2FjZjBlNzI1NTMzM2Y5ZTI2OTQxYzQ3MmQxLi5kMmI1YWM0NWYzMGZkNGEz
YWY1MWI0MjBkZTM3NjQ5YjExNTFjMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCkBAIC00
Miw3ICs0Miw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6
Y3JlYXRlKHNpemVfdCBtYXhpbXVtU2FtcGxlQ291bnQsIExvZ2dlckhlbHBlciYgbG9nZ2VySGVs
cGVyLCBzaXplX3Qgd2FpdFRvU3RhcnRGb3JQdXNoQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApp
bmRleCA4OWVjZWVkNjFjYjE5YmZkN2Q0MjBjNzc4YWFhMTIwYWMzNTZkYmZkLi4zMGRlYjJlNGM3
NDFkZjU0ODhiMzhmNWVkNTllZWJlNWEwMjg5YmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKQEAg
LTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogV2ViQXVkaW9CdWZm
ZXJMaXN0OjpXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBmb3JtYXQpCiAgICAgOiBtX2J5dGVzUGVyRnJhbWUoZm9ybWF0LmJ5dGVzUGVyRnJhbWUoKSkK
QEAgLTExNiw3ICsxMTUsNyBAQCBXZWJBdWRpb0J1ZmZlckxpc3Q6OldlYkF1ZGlvQnVmZmVyTGlz
dChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgQwogICAgICAgICByZXR1
cm47CiAKICAgICBDTUJsb2NrQnVmZmVyUmVmIGJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKG5v
RXJyID09IENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tC
dWZmZXIoc2FtcGxlQnVmZmVyLCBudWxscHRyLCBtX2Nhbm9uaWNhbExpc3QuZ2V0KCksIG1fbGlz
dEJ1ZmZlclNpemUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDRkFsbG9jYXRvclN5c3Rl
bURlZmF1bHQsIGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9CdWZmZXJMaXN0X0Fzc3VyZTE2Qnl0
ZUFsaWdubWVudCwgJmJ1ZmZlcikpCisgICAgaWYgKG5vRXJyID09IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1wbGVCdWZmZXIs
IG51bGxwdHIsIG1fY2Fub25pY2FsTGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6ZSwga0NGQWxs
b2NhdG9yU3lzdGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NNU2FtcGxl
QnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50LCAmYnVmZmVy
KSkKICAgICAgICAgbV9ibG9ja0J1ZmZlciA9IGFkb3B0Q0YoYnVmZmVyKTsKIAogICAgIHJlc2V0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9P
dXRwdXRVbml0QWRhcHRvcklPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9p
b3MvQXVkaW9PdXRwdXRVbml0QWRhcHRvcklPUy5jcHAKaW5kZXggMmU5NjMwZmI2MGYyMmIzZWU1
NmQyNDJkNzMwNDM0ODZiODdiNTYyZi4uZjg5MTA3ZmZiMWMzZjUzYmUzMTlhYTM4NjgxNDc3NGJi
NGQyN2E0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1
ZGlvT3V0cHV0VW5pdEFkYXB0b3JJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9BdWRpb091dHB1dFVuaXRBZGFwdG9ySU9TLmNwcApAQCAtMzMsMTUgKzMzLDcg
QEAKICNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaW5j
bHVkZSAiQXVkaW9TZXNzaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+Ci0KLVNP
RlRfTElOS19GUkFNRVdPUksoQXVkaW9Ub29sYm94KQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwg
QXVkaW9Db21wb25lbnRGaW5kTmV4dCwgQXVkaW9Db21wb25lbnQsIChBdWRpb0NvbXBvbmVudCBp
bkNvbXBvbmVudCwgY29uc3QgQXVkaW9Db21wb25lbnREZXNjcmlwdGlvbiAqaW5EZXNjKSwgKGlu
Q29tcG9uZW50LCBpbkRlc2MpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db21wb25l
bnRJbnN0YW5jZU5ldywgT1NTdGF0dXMsIChBdWRpb0NvbXBvbmVudCBpbkNvbXBvbmVudCwgQXVk
aW9Db21wb25lbnRJbnN0YW5jZSAqb3V0SW5zdGFuY2UpLCAoaW5Db21wb25lbnQsIG91dEluc3Rh
bmNlKSkKLVNPRlRfTElOSyhBdWRpb1Rvb2xib3gsIEF1ZGlvVW5pdEFkZFByb3BlcnR5TGlzdGVu
ZXIsIE9TU3RhdHVzLCAoQXVkaW9Vbml0IGluVW5pdCwgQXVkaW9Vbml0UHJvcGVydHlJRCBpbklE
LCBBdWRpb1VuaXRQcm9wZXJ0eUxpc3RlbmVyUHJvYyBpblByb2MsIHZvaWQgKmluUHJvY1VzZXJE
YXRhKSwgKGluVW5pdCwgaW5JRCwgaW5Qcm9jLCBpblByb2NVc2VyRGF0YSkpCi1TT0ZUX0xJTkso
QXVkaW9Ub29sYm94LCBBdWRpb1VuaXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQg
aW5Vbml0LCBBdWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUs
IEF1ZGlvVW5pdEVsZW1lbnQgaW5FbGVtZW50LCB2b2lkICpvdXREYXRhLCBVSW50MzIgKmlvRGF0
YVNpemUpLCAoaW5Vbml0LCBpbklELCBpblNjb3BlLCBpbkVsZW1lbnQsIG91dERhdGEsIGlvRGF0
YVNpemUpKQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Vbml0SW5pdGlhbGl6ZSwgT1NT
dGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0KSwgKGluVW5pdCkpCi1TT0ZUX0xJTksoQXVkaW9Ub29s
Ym94LCBBdWRpb1VuaXRTZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb1VuaXQgaW5Vbml0LCBB
dWRpb1VuaXRQcm9wZXJ0eUlEIGluSUQsIEF1ZGlvVW5pdFNjb3BlIGluU2NvcGUsIEF1ZGlvVW5p
dEVsZW1lbnQgaW5FbGVtZW50LCBjb25zdCB2b2lkICppbkRhdGEsIFVJbnQzMiBpbkRhdGFTaXpl
KSwgKGluVW5pdCwgaW5JRCwgaW5TY29wZSwgaW5FbGVtZW50LCBpbkRhdGEsIGluRGF0YVNpemUp
KQorI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTU4LDE1ICs1MCwxNSBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0
b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgog
ICAgIGRlc2MuY29tcG9uZW50TWFudWZhY3R1cmVyID0ga0F1ZGlvVW5pdE1hbnVmYWN0dXJlcl9B
cHBsZTsKICAgICBkZXNjLmNvbXBvbmVudEZsYWdzID0gMDsKICAgICBkZXNjLmNvbXBvbmVudEZs
YWdzTWFzayA9IDA7Ci0gICAgY29tcCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2Mp
OworICAgIGNvbXAgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOwogCiAg
ICAgQVNTRVJUKGNvbXApOwogCi0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Db21wb25lbnRJ
bnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBQ
QUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7CiAgICAg
QVNTRVJUKCFyZXN1bHQpOwogCiAgICAgVUludDMyIGZsYWcgPSAxOwotICAgIHJlc3VsdCA9IEF1
ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlv
VW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwKICAgICAgICAga0F1ZGlvT3V0cHV0VW5pdFBy
b3BlcnR5X0VuYWJsZUlPLAogICAgICAgICBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LAogICAgICAg
ICAwLApAQCAtNzQsMjAgKzY2LDIwIEBAIHZvaWQgQXVkaW9PdXRwdXRVbml0QWRhcHRvcjo6Y29u
ZmlndXJlKGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyCiAgICAgICAg
IHNpemVvZihmbGFnKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCi0gICAgcmVzdWx0ID0gQXVk
aW9Vbml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9V
bml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKICAgICAv
LyBTZXQgcmVuZGVyIGNhbGxiYWNrCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBpbnB1dDsK
ICAgICBpbnB1dC5pbnB1dFByb2MgPSBpbnB1dFByb2M7CiAgICAgaW5wdXQuaW5wdXRQcm9jUmVm
Q29uID0gdGhpczsKLSAgICByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVu
aXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3Bl
X0lucHV0LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOworICAgIHJlc3VsdCA9IFBBTDo6QXVk
aW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVu
ZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJmlucHV0LCBzaXplb2YoaW5w
dXQpKTsKICAgICBBU1NFUlQoIXJlc3VsdCk7CiAKICAgICAvLyBTZXQgc3RyZWFtIGZvcm1hdAog
ICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzdHJlYW1Gb3JtYXQ7CiAKICAgICBVSW50
MzIgc2l6ZSA9IHNpemVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pOwotICAgIHJlc3Vs
dCA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgKHZvaWQqKSZzdHJlYW1G
b3JtYXQsICZzaXplKTsKKyAgICByZXN1bHQgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1f
b3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNj
b3BlX091dHB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsICZzaXplKTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CiAKICAgICBjb25zdGV4cHIgaW50IGJ5dGVzUGVyRmxvYXQgPSBzaXplb2YoRmxv
YXQzMik7CkBAIC0xMDEsNyArOTMsNyBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3I6OmNv
bmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgogICAgIHN0
cmVhbUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAg
ICAgc3RyZWFtRm9ybWF0Lm1CaXRzUGVyQ2hhbm5lbCA9IGJpdHNQZXJCeXRlICogYnl0ZXNQZXJG
bG9hdDsKIAotICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwg
a0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAw
LCAodm9pZCopJnN0cmVhbUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
bikpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0
LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQs
IDAsICh2b2lkKikmc3RyZWFtRm9ybWF0LCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShrUHJlZmVycmVkQnVmZmVyU2l6ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9PdXRwdXRV
bml0QWRhcHRvck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVk
aW9PdXRwdXRVbml0QWRhcHRvck1hYy5jcHAKaW5kZXggYzhlZDNlZjc4YzhjNmEzYjFlMDcwY2I0
NDA1OTY5YWRhNGFjM2RhMi4uNzE0Y2NlODg2MjU3NTE4NjFkNWUyYjg1MTMxM2E4OWQwNDEyZWFj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvT3V0
cHV0VW5pdEFkYXB0b3JNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb091dHB1dFVuaXRBZGFwdG9yTWFjLmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAj
aW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlIDxDb3JlQXVkaW8vQXVkaW9IYXJkd2FyZS5o
PgorI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQ4LDIxICs0OSwyMSBAQCB2b2lkIEF1ZGlvT3V0cHV0VW5pdEFkYXB0
b3I6OmNvbmZpZ3VyZShmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlcgog
ICAgIGRlc2MuY29tcG9uZW50TWFudWZhY3R1cmVyID0ga0F1ZGlvVW5pdE1hbnVmYWN0dXJlcl9B
cHBsZTsKICAgICBkZXNjLmNvbXBvbmVudEZsYWdzID0gMDsKICAgICBkZXNjLmNvbXBvbmVudEZs
YWdzTWFzayA9IDA7Ci0gICAgY29tcCA9IEF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2Mp
OworICAgIGNvbXAgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5leHQoMCwgJmRlc2MpOwogCiAg
ICAgQVNTRVJUKGNvbXApOwogCi0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Db21wb25lbnRJ
bnN0YW5jZU5ldyhjb21wLCAmbV9vdXRwdXRVbml0KTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBQ
QUw6OkF1ZGlvQ29tcG9uZW50SW5zdGFuY2VOZXcoY29tcCwgJm1fb3V0cHV0VW5pdCk7CiAgICAg
QVNTRVJUKCFyZXN1bHQpOwogCi0gICAgcmVzdWx0ID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShtX291
dHB1dFVuaXQpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0SW5pdGlhbGl6ZShtX291dHB1
dFVuaXQpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAgIC8vIFNldCByZW5kZXIgY2FsbGJh
Y2sKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGlucHV0OwogICAgIGlucHV0LmlucHV0UHJv
YyA9IGlucHV0UHJvYzsKICAgICBpbnB1dC5pbnB1dFByb2NSZWZDb24gPSB0aGlzOwotICAgIHJl
c3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmaW5wdXQs
IHNpemVvZihpbnB1dCkpOworICAgIHJlc3VsdCA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHko
bV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRp
b1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CiAgICAgQVNTRVJU
KCFyZXN1bHQpOwogCiAgICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQKQEAgLTc5LDcgKzgwLDcgQEAg
dm9pZCBBdWRpb091dHB1dFVuaXRBZGFwdG9yOjpjb25maWd1cmUoZmxvYXQgaGFyZHdhcmVTYW1w
bGVSYXRlLCB1bnNpZ25lZCBudW1iZXIKICAgICBzdHJlYW1Gb3JtYXQubUNoYW5uZWxzUGVyRnJh
bWUgPSBudW1iZXJPZk91dHB1dENoYW5uZWxzOwogICAgIHN0cmVhbUZvcm1hdC5tQml0c1BlckNo
YW5uZWwgPSBiaXRzUGVyQnl0ZSAqIGJ5dGVzUGVyRmxvYXQ7CiAKLSAgICByZXN1bHQgPSBBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1G
b3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgKHZvaWQqKSZzdHJlYW1Gb3JtYXQsIHNp
emVvZihBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24pKTsKKyAgICByZXN1bHQgPSBQQUw6OkF1
ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVh
bUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCAwLCAodm9pZCopJnN0cmVhbUZvcm1hdCwg
c2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwogICAgIEFTU0VSVCghcmVzdWx0
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFV
dGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRp
ZXMuY3BwCmluZGV4IGE1MzMzMmNmN2RiZDY0NjZmNDRmNTc2ZDFjZDdhZGU3NjE1MGFhNGYuLjc4
NDc0ZDhlNWE1YWMwNzAzNTMzNTk5MGNkZGY4YWZjZDgwNTYxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTMzLDEzICszMywx
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIFJl
dGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0
aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbWFn
aWNDb29raWVTaXplLCBjb25zdCB2b2lkKiBtYWdpY0Nvb2tpZSkKIHsKICAgICBhdXRvIGJhc2lj
RGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24q
PihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwogICAgIENN
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0g
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2lj
RGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIG51
bGxwdHIsICZmb3JtYXQpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBu
dWxscHRyLCBtYWdpY0Nvb2tpZVNpemUsIG1hZ2ljQ29va2llLCBudWxscHRyLCAmZm9ybWF0KTsK
ICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKQEAgLTU1LDE0ICs1MywxNCBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51
bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFj
a2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxs
cHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAm
c2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGVycm9yID0gUEFMOjpDTUF1ZGlvU2FtcGxlQnVmZmVy
Q3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRy
LCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGlt
ZSwgbnVsbHB0ciwgJnNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIExP
R19FUlJPUigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgd2l0aCBwYWNrZXQgZGVzY3JpcHRpb25z
IGZhaWxlZCAtICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAg
ICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7CiAKLSAgICBlcnJvciA9IENN
U2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgp
LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxX
ZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7CisgICAgZXJyb3IgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJB
dWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAg
IExPR19FUlJPUigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgZnJvbSBhdWRpbyBidWZmZXIgbGlz
dCBmYWlsZWQgLSAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5j
cHAKaW5kZXggNTdjZjI5ZDBkNzdlNjc4ODliZGNlZmQ0MDU4NTEyOWVkMTJhNDU1NS4uNjRlMzBi
YzI5M2NhOGY5Mzg4NDg4ZjE0ODg1MDZjNTdiZTBhNTE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtNDEs
NyArNDEsNiBAQAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBpbmxpbmUgc3RkOjp1bmlx
dWVfcHRyPElPU3VyZmFjZT4gdHJhbnNmZXJCR1JBUGl4ZWxCdWZmZXJUb0lPU3VyZmFjZShDVlBp
eGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKQogewpAQCAtOTAsNyArODksNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoTWVkaWFT
YW1wbGUmIHNhbXBsZQogewogICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBl
ID09IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOwogCi0gICAgYXV0byBpbWFn
ZUJ1ZmZlciA9IENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2Ft
cGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNh
bXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENNU2Ft
cGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIgcmV0dXJuZWQgbnVsbHB0ciIpOwogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5tbQppbmRleCA5ODM5YjM3MGE3MTNiN2MxZDIzZDg0N2ZhODY1MDVkNWFlOTc5YWIyLi5k
ZmY0ZmE0ZWRmMjY0YjQ1MmJmOGRhN2FmYWVmNGNiZDdhMDI3YjAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC00NiwyMiArNDYsMTMg
QEAKICNpbXBvcnQgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2VuZGlmCiAKKyNpbXBvcnQg
PHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4K
LQotU09GVF9MSU5LX0ZSQU1FV09SSyhNZWRpYVRvb2xib3gpCi1TT0ZUX0xJTktfRlJBTUVXT1JL
KEF1ZGlvVG9vbGJveCkKLQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJD
b252ZXJ0Q29tcGxleEJ1ZmZlciwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlv
Q29udmVydGVyLCBVSW50MzIgaW5OdW1iZXJQQ01GcmFtZXMsIGNvbnN0IEF1ZGlvQnVmZmVyTGlz
dCogaW5JbnB1dERhdGEsIEF1ZGlvQnVmZmVyTGlzdCogb3V0T3V0cHV0RGF0YSksIChpbkF1ZGlv
Q29udmVydGVyLCBpbk51bWJlclBDTUZyYW1lcywgaW5JbnB1dERhdGEsIG91dE91dHB1dERhdGEp
KQotU09GVF9MSU5LKEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAo
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3Qg
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0Nv
bnZlcnRlclJlZiogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGlu
YXRpb25Gb3JtYXQsIG91dEF1ZGlvQ29udmVydGVyKSkKLQotU09GVF9MSU5LKE1lZGlhVG9vbGJv
eCwgTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlLCB2b2lkKiwgKE1UQXVkaW9Qcm9jZXNz
aW5nVGFwUmVmIHRhcCksICh0YXApKQotU09GVF9MSU5LKE1lZGlhVG9vbGJveCwgTVRBdWRpb1By
b2Nlc3NpbmdUYXBHZXRTb3VyY2VBdWRpbywgT1NTdGF0dXMsIChNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cFJlZiB0YXAsIENNSXRlbUNvdW50IG51bWJlckZyYW1lcywgQXVkaW9CdWZmZXJMaXN0ICpidWZm
ZXJMaXN0SW5PdXQsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgKmZsYWdzT3V0LCBDTVRpbWVS
YW5nZSAqdGltZVJhbmdlT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0KSwgKHRhcCwg
bnVtYmVyRnJhbWVzLCBidWZmZXJMaXN0SW5PdXQsIGZsYWdzT3V0LCB0aW1lUmFuZ2VPdXQsIG51
bWJlckZyYW1lc091dCkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoTWVkaWFUb29sYm94LCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcENyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3Is
IGNvbnN0IE1UQXVkaW9Qcm9jZXNzaW5nVGFwQ2FsbGJhY2tzICpjYWxsYmFja3MsIE1UQXVkaW9Q
cm9jZXNzaW5nVGFwQ3JlYXRpb25GbGFncyBmbGFncywgTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYg
KnRhcE91dCksIChhbGxvY2F0b3IsIGNhbGxiYWNrcywgZmxhZ3MsIHRhcE91dCkpCisjaW1wb3J0
IDxwYWwvY29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwogc3RhdGljIGNvbnN0IGRvdWJsZSBrUmluZ0J1ZmZl
ckR1cmF0aW9uID0gMTsKIAogY2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OlRhcFN0
b3JhZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OlRhcFN0b3JhZ2U+IHsKQEAgLTczLDcgKzY0LDcgQEAgcHVibGljOgogCiBSZWZQdHI8
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpj
cmVhdGUoQVZQbGF5ZXJJdGVtICppdGVtKQogewotICAgIGlmICghY2FuTG9hZE1UQXVkaW9Qcm9j
ZXNzaW5nVGFwQ3JlYXRlKCkpCisgICAgaWYgKCFQQUw6OmNhbkxvYWRfTWVkaWFUb29sYm94X01U
QXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKGl0ZW0pKTsK
IH0KQEAgLTE1Miw3ICsxNDMsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgIG1fcmVh
ZENvdW50ICs9IGZyYW1lc1RvUHJvY2VzczsKIAogICAgIGlmIChtX2NvbnZlcnRlcikKLSAgICAg
ICAgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwg
ZnJhbWVzVG9Qcm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CisgICAgICAgIFBB
TDo6QXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwg
ZnJhbWVzVG9Qcm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CiB9CiAKIHZvaWQg
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVy
Q2xpZW50KiBjbGllbnQpCkBAIC0yMjUsNyArMjE2LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6Y3JlYXRlTWl4SWZOZWVkZWQoKQogICAgIH07CiAKICAgICBNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiB0YXAgPSBudWxscHRyOwotICAgIE9TU3RhdHVzIHN0YXR1cyA9IE1UQXVk
aW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsICZjYWxsYmFja3MsIDEs
ICZ0YXApOworICAgIE9TU3RhdHVzIHN0YXR1cyA9IFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJmNhbGxiYWNrcywgMSwgJnRhcCk7CiAgICAgaWYg
KHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBpZiAodGFwKQogICAgICAgICAgICAgQ0ZSZWxl
YXNlKHRhcCk7CkBAIC0yNTgsMTQgKzI0OSwxNCBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjppbml0Q2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCB2b2lkKgog
dm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6ZmluYWxpemVDYWxsYmFjayhNVEF1ZGlv
UHJvY2Vzc2luZ1RhcFJlZiB0YXApCiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFn
ZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2lu
Z1RhcEdldFN0b3JhZ2UodGFwKSk7CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRp
Y19jYXN0PFRhcFN0b3JhZ2UqPihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0
YXApKTsKICAgICB0YXBTdG9yYWdlLT5kZXJlZigpOwogfQogCiB2b2lkIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcmVwYXJlQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFw
LCBDTUl0ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
biAqcHJvY2Vzc2luZ0Zvcm1hdCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBUYXBTdG9yYWdl
KiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Qcm9jZXNzaW5n
VGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGlj
X2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRTdG9yYWdlKHRh
cCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsKIApAQCAtMjc2
LDcgKzI2Nyw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxs
YmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNCiB2b2lkIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjp1bnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0
YXApCiB7CiAgICAgQVNTRVJUKHRhcCk7Ci0gICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0
YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFw
KSk7CisgICAgVGFwU3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2Uq
PihQQUw6Ok1UQXVkaW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAogICAgIExvY2tl
ciBsb2NrZXIgeyB0YXBTdG9yYWdlLT5sb2NrIH07CiAKQEAgLTI4Nyw3ICsyNzgsNyBAQCB2b2lk
IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByZXBhcmVDYWxsYmFjayhNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcFJlZiB0YXApCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9j
ZXNzQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VudCBudW1i
ZXJGcmFtZXMsIE1UQXVkaW9Qcm9jZXNzaW5nVGFwRmxhZ3MgZmxhZ3MsIEF1ZGlvQnVmZmVyTGlz
dCAqYnVmZmVyTGlzdEluT3V0LCBDTUl0ZW1Db3VudCAqbnVtYmVyRnJhbWVzT3V0LCBNVEF1ZGlv
UHJvY2Vzc2luZ1RhcEZsYWdzICpmbGFnc091dCkKIHsKICAgICBBU1NFUlQodGFwKTsKLSAgICBU
YXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVkaW9Q
cm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKKyAgICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdl
ID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KFBBTDo6TVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRT
dG9yYWdlKHRhcCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHRhcFN0b3JhZ2UtPmxvY2sgfTsK
IApAQCAtMzE3LDcgKzMwOCw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnBy
ZXBhcmUoQ01JdGVtQ291bnQgbWF4RnJhbWVzLCBjb25zdCBBdWRpb1N0cmVhCiAKICAgICBpZiAo
Km1fdGFwRGVzY3JpcHRpb24gIT0gKm1fb3V0cHV0RGVzY3JpcHRpb24pIHsKICAgICAgICAgQXVk
aW9Db252ZXJ0ZXJSZWYgb3V0Q29udmVydGVyID0gbnVsbHB0cjsKLSAgICAgICAgQXVkaW9Db252
ZXJ0ZXJOZXcobV90YXBEZXNjcmlwdGlvbi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQo
KSwgJm91dENvbnZlcnRlcik7CisgICAgICAgIFBBTDo6QXVkaW9Db252ZXJ0ZXJOZXcobV90YXBE
ZXNjcmlwdGlvbi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQoKSwgJm91dENvbnZlcnRl
cik7CiAgICAgICAgIG1fY29udmVydGVyID0gb3V0Q29udmVydGVyOwogICAgIH0KIApAQCAtMzU3
LDcgKzM0OCw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3MoTVRB
dWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwLCBDTUl0ZW1Db3VuCiAgICAgCiAgICAgQ01JdGVtQ291
bnQgaXRlbUNvdW50ID0gMDsKICAgICBDTVRpbWVSYW5nZSByYW5nZU91dDsKLSAgICBPU1N0YXR1
cyBzdGF0dXMgPSBNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNvdXJjZUF1ZGlvKHRhcCwgbnVtYmVy
T2ZGcmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQsICZyYW5nZU91dCwgJml0ZW1Db3Vu
dCk7CisgICAgT1NTdGF0dXMgc3RhdHVzID0gUEFMOjpNVEF1ZGlvUHJvY2Vzc2luZ1RhcEdldFNv
dXJjZUF1ZGlvKHRhcCwgbnVtYmVyT2ZGcmFtZXMsIGJ1ZmZlckxpc3RJbk91dCwgZmxhZ3NPdXQs
ICZyYW5nZU91dCwgJml0ZW1Db3VudCk7CiAgICAgaWYgKHN0YXR1cyAhPSBub0VyciB8fCAhaXRl
bUNvdW50KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDMw
NWIzZDI3ZTM0MmY5ODcyMTEyZjExNzRjMTRmZjRmM2M2MDg1NWQuLjUzMjlmMWQ5ZDNhZWE3YzU0
ZDMzNjZjMzJhZDFhNjAzOGE3OWViMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMjMy
LDcgKzIzMiw2IEBAIHN0cnVjdCBMb2dBcmd1bWVudDxBVlBsYXllclRpbWVDb250cm9sU3RhdHVz
PiB7CiB9OyAvLyBuYW1lc3BhY2UgV1RGCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5h
bWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBOU0FycmF5ICphc3NldE1ldGFkYXRhS2V5TmFtZXMoKTsK
IHN0YXRpYyBOU0FycmF5ICppdGVtS1ZPUHJvcGVydGllcygpOwpAQCAtNTcyLDcgKzU3MSw2IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQ29udGV4dFZp
ZGVvUmVuZGVyZXIoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNyZWF0ZUltYWdlR2VuZXJhdG9yKCkKIHsKLSAgICB1c2luZyBuYW1lc3BhY2UgUEFMOwogICAg
IElORk9fTE9HKExPR0lERU5USUZJRVIpOwogCiAgICAgaWYgKCFtX2F2QXNzZXQgfHwgbV9pbWFn
ZUdlbmVyYXRvcikKQEAgLTU4Miw4ICs1ODAsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlR2VuZXJhdG9yKCkKIAogICAgIFttX2ltYWdlR2Vu
ZXJhdG9yLmdldCgpIHNldEFwZXJ0dXJlTW9kZTpBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVy
ZU1vZGVDbGVhbkFwZXJ0dXJlXTsKICAgICBbbV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRBcHBs
aWVzUHJlZmVycmVkVHJhY2tUcmFuc2Zvcm06WUVTXTsKLSAgICBbbV9pbWFnZUdlbmVyYXRvci5n
ZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVmb3JlOmtDTVRpbWVaZXJvXTsKLSAgICBb
bV9pbWFnZUdlbmVyYXRvci5nZXQoKSBzZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQWZ0ZXI6a0NN
VGltZVplcm9dOworICAgIFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIHNldFJlcXVlc3RlZFRpbWVU
b2xlcmFuY2VCZWZvcmU6UEFMOjprQ01UaW1lWmVyb107CisgICAgW21faW1hZ2VHZW5lcmF0b3Iu
Z2V0KCkgc2V0UmVxdWVzdGVkVGltZVRvbGVyYW5jZUFmdGVyOlBBTDo6a0NNVGltZVplcm9dOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lDb250
ZXh0VmlkZW9SZW5kZXJlcigpCkBAIC02NzEsNyArNjY5LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiAgICAgaWYg
KCFkYXRlKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOwogCi0gICAg
ZG91YmxlIGN1cnJlbnRUaW1lID0gQ01UaW1lR2V0U2Vjb25kcyhbbV9hdlBsYXllckl0ZW0gY3Vy
cmVudFRpbWVdKSAqIDEwMDA7CisgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gUEFMOjpDTVRpbWVH
ZXRTZWNvbmRzKFttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV0pICogMTAwMDsKIAogICAgIC8v
IFJvdW5kaW5nIGR1ZSB0byBzZWNvbmQgb2Zmc2V0IGVycm9yIHdoZW4gc3VidHJhY3RpbmcuCiAg
ICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZShyb3VuZChkYXRlIC0gY3VycmVu
dFRpbWUpKTsKQEAgLTEwODksNyArMTA4Nyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIoKQogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRU
aW1lT2JzZXJ2ZXIpOwogICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7Ci0g
ICAgbV9jdXJyZW50VGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkUGVyaW9kaWNUaW1lT2Jz
ZXJ2ZXJGb3JJbnRlcnZhbDpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpIHVzaW5nQmxvY2s6W3dlYWtUaGlzXSAoQ01UaW1lIHRpbWUpIHsKKyAgICBtX2N1
cnJlbnRUaW1lT2JzZXJ2ZXIgPSBbbV9hdlBsYXllciBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZv
ckludGVydmFsOlBBTDo6Q01UaW1lTWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSB1c2luZ0Jsb2NrOlt3ZWFrVGhpc10gKENNVGltZSB0aW1lKSB7CiAgICAgICAgIGlm
ICh3ZWFrVGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5jdXJyZW50TWVkaWFUaW1lRGlkQ2hh
bmdlKFBBTDo6dG9NZWRpYVRpbWUodGltZSkpOwogICAgIH1dOwpAQCAtMTQyMyw3ICsxNDIxLDcg
QEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdAogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwog
CiAgICAgaWYgKCFtX3dhbGxDbG9ja0F0Q2FjaGVkQ3VycmVudFRpbWUpCi0gICAgICAgIGN1cnJl
bnRNZWRpYVRpbWVEaWRDaGFuZ2UodG9NZWRpYVRpbWUoW21fYXZQbGF5ZXJJdGVtLmdldCgpIGN1
cnJlbnRUaW1lXSkpOworICAgICAgICBjdXJyZW50TWVkaWFUaW1lRGlkQ2hhbmdlKFBBTDo6dG9N
ZWRpYVRpbWUoW21fYXZQbGF5ZXJJdGVtLmdldCgpIGN1cnJlbnRUaW1lXSkpOwogICAgIEFTU0VS
VChtX3dhbGxDbG9ja0F0Q2FjaGVkQ3VycmVudFRpbWUpOwogCiAgICAgYXV0byBpdGVtVGltZSA9
IG1fY2FjaGVkQ3VycmVudE1lZGlhVGltZTsKQEAgLTE0NjgsOCArMTQ2Niw4IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRp
bWUmIHRpbWUsIGNvbnN0CiAgICAgQ01UaW1lIGNtQWZ0ZXIgPSBQQUw6OnRvQ01UaW1lKHBvc2l0
aXZlVG9sZXJhbmNlKTsKIAogICAgIC8vIFtBVlBsYXllckl0ZW0gc2Vla1RvVGltZV0gd2lsbCB0
aHJvdyBhbiBleGNlcHRpb24gaWYgdG9sZXJhbmNlQmVmb3JlIGlzIG5lZ2F0aXZlLgotICAgIGlm
IChDTVRpbWVDb21wYXJlKGNtQmVmb3JlLCBrQ01UaW1lWmVybykgPCAwKQotICAgICAgICBjbUJl
Zm9yZSA9IGtDTVRpbWVaZXJvOworICAgIGlmIChQQUw6OkNNVGltZUNvbXBhcmUoY21CZWZvcmUs
IFBBTDo6a0NNVGltZVplcm8pIDwgMCkKKyAgICAgICAgY21CZWZvcmUgPSBQQUw6OmtDTVRpbWVa
ZXJvOwogICAgIAogICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAKQEAg
LTE1ODYsNiArMTU4NCw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c2V0UGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKE1lZGlhUGxheWVyCiAKIHN0ZDo6dW5pcXVl
X3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBsYXRmb3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1l
c3BhY2UgUEFMOyAvLyBGb3IgQ01USU1FUkFOR0VfSVNfRU1QVFkuCisKICAgICBhdXRvIHRpbWVS
YW5nZXMgPSBtYWtlVW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKIAogICAgIGlmICghbV9h
dlBsYXllckl0ZW0pCkBAIC0xNTk0LDEzICsxNTk0LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRm
b3JtCiAgICAgZm9yIChOU1ZhbHVlICp0aGlzUmFuZ2VWYWx1ZSBpbiBtX2NhY2hlZExvYWRlZFJh
bmdlcy5nZXQoKSkgewogICAgICAgICBDTVRpbWVSYW5nZSB0aW1lUmFuZ2UgPSBbdGhpc1Jhbmdl
VmFsdWUgQ01UaW1lUmFuZ2VWYWx1ZV07CiAgICAgICAgIGlmIChDTVRJTUVSQU5HRV9JU19WQUxJ
RCh0aW1lUmFuZ2UpICYmICFDTVRJTUVSQU5HRV9JU19FTVBUWSh0aW1lUmFuZ2UpKQotICAgICAg
ICAgICAgdGltZVJhbmdlcy0+YWRkKFBBTDo6dG9NZWRpYVRpbWUodGltZVJhbmdlLnN0YXJ0KSwg
UEFMOjp0b01lZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKSk7CisgICAgICAg
ICAgICB0aW1lUmFuZ2VzLT5hZGQoUEFMOjp0b01lZGlhVGltZSh0aW1lUmFuZ2Uuc3RhcnQpLCBQ
QUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSkpOwogICAg
IH0KICAgICByZXR1cm4gdGltZVJhbmdlczsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWluVGltZVNlZWthYmxlKCkgY29uc3QKIHsK
KyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1FUkFOR0VfSVNfRU1QVFkuCisK
ICAgICBpZiAoIW1fY2FjaGVkU2Vla2FibGVSYW5nZXMgfHwgIVttX2NhY2hlZFNlZWthYmxlUmFu
Z2VzIGNvdW50XSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIApAQCAt
MTYyMSw2ICsxNjIzLDggQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBsYXRmb3JtTWluVGltZVNlZWthYmxlKCkgY29uc3QKIAogTWVkaWFUaW1lIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkg
Y29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAvLyBGb3IgQ01USU1FUkFOR0VfSVNf
RU1QVFkuCisKICAgICBpZiAoIW1fY2FjaGVkU2Vla2FibGVSYW5nZXMpCiAgICAgICAgIG1fY2Fj
aGVkU2Vla2FibGVSYW5nZXMgPSBbbV9hdlBsYXllckl0ZW0gc2Vla2FibGVUaW1lUmFuZ2VzXTsK
IApAQCAtMTYzMyw3ICsxNjM3LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3QKICAgICAgICAgaWYg
KCFDTVRJTUVSQU5HRV9JU19WQUxJRCh0aW1lUmFuZ2UpIHx8IENNVElNRVJBTkdFX0lTX0VNUFRZ
KHRpbWVSYW5nZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIE1l
ZGlhVGltZSBlbmRPZlJhbmdlID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0
aW1lUmFuZ2UpKTsKKyAgICAgICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFU
aW1lKFBBTDo6Q01UaW1lUmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CiAgICAgICAgIGlmIChtYXhU
aW1lU2Vla2FibGUgPCBlbmRPZlJhbmdlKQogICAgICAgICAgICAgbWF4VGltZVNlZWthYmxlID0g
ZW5kT2ZSYW5nZTsKICAgICB9CkBAIC0xNjQyLDYgKzE2NDYsOCBAQCBNZWRpYVRpbWUgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1NYXhUaW1lU2Vla2FibGUoKSBj
b25zdAogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxh
dGZvcm1NYXhUaW1lTG9hZGVkKCkgY29uc3QKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgUEFMOyAv
LyBGb3IgQ01USU1FUkFOR0VfSVNfRU1QVFkuCisKICAgICBpZiAoIW1fY2FjaGVkTG9hZGVkUmFu
Z2VzKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCkBAIC0xNjUxLDcg
KzE2NTcsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cGxhdGZvcm1NYXhUaW1lTG9hZGVkKCkgY29uc3QKICAgICAgICAgaWYgKCFDTVRJTUVSQU5HRV9J
U19WQUxJRCh0aW1lUmFuZ2UpIHx8IENNVElNRVJBTkdFX0lTX0VNUFRZKHRpbWVSYW5nZSkpCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIE1lZGlhVGltZSBlbmRPZlJh
bmdlID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWVSYW5nZUdldEVuZCh0aW1lUmFuZ2UpKTsKKyAg
ICAgICAgTWVkaWFUaW1lIGVuZE9mUmFuZ2UgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1l
UmFuZ2VHZXRFbmQodGltZVJhbmdlKSk7CiAgICAgICAgIGlmIChtYXhUaW1lTG9hZGVkIDwgZW5k
T2ZSYW5nZSkKICAgICAgICAgICAgIG1heFRpbWVMb2FkZWQgPSBlbmRPZlJhbmdlOwogICAgIH0K
QEAgLTE4MDMsNyArMTgwOSw3IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlCiAgICAgTW9ub3Rv
bmljVGltZSBzdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogCiAgICAgW21faW1hZ2VHZW5l
cmF0b3IuZ2V0KCkgc2V0TWF4aW11bVNpemU6Q0dTaXplKHJlY3Quc2l6ZSgpKV07Ci0gICAgUmV0
YWluUHRyPENHSW1hZ2VSZWY+IHJhd0ltYWdlID0gYWRvcHRDRihbbV9pbWFnZUdlbmVyYXRvci5n
ZXQoKSBjb3B5Q0dJbWFnZUF0VGltZTpDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgNjAwKSBh
Y3R1YWxUaW1lOm5pbCBlcnJvcjpuaWxdKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmF3
SW1hZ2UgPSBhZG9wdENGKFttX2ltYWdlR2VuZXJhdG9yLmdldCgpIGNvcHlDR0ltYWdlQXRUaW1l
OlBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYwMCkgYWN0dWFsVGltZTpuaWwgZXJy
b3I6bmlsXSk7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gYWRvcHRDRihDR0lt
YWdlQ3JlYXRlQ29weVdpdGhDb2xvclNwYWNlKHJhd0ltYWdlLmdldCgpLCBzUkdCQ29sb3JTcGFj
ZVJlZigpKSk7CiAKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAiY3JlYXRpbmcgaW1hZ2Ug
dG9vayAiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydCkuc2Vjb25kcygpKTsKQEAgLTE5
ODksNyArMTk5NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
ZGlkU3RvcExvYWRpbmdSZXF1ZXN0KEFWQXNzZXRSZXNvdXJjZUxvCiAKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBQ
QUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgaXNDb3JlTWVkaWFGcmFt
ZXdvcmtBdmFpbGFibGUoKTsKKyAgICByZXR1cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29y
a0F2YWlsYWJsZSgpICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKTsKIH0K
IAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1lZGlhVGlt
ZUZvclRpbWVWYWx1ZShjb25zdCBNZWRpYVRpbWUmIHRpbWVWYWx1ZSkgY29uc3QKQEAgLTI5MDEs
NyArMjkwNyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqZXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9y
UGxheWVyKEFWUGxheWVyICpwbGF5ZXIpCiAgICAgaWYgKCFQQUw6OmlzQVZGb3VuZGF0aW9uRnJh
bWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBpZiAoYXV0byBj
b250ZXh0ID0gT3V0cHV0Q29udGV4dDo6c2hhcmVkQXVkaW9QcmVzZW50YXRpb25PdXRwdXRDb250
ZXh0KCkpCisgICAgaWYgKGF1dG8gY29udGV4dCA9IFBBTDo6T3V0cHV0Q29udGV4dDo6c2hhcmVk
QXVkaW9QcmVzZW50YXRpb25PdXRwdXRDb250ZXh0KCkpCiAgICAgICAgIHJldHVybiBjb250ZXh0
LT5kZXZpY2VOYW1lKCk7CiAKICAgICBpZiAocGxheWVyLmV4dGVybmFsUGxheWJhY2tUeXBlICE9
IEFWUGxheWVyRXh0ZXJuYWxQbGF5YmFja1R5cGVBaXJQbGF5KQpAQCAtMzIzNSw5ICszMjQxLDkg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZXRhZGF0YUdyb3Vw
RGlkQXJyaXZlKGNvbnN0IFJldGFpblB0cjwKICAgICAgICAgZm9yIChBVk1ldGFkYXRhSXRlbSAq
aXRlbSBpbiBncm91cC5pdGVtcykgewogICAgICAgICAgICAgUmV0YWluUHRyPEFWTXV0YWJsZU1l
dGFkYXRhSXRlbT4gaXRlbUNvcHkgPSBhZG9wdE5TKFtpdGVtIG11dGFibGVDb3B5XSk7CiAgICAg
ICAgICAgICBpZiAoIUNNVElNRV9JU19WQUxJRChpdGVtQ29weS5nZXQoKS50aW1lKSkKLSAgICAg
ICAgICAgICAgICBpdGVtQ29weS5nZXQoKS50aW1lID0gQ01UaW1lTWFrZVdpdGhTZWNvbmRzKGdy
b3VwU3RhcnRUaW1lLCBNZWRpYVRpbWU6OkRlZmF1bHRUaW1lU2NhbGUpOworICAgICAgICAgICAg
ICAgIGl0ZW1Db3B5LmdldCgpLnRpbWUgPSBQQUw6OkNNVGltZU1ha2VXaXRoU2Vjb25kcyhncm91
cFN0YXJ0VGltZSwgTWVkaWFUaW1lOjpEZWZhdWx0VGltZVNjYWxlKTsKICAgICAgICAgICAgIGlm
ICghQ01USU1FX0lTX1ZBTElEKGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uKSkKLSAgICAgICAgICAg
ICAgICBpdGVtQ29weS5nZXQoKS5kdXJhdGlvbiA9IHRvQ01UaW1lKGdyb3VwRHVyYXRpb24pOwor
ICAgICAgICAgICAgICAgIGl0ZW1Db3B5LmdldCgpLmR1cmF0aW9uID0gUEFMOjp0b0NNVGltZShn
cm91cER1cmF0aW9uKTsKICAgICAgICAgICAgIFtncm91cENvcHkgYWRkT2JqZWN0Oml0ZW1Db3B5
LmdldCgpXTsKICAgICAgICAgfQogCkBAIC0zMjc5LDcgKzMyODUsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKGNvbnN0IFJldGFp
blB0cjxOU0FycgogCiAgICAgICAgIE1lZGlhVGltZSBlbmQgPSBNZWRpYVRpbWU6OnBvc2l0aXZl
SW5maW5pdGVUaW1lKCk7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBpdGVtLmR1cmF0aW9uOwot
ICAgICAgICBpZiAoQ01USU1FX0lTX1ZBTElEKGR1cmF0aW9uKSAmJiBDTVRpbWVHZXRTZWNvbmRz
KGR1cmF0aW9uKSA+IDAuMDAxKQorICAgICAgICBpZiAoQ01USU1FX0lTX1ZBTElEKGR1cmF0aW9u
KSAmJiBQQUw6OkNNVGltZUdldFNlY29uZHMoZHVyYXRpb24pID4gMC4wMDEpCiAgICAgICAgICAg
ICBlbmQgPSBzdGFydCArIFBBTDo6dG9NZWRpYVRpbWUoZHVyYXRpb24pOwogCiAgICAgICAgIEF0
b21TdHJpbmcgdHlwZSA9IG51bGxBdG9tKCk7CkBAIC0zNDU4LDcgKzM0NjQsNyBAQCBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUo
V1RGOjpGdW5jdGlvbjx2bwogICAgIGlmIChtX3RpbWVPYnNlcnZlcikKICAgICAgICAgW21fYXZQ
bGF5ZXIgcmVtb3ZlVGltZU9ic2VydmVyOm1fdGltZU9ic2VydmVyLmdldCgpXTsKIAotICAgIG1f
dGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1l
czpAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTp0b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeeworICAgIG1fdGltZU9ic2VydmVyID0g
W21fYXZQbGF5ZXIgYWRkQm91bmRhcnlUaW1lT2JzZXJ2ZXJGb3JUaW1lczpAW1tOU1ZhbHVlIHZh
bHVlV2l0aENNVGltZTpQQUw6OnRvQ01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CiAgICAgICAgIHRhc2tJbigpOwogICAgIH1dOwogICAg
IHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDVhNjlhYTY3OTUx
ODljYjRlMDc2ZDMxOTQ2OWY5OTY1MDRmZjk0NmMuLjczYWRlYjliYjczYTc4MjhkZjVhM2Y0ODRj
NWY5MGUzMzNkMjQxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTY2LDcgKzY2
LDYgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU3RvcmFnZURpcmVjdG9yeUF0VVJMOihOU1VS
TCAqKXN0b3JhZ2VEaXJlY3Rvcnk7CiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiAKIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OlNlZWtTdGF0ZSBlbnVtZXJhdGlvblZh
bHVlKQogewpAQCAtMTE2LDE1ICsxMTUsMTUgQEAgc3RhdGljIHZvaWQgQ01UaW1lYmFzZUVmZmVj
dGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2soQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsIGNvbnMKIAog
dm9pZCBFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpzdG9wKENNVGltZWJhc2VSZWYgdGlt
ZWJhc2UpCiB7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMgPSBDTU5vdGlmaWNhdGlv
bkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpOwotICAgIENNTm90aWZpY2F0aW9uQ2VudGVy
UmVtb3ZlTGlzdGVuZXIobmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENh
bGxiYWNrLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRlQ2hhbmdlZCwgdGlt
ZWJhc2UpOworICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0gUEFMOjpDTU5vdGlmaWNh
dGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpOworICAgIFBBTDo6Q01Ob3RpZmljYXRp
b25DZW50ZXJSZW1vdmVMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVmZmVjdGl2ZVJhdGVD
aGFuZ2VkQ2FsbGJhY2ssIFBBTDo6a0NNVGltZWJhc2VOb3RpZmljYXRpb25fRWZmZWN0aXZlUmF0
ZUNoYW5nZWQsIHRpbWViYXNlKTsKIH0KIAogRWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcjo6
RWZmZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcihNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMmIGNsaWVudCwgQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKICAgICA6IG1fY2xpZW50
KG1ha2VXZWFrUHRyKGNsaWVudCkpCiB7Ci0gICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYgbmMg
PSBDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpOwotICAgIENNTm90
aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIobmMsIHRoaXMsIENNVGltZWJhc2VFZmZlY3RpdmVS
YXRlQ2hhbmdlZENhbGxiYWNrLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9FZmZlY3RpdmVSYXRl
Q2hhbmdlZCwgdGltZWJhc2UsIDApOworICAgIENNTm90aWZpY2F0aW9uQ2VudGVyUmVmIG5jID0g
UEFMOjpDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpOworICAgIFBB
TDo6Q01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihuYywgdGhpcywgQ01UaW1lYmFzZUVm
ZmVjdGl2ZVJhdGVDaGFuZ2VkQ2FsbGJhY2ssIFBBTDo6a0NNVGltZWJhc2VOb3RpZmljYXRpb25f
RWZmZWN0aXZlUmF0ZUNoYW5nZWQsIHRpbWViYXNlLCAwKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMoTWVkaWFQbGF5ZXIqIHBsYXllcikKQEAgLTE1Nyw3ICsxNTYsNyBAQCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQyhNZWRpYQogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIERFQlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInN5bmNocm9uaXplciBmaXJl
ZCBmb3IgIiwgdG9NZWRpYVRpbWUodGltZSksICIsIHNlZWtpbmcgPSAiLCBtX3NlZWtpbmcsICIs
IHBlbmRpbmcgPSAiLCAhIW1fcGVuZGluZ1NlZWspOworICAgICAgICBERUJVR19MT0cobG9nU2l0
ZUlkZW50aWZpZXIsICJzeW5jaHJvbml6ZXIgZmlyZWQgZm9yICIsIFBBTDo6dG9NZWRpYVRpbWUo
dGltZSksICIsIHNlZWtpbmcgPSAiLCBtX3NlZWtpbmcsICIsIHBlbmRpbmcgPSAiLCAhIW1fcGVu
ZGluZ1NlZWspOwogCiAgICAgICAgIGlmIChtX3NlZWtpbmcgJiYgIW1fcGVuZGluZ1NlZWspIHsK
ICAgICAgICAgICAgIG1fc2Vla2luZyA9IGZhbHNlOwpAQCAtMjM4LDExICsyMzcsMTEgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdp
bmUoTWVkaWFFbmdpbmVSZWdpc3QKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjppc0F2YWlsYWJsZSgpCiB7CiAgICAgcmV0dXJuIFBBTDo6aXNBVkZvdW5kYXRpb25G
cmFtZXdvcmtBdmFpbGFibGUoKQotICAgICAgICAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWls
YWJsZSgpCi0gICAgICAgICYmIGdldEFWU3RyZWFtRGF0YVBhcnNlckNsYXNzKCkKLSAgICAgICAg
JiYgZ2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKQotICAgICAgICAmJiBnZXRB
VlNhbXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplckNsYXNzKCkKLSAgICAgICAgJiYgY2xhc3Nf
Z2V0SW5zdGFuY2VNZXRob2QoZ2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKSwg
QHNlbGVjdG9yKHNldE11dGVkOikpOworICAgICAgICAmJiBQQUw6OmlzQ29yZU1lZGlhRnJhbWV3
b3JrQXZhaWxhYmxlKCkKKyAgICAgICAgJiYgUEFMOjpnZXRBVlN0cmVhbURhdGFQYXJzZXJDbGFz
cygpCisgICAgICAgICYmIFBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3Mo
KQorICAgICAgICAmJiBQQUw6OmdldEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyQ2xh
c3MoKQorICAgICAgICAmJiBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChQQUw6OmdldEFWU2FtcGxl
QnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCksIEBzZWxlY3RvcihzZXRNdXRlZDopKTsKIH0KIAog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcykKQEAg
LTQxNyw3ICs0MTYsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjpkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0CiAKIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdAogewot
ICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01lZGlhVGltZShDTVRpbWVi
YXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSk7CisgICAgTWVkaWFUaW1lIHN5
bmNocm9uaXplclRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdldFRpbWUo
W21fc3luY2hyb25pemVyIHRpbWViYXNlXSkpOwogICAgIGlmIChzeW5jaHJvbml6ZXJUaW1lIDwg
TWVkaWFUaW1lOjp6ZXJvVGltZSgpKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGlt
ZSgpOwogICAgIGlmIChzeW5jaHJvbml6ZXJUaW1lIDwgbV9sYXN0U2Vla1RpbWUpCkBAIC00MzAs
NyArNDI5LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
dEN1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2soTWVkaWEKICAgICBtX2N1cnJlbnRUaW1lRGlk
Q2hhbmdlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIAogICAgIGlmIChtX2N1cnJlbnRU
aW1lRGlkQ2hhbmdlQ2FsbGJhY2spIHsKLSAgICAgICAgbV90aW1lQ2hhbmdlZE9ic2VydmVyID0g
W21fc3luY2hyb25pemVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6Q01UaW1l
TWFrZSgxLCAxMCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl4o
Q01UaW1lIHRpbWUpIHsKKyAgICAgICAgbV90aW1lQ2hhbmdlZE9ic2VydmVyID0gW21fc3luY2hy
b25pemVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6UEFMOjpDTVRpbWVNYWtl
KDEsIDEwKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XihDTVRp
bWUgdGltZSkgewogICAgICAgICAgICAgaWYgKG1fY3VycmVudFRpbWVEaWRDaGFuZ2VDYWxsYmFj
aykKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRUaW1lRGlkQ2hhbmdlQ2FsbGJhY2soQ01USU1F
X0lTX05VTUVSSUModGltZSkgPyBQQUw6OnRvTWVkaWFUaW1lKHRpbWUpIDogTWVkaWFUaW1lOjp6
ZXJvVGltZSgpKTsKICAgICAgICAgfV07CkBAIC00ODIsNyArNDgxLDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNlZWtJbnRlcm5hbCgpCiAgICAgaWYgKG1f
bGFzdFNlZWtUaW1lLmhhc0RvdWJsZVZhbHVlKCkpCiAgICAgICAgIG1fbGFzdFNlZWtUaW1lID0g
TWVkaWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKG1fbGFzdFNlZWtUaW1lLnRvRG91YmxlKCksIE1l
ZGlhVGltZTo6RGVmYXVsdFRpbWVTY2FsZSk7CiAKLSAgICBNZWRpYVRpbWUgc3luY2hyb25pemVy
VGltZSA9IFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hyb25pemVy
IHRpbWViYXNlXSkpOworICAgIE1lZGlhVGltZSBzeW5jaHJvbml6ZXJUaW1lID0gUEFMOjp0b01l
ZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0p
KTsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAic2Vla1RpbWUgPSAiLCBtX2xhc3RTZWVr
VGltZSwgIiwgc3luY2hyb25pemVyVGltZSA9ICIsIHN5bmNocm9uaXplclRpbWUpOwogCiAgICAg
Ym9vbCBkb2VzTm90UmVxdWlyZVNlZWsgPSBzeW5jaHJvbml6ZXJUaW1lID09IG1fbGFzdFNlZWtU
aW1lOwpAQCAtNTk5LDcgKzU5OCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKQogICAgIGlmIChtX3ZpZGVvT3V0cHV0
KSB7CiAgICAgICAgIENNVGltZSBvdXRwdXRUaW1lOwogICAgICAgICBpZiAoYXV0byBwaXhlbEJ1
ZmZlciA9IGFkb3B0Q0YoW21fdmlkZW9PdXRwdXQgY29weVBpeGVsQnVmZmVyRm9yU291cmNlVGlt
ZTp0b0NNVGltZShjdXJyZW50TWVkaWFUaW1lKCkpIHNvdXJjZVRpbWVGb3JEaXNwbGF5OiZvdXRw
dXRUaW1lXSkpIHsKLSAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJuZXcgcGl4
ZWxidWZmZXIgZm91bmQgZm9yIHRpbWUgIiwgdG9NZWRpYVRpbWUob3V0cHV0VGltZSkpOworICAg
ICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIm5ldyBwaXhlbGJ1ZmZlciBmb3VuZCBm
b3IgdGltZSAiLCBQQUw6OnRvTWVkaWFUaW1lKG91dHB1dFRpbWUpKTsKICAgICAgICAgICAgIG1f
bGFzdFBpeGVsQnVmZmVyID0gV1RGTW92ZShwaXhlbEJ1ZmZlcik7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtODA5LDcgKzgwOCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpkZXN0cm95TGF5ZXIoKQogICAgIGlmICghbV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIENNVGltZSBjdXJy
ZW50VGltZSA9IENNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOwor
ICAgIENNVGltZSBjdXJyZW50VGltZSA9IFBBTDo6Q01UaW1lYmFzZUdldFRpbWUoW21fc3luY2hy
b25pemVyIHRpbWViYXNlXSk7CiAgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJlbmRlcmVyOm1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpIGF0VGltZTpjdXJyZW50VGltZSB3aXRoQ29t
cGxldGlvbkhhbmRsZXI6XihCT09MKXsKICAgICAgICAgLy8gTm8tb3AuCiAgICAgfV07CkBAIC0x
MDE4LDcgKzEwMTcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6Zmx1c2hQZW5kaW5nU2l6ZUNoYW5nZXMoKQogI2lmIEhBVkUoQVZTVFJFQU1TRVNTSU9OKQog
QVZTdHJlYW1TZXNzaW9uKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN0
cmVhbVNlc3Npb24oKQogewotICAgIGlmICghZ2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSB8fCAh
W1BBTDo6Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCisgICAgaWYgKCFQ
QUw6OmdldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgfHwgIVtQQUw6OmdldEFWU3RyZWFtU2Vzc2lv
bkNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRXaXRoU3Rv
cmFnZURpcmVjdG9yeUF0VVJMOildKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgaWYgKCFt
X3N0cmVhbVNlc3Npb24pIHsKQEAgLTEyMTcsNyArMTIxNiw3IEBAIEFMTE9XX05FV19BUElfV0lU
SE9VVF9HVUFSRFNfRU5ECiAgICAgaWYgKGl0ZXIgPT0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBDTVRpbWUgY3VycmVudFRpbWUg
PSBDTVRpbWViYXNlR2V0VGltZShbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKTsKKyAgICBDTVRp
bWUgY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZWJhc2VHZXRUaW1lKFttX3N5bmNocm9uaXplciB0
aW1lYmFzZV0pOwogICAgIFttX3N5bmNocm9uaXplciByZW1vdmVSZW5kZXJlcjphdWRpb1JlbmRl
cmVyIGF0VGltZTpjdXJyZW50VGltZSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MKXsKICAg
ICAgICAgLy8gTm8tb3AuCiAgICAgfV07CkBAIC0xMzAxLDcgKzEzMDAsNyBAQCBib29sIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShX
VEY6OkZ1bmN0aW9uPAogICAgIGlmIChtX3BlcmZvcm1UYXNrT2JzZXJ2ZXIpCiAgICAgICAgIFtt
X3N5bmNocm9uaXplciByZW1vdmVUaW1lT2JzZXJ2ZXI6bV9wZXJmb3JtVGFza09ic2VydmVyLmdl
dCgpXTsKIAotICAgIG1fcGVyZm9ybVRhc2tPYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRC
b3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOkBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRv
Q01UaW1lKHRpbWUpXV0gcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2Nr
Ol57CisgICAgbV9wZXJmb3JtVGFza09ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZEJvdW5k
YXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWU6UEFMOjp0
b0NNVGltZSh0aW1lKV1dIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9j
azpeewogICAgICAgICB0YXNrSW4oKTsKICAgICB9XTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCBlMWFkMTAyYmI5ODFiZjM3NGU2YmQ5MzdjMGM2ZTJh
ODdmNDBmMTVmLi41NWI1MDBjNTdlOTNlYmJhNDk2YWU3NDE2ZmQ1ZGY3OGQ3Yjk0NThlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJHcmFw
aGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKyNpbXBvcnQgIk1lZGlhUGxheWVyLmgiCiAjaW1wb3J0
ICJNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCIKICNpbXBvcnQgIk1lZGlhU3RyZWFtUHJpdmF0
ZS5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgpAQCAtMTIxLDcgKzEyMiw2
IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9m
T2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdp
bmUoTWVkaWFFbmdpbmVSZWdpc3QKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gaXNBVkZvdW5kYXRpb25GcmFt
ZXdvcmtBdmFpbGFibGUoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpICYmIGdl
dEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKTsKKyAgICByZXR1cm4gUEFMOjppc0FW
Rm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6aXNDb3JlTWVkaWFGcmFtZXdv
cmtBdmFpbGFibGUoKSAmJiBQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3Mo
KTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmdldFN1
cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0
eXBlcykKQEAgLTIzMCw3ICsyMzAsNyBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogc3RhdGlj
IGlubGluZSBDR0FmZmluZVRyYW5zZm9ybSB2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlh
U2FtcGxlJiBzYW1wbGUpCiB7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0g
c2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOwotICAgIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihD
TVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZUJ1ZmZlcikpOworICAgIENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CiAgICAgc2l6ZV90
IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKICAgICBzaXplX3Qg
aGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcik7CiAgICAgaWYgKCF3
aWR0aCB8fCAhaGVpZ2h0KQpAQCAtOTYwLDcgKzk2MCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpCiAgICAgaWYg
KCFtX2ltYWdlUGFpbnRlci5waXhlbEJ1ZmZlckNvbmZvcm1lcikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUtPnBs
YXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7CisgICAgYXV0byBwaXhlbEJ1
ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXRJbWFnZUJ1ZmZlcihtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUo
KS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKICAgICBtX2ltYWdlUGFpbnRlci5jZ0ltYWdlID0g
TmF0aXZlSW1hZ2U6OmNyZWF0ZShtX2ltYWdlUGFpbnRlci5waXhlbEJ1ZmZlckNvbmZvcm1lci0+
Y3JlYXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTYW1wbGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4IDJmNDk4Mzg3NjVkM2M5
NDQxYjY5YmI5NTE4YjNiMWY5YTg3OTUwOWIuLmMwZjEzZDZlYTVjOTc1NzY3Y2U4ZjYyYWI2ODQy
ZDdkNmYwZmJiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9i
akMubW0KQEAgLTM2LDkgKzM2LDEyIEBACiAjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgog
I2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7Ci0KLVdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ01TYW1wbGVCdWZmZXIpOworLy8gRXF1
aXZhbGVudCB0byBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKENNU2FtcGxlQnVmZmVyKTsKKy8v
IE5lZWRlZCBkdWUgdG8gcmVxdWlyZW1lbnQgb2Ygc3BlY2lmeWluZyB0aGUgUEFMIG5hbWVzcGFj
ZS4KK3RlbXBsYXRlIDw+CitzdHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxDTVNhbXBsZUJ1ZmZlclJl
Zj4geworICAgIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQgdHlwZUlEKHZvaWQpIHsgcmV0dXJuIFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRUeXBlSUQoKTsgfQorfTsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC02NywzNSArNzAsMzUgQEAgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFT
YW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZShQaXhlbEJ1ZmZlciYmIHAKICAgICBBU1NF
UlRfVU5VU0VEKHN0YXR1cywgIXN0YXR1cyk7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0RGVzY3JpcHRpb25SYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvblJhdyk7CisgICAgc3Rh
dHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBjdlBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVzY3JpcHRp
b25SYXcpOwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIGZvcm1hdERlc2NyaXB0aW9u
ID0gYWRvcHRDRihmb3JtYXREZXNjcmlwdGlvblJhdyk7CiAKLSAgICBDTVNhbXBsZVRpbWluZ0lu
Zm8gc2FtcGxlVGltaW5nSW5mb3JtYXRpb24gPSB7IGtDTVRpbWVJbnZhbGlkLCBrQ01UaW1lSW52
YWxpZCwga0NNVGltZUludmFsaWQgfTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gc2FtcGxlVGlt
aW5nSW5mb3JtYXRpb24gPSB7IFBBTDo6a0NNVGltZUludmFsaWQsIFBBTDo6a0NNVGltZUludmFs
aWQsIFBBTDo6a0NNVGltZUludmFsaWQgfTsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVC
dWZmZXJSYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVh
ZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY3ZQaXhlbEJ1ZmZlci5nZXQo
KSwgZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1pbmdJbmZvcm1hdGlvbiwgJnNh
bXBsZUJ1ZmZlclJhdyk7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJl
YWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGN2UGl4ZWxCdWZmZXIuZ2V0
KCksIGZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCAmc2FtcGxlVGltaW5nSW5mb3JtYXRpb24sICZz
YW1wbGVCdWZmZXJSYXcpOwogICAgIEFTU0VSVCghc3RhdHVzKTsKICAgICBhdXRvIHNhbXBsZUJ1
ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyUmF3KTsKIAotICAgIENGQXJyYXlSZWYgYXR0YWNo
bWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1w
bGVCdWZmZXIuZ2V0KCksIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZl
ci5nZXQoKSwgdHJ1ZSk7CiAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlH
ZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgQ0ZN
dXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFi
bGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXks
IGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNhbXBs
ZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAg
ICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFj
aG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgfQogICAg
IHJldHVybiBjcmVhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlh
U2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0CiB7Ci0gICAgYXV0byB0aW1l
U3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Nh
bXBsZS5nZXQoKSk7CisgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01U
SU1FX0lTX0lOVkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgdGltZVN0YW1wID0gQ01TYW1wbGVC
dWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOworICAgICAgICB0
aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1f
c2FtcGxlLmdldCgpKTsKICAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApOwog
fQogCiBNZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIHsK
LSAgICBhdXRvIHRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1f
c2FtcGxlLmdldCgpKTsKKyAgICBhdXRvIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJH
ZXREZWNvZGVUaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChDTVRJTUVfSVNfSU5W
QUxJRCh0aW1lU3RhbXApKQogICAgICAgICByZXR1cm4gcHJlc2VudGF0aW9uVGltZSgpOwogICAg
IHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCk7CkBAIC0xMDMsMTUgKzEwNiwxNSBA
QCBNZWRpYVRpbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpkZWNvZGVUaW1lKCkgY29uc3QKIAogTWVk
aWFUaW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6ZHVyYXRpb24oKSBjb25zdAogewotICAgIGF1dG8g
ZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0aW9uKG1fc2FtcGxlLmdldCgp
KTsKKyAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1dER1cmF0
aW9uKG1fc2FtcGxlLmdldCgpKTsKICAgICBpZiAoQ01USU1FX0lTX0lOVkFMSUQoZHVyYXRpb24p
KQotICAgICAgICBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24obV9zYW1wbGUu
Z2V0KCkpOworICAgICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlv
bihtX3NhbXBsZS5nZXQoKSk7CiAgICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUoZHVyYXRpb24p
OwogfQogCiBzaXplX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjpzaXplSW5CeXRlcygpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplKG1fc2FtcGxlLmdl
dCgpKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFRvdGFsU2FtcGxlU2l6ZSht
X3NhbXBsZS5nZXQoKSk7CiB9CiAKIFBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQVZGT2JqQzo6
cGxhdGZvcm1TYW1wbGUoKQpAQCAtMTIyLDIzICsxMjUsMjMgQEAgUGxhdGZvcm1TYW1wbGUgTWVk
aWFTYW1wbGVBVkZPYmpDOjpwbGF0Zm9ybVNhbXBsZSgpCiAKIHVpbnQzMl90IE1lZGlhU2FtcGxl
QVZGT2JqQzo6dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0CiB7Ci0gICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VC
dWZmZXIobV9zYW1wbGUuZ2V0KCkpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1f
c2FtcGxlLmdldCgpKSk7CiAgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5
cGUocGl4ZWxCdWZmZXIpOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNo
bWVudFJhbmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCiB7Ci0gICAg
cmV0dXJuICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGljdCwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Ob3RTeW5jKTsKKyAgICByZXR1cm4gIUNGRGljdGlvbmFyeUNvbnRhaW5z
S2V5KGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7
CiB9CiAKIHN0YXRpYyBib29sIGRvZXNDTVNhbXBsZUJ1ZmZlckhhdmVTeW5jSW5mbyhDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGUpCiB7Ci0gICAgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
QXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CiB9CiAKIHN0
YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlKQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBh
dHRhY2htZW50cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5
KHNhbXBsZSwgZmFsc2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIApAQCAtMTUxLDEyICsxNTQsMTIgQEAgc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1
ZmZlclJhbmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiAKIHN0YXRpYyBib29s
IGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyhDRkRpY3Rpb25hcnlSZWYg
YXR0YWNobWVudERpY3QpCiB7Ci0gICAgcmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0
dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSk7CisgICAg
cmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNh
bXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNh
bXBsZUJ1ZmZlck5vbkRpc3BsYXlpbmcoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlKQogewotICAg
IENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1l
bnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2Up
OwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAg
LTE4NiwxMSArMTg5LDExIEBAIE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBNZWRpYVNhbXBsZUFW
Rk9iakM6OmZsYWdzKCkgY29uc3QKIAogRmxvYXRTaXplIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJl
c2VudGF0aW9uU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9zYW1w
bGUuZ2V0KCkpOwotICAgIGlmIChDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGZvcm1h
dERlc2NyaXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVfVmlkZW8pCisgICAgQ01Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXRE
ZXNjcmlwdGlvbihtX3NhbXBsZS5nZXQoKSk7CisgICAgaWYgKFBBTDo6Q01Gb3JtYXREZXNjcmlw
dGlvbkdldE1lZGlhVHlwZShmb3JtYXREZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVv
KQogICAgICAgICByZXR1cm4gRmxvYXRTaXplKCk7CiAgICAgCi0gICAgcmV0dXJuIEZsb2F0U2l6
ZShDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zKGZvcm1h
dERlc2NyaXB0aW9uLCB0cnVlLCB0cnVlKSk7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShQQUw6OkNN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVz
Y3JpcHRpb24sIHRydWUsIHRydWUpKTsKIH0KIAogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKQEAgLTIwMSwxMiArMjA0LDEyIEBAIHZvaWQgTWVk
aWFTYW1wbGVBVkZPYmpDOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB2b2lkIE1lZGlh
U2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0
KQogewogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBu
dWxscHRyLCAmaXRlbUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0
ZW1Db3VudCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1p
bmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNv
dW50KTsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
QXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwg
bnVsbHB0cikpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5
LmRhdGEoKSwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBmb3IgKGF1dG8m
IHRpbWluZyA6IHRpbWluZ0luZm9BcnJheSkgewpAQCAtMjE1LDcgKzIxOCw3IEBAIHZvaWQgTWVk
aWFTYW1wbGVBVkZPYmpDOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZz
ZXQpCiAgICAgfQogICAgIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1NhbXBsZTsKLSAgICBp
ZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXku
ZGF0YSgpLCAmbmV3U2FtcGxlKSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdl
dCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGUpKQogICAg
ICAgICByZXR1cm47CiAgICAgCiAgICAgbV9zYW1wbGUgPSBhZG9wdENGKG5ld1NhbXBsZSk7CkBA
IC0yMjQsMTIgKzIyNywxMiBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6b2Zmc2V0VGltZXN0
YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgb2Zmc2V0KQogdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6
OnNldFRpbWVzdGFtcHMoY29uc3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGFt
cCwgY29uc3QgV1RGOjpNZWRpYVRpbWUgJmRlY29kZVRpbWVzdGFtcCkKIHsKICAgICBDTUl0ZW1D
b3VudCBpdGVtQ291bnQgPSAwOwotICAgIGlmIChub0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShtX3NhbXBsZS5nZXQoKSwgMCwgbnVsbHB0ciwgJml0ZW1Db3Vu
dCkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkobV9zYW1wbGUuZ2V0KCksIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltaW5nSW5m
b0FycmF5OwogICAgIHRpbWluZ0luZm9BcnJheS5ncm93KGl0ZW1Db3VudCk7Ci0gICAgaWYgKG5v
RXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1fc2FtcGxlLmdl
dCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlm
IChub0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG1f
c2FtcGxlLmdldCgpLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIp
KQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgZm9yIChhdXRvJiB0aW1pbmcgOiB0aW1pbmdJ
bmZvQXJyYXkpIHsKQEAgLTIzOCw3ICsyNDEsNyBAQCB2b2lkIE1lZGlhU2FtcGxlQVZGT2JqQzo6
c2V0VGltZXN0YW1wcyhjb25zdCBXVEY6Ok1lZGlhVGltZSAmcHJlc2VudGF0aW9uVGltZXN0YQog
ICAgIH0KICAgICAKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGU7Ci0gICAgaWYgKG5v
RXJyICE9IENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgJm5ld1NhbXBsZSkpCisgICAgaWYgKG5vRXJyICE9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVh
dGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwg
aXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCAmbmV3U2FtcGxlKSkKICAgICAgICAg
cmV0dXJuOwogICAgIAogICAgIG1fc2FtcGxlID0gYWRvcHRDRihuZXdTYW1wbGUpOwpAQCAtMjQ2
LDEwICsyNDksMTAgQEAgdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldFRpbWVzdGFtcHMoY29u
c3QgV1RGOjpNZWRpYVRpbWUgJnByZXNlbnRhdGlvblRpbWVzdGEKIAogYm9vbCBNZWRpYVNhbXBs
ZUFWRk9iakM6OmlzRGl2aXNhYmxlKCkgY29uc3QKIHsKLSAgICBpZiAoQ01TYW1wbGVCdWZmZXJH
ZXROdW1TYW1wbGVzKG1fc2FtcGxlLmdldCgpKSA9PSAxKQorICAgIGlmIChQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0TnVtU2FtcGxlcyhtX3NhbXBsZS5nZXQoKSkgPT0gMSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgaWYgKENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6ZUFycmF5KG1fc2Ft
cGxlLmdldCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01TYW1wbGVCdWZmZXJFcnJvcl9C
dWZmZXJIYXNOb1NhbXBsZVNpemVzKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlU2l6ZUFycmF5KG1fc2FtcGxlLmdldCgpLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBrQ01T
YW1wbGVCdWZmZXJFcnJvcl9CdWZmZXJIYXNOb1NhbXBsZVNpemVzKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI2MiwxNyArMjY1LDE3IEBAIHN0ZDo6cGFp
cjxSZWZQdHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFW
Rk9iakM6OmRpdmlkZShjCiAKICAgICBDRkluZGV4IHNhbXBsZXNCZWZvcmVQcmVzZW50YXRpb25U
aW1lID0gMDsKIAotICAgIENNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZShtX3Nh
bXBsZS5nZXQoKSwgWyZdIChDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNv
dW50KSAtPiBPU1N0YXR1cyB7Ci0gICAgICAgIGF1dG8gdGltZVN0YW1wID0gQ01TYW1wbGVCdWZm
ZXJHZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKyAgICBQQUw6
OkNNU2FtcGxlQnVmZmVyQ2FsbEJsb2NrRm9yRWFjaFNhbXBsZShtX3NhbXBsZS5nZXQoKSwgWyZd
IChDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIENNSXRlbUNvdW50KSAtPiBPU1N0YXR1
cyB7CisgICAgICAgIGF1dG8gdGltZVN0YW1wID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE91dHB1
dFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogICAgICAgICBpZiAoQ01USU1F
X0lTX0lOVkFMSUQodGltZVN0YW1wKSkKLSAgICAgICAgICAgIHRpbWVTdGFtcCA9IENNU2FtcGxl
QnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAg
ICB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1w
KHNhbXBsZUJ1ZmZlcik7CiAKICAgICAgICAgaWYgKHVzZUVuZFRpbWUgPT0gVXNlRW5kVGltZTo6
VXNlKSB7Ci0gICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRw
dXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOworICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihzYW1wbGVCdWZmZXIpOwogICAgICAg
ICAgICAgaWYgKENNVElNRV9JU19JTlZBTElEKGR1cmF0aW9uKSkKLSAgICAgICAgICAgICAgICBk
dXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlQnVmZmVyKTsKKyAgICAg
ICAgICAgICAgICBkdXJhdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1w
bGVCdWZmZXIpOwogCi0gICAgICAgICAgICBpZiAoUEFMOjp0b01lZGlhVGltZShDTVRpbWVBZGQo
dGltZVN0YW1wLCBkdXJhdGlvbikpID4gcHJlc2VudGF0aW9uVGltZSkKKyAgICAgICAgICAgIGlm
IChQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lQWRkKHRpbWVTdGFtcCwgZHVyYXRpb24pKSA+
IHByZXNlbnRhdGlvblRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0g
ZWxzZSBpZiAoUEFMOjp0b01lZGlhVGltZSh0aW1lU3RhbXApID49IHByZXNlbnRhdGlvblRpbWUp
CiAgICAgICAgICAgICByZXR1cm4gMTsKQEAgLTI4MywxOSArMjg2LDE5IEBAIHN0ZDo6cGFpcjxS
ZWZQdHI8TWVkaWFTYW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNZWRpYVNhbXBsZUFWRk9i
akM6OmRpdmlkZShjCiAgICAgaWYgKCFzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSkKICAg
ICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgdGhpcyB9OwogCi0gICAgQ01JdGVtQ291bnQgc2FtcGxl
Q291bnQgPSBDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBsZXMobV9zYW1wbGUuZ2V0KCkpOworICAg
IENNSXRlbUNvdW50IHNhbXBsZUNvdW50ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldE51bVNhbXBs
ZXMobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmIChzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGlt
ZSA+PSBzYW1wbGVDb3VudCkKICAgICAgICAgcmV0dXJuIHsgdGhpcywgbnVsbHB0ciB9OwogCiAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgcmF3U2FtcGxlQmVmb3JlID0gbnVsbHB0cjsKICAgICBDRlJh
bmdlIHJhbmdlQmVmb3JlID0gQ0ZSYW5nZU1ha2UoMCwgc2FtcGxlc0JlZm9yZVByZXNlbnRhdGlv
blRpbWUpOwotICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2VCZWZvcmUsICZyYXdTYW1w
bGVCZWZvcmUpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBs
ZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5n
ZUJlZm9yZSwgJnJhd1NhbXBsZUJlZm9yZSkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiB7IG51
bGxwdHIsIG51bGxwdHIgfTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBs
ZUJlZm9yZSA9IGFkb3B0Q0YocmF3U2FtcGxlQmVmb3JlKTsKIAogICAgIENNU2FtcGxlQnVmZmVy
UmVmIHJhd1NhbXBsZUFmdGVyID0gbnVsbHB0cjsKICAgICBDRlJhbmdlIHJhbmdlQWZ0ZXIgPSBD
RlJhbmdlTWFrZShzYW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSwgc2FtcGxlQ291bnQgLSBz
YW1wbGVzQmVmb3JlUHJlc2VudGF0aW9uVGltZSk7Ci0gICAgaWYgKENNU2FtcGxlQnVmZmVyQ29w
eVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgp
LCByYW5nZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQorICAgIGlmIChQQUw6OkNN
U2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG1fc2FtcGxlLmdldCgpLCByYW5nZUFmdGVyLCAmcmF3U2FtcGxlQWZ0ZXIpICE9IG5vRXJyKQog
ICAgICAgICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CiAgICAgUmV0YWluUHRyPENNU2Ft
cGxlQnVmZmVyUmVmPiBzYW1wbGVBZnRlciA9IGFkb3B0Q0YocmF3U2FtcGxlQWZ0ZXIpOwogCkBA
IC0zMDUsMTMgKzMwOCwxMyBAQCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRy
PE1lZGlhU2FtcGxlPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGUoYwogUmVmPE1lZGlhU2Ft
cGxlPiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3QK
IHsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXIgPSAwOwotICAgIENNU2Ft
cGxlQnVmZmVyQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwg
Jm5ld1NhbXBsZUJ1ZmZlcik7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHkoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksICZuZXdTYW1wbGVCdWZmZXIpOwogICAg
IEFTU0VSVChuZXdTYW1wbGVCdWZmZXIpOwogCi0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0Fy
cmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG5ld1NhbXBsZUJ1
ZmZlciwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0cnVl
KTsKICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVu
dHNBcnJheSk7ICsraSkgewogICAgICAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1l
bnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRW
YWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlT
ZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXks
IGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVu
dHMsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIGtDRkJvb2xlYW5U
cnVlKTsKICAgICB9CiAKICAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoYWRv
cHRDRihuZXdTYW1wbGVCdWZmZXIpLmdldCgpLCBtX2lkKTsKQEAgLTMyNiw3ICszMjksNyBAQCBS
ZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpDOjpnZXRSR0JB
SW1hZ2VEYXRhKCkgY29uc3QKICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShjb25mb3JtZXJPcHRp
b25zLmdldCgpLCBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgaW1hZ2VGb3JtYXRO
dW1iZXIuZ2V0KCkpOwogICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgcGl4ZWxCdWZmZXJDb25m
b3JtZXIoY29uZm9ybWVyT3B0aW9ucy5nZXQoKSk7CiAKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0g
c3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihtX3NhbXBsZS5nZXQoKSkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxD
VlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1w
bGUuZ2V0KCkpKTsKICAgICBhdXRvIHJnYmFQaXhlbEJ1ZmZlciA9IHBpeGVsQnVmZmVyQ29uZm9y
bWVyLmNvbnZlcnQocGl4ZWxCdWZmZXIpOwogICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZl
ckxvY2tCYXNlQWRkcmVzcyhyZ2JhUGl4ZWxCdWZmZXIuZ2V0KCksIGtDVlBpeGVsQnVmZmVyTG9j
a19SZWFkT25seSk7CiAgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CkBAIC0zNDMsMTAgKzM0
NiwxMCBAQCBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVBVkZPYmpD
OjpnZXRSR0JBSW1hZ2VEYXRhKCkgY29uc3QKIAogc3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBs
ZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
cikKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdl
dFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBDRkFycmF5
UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShzYW1wbGVCdWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsg
aSA8IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENG
TXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRh
YmxlRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5
LCBpKSk7Ci0gICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1w
bGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAg
ICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVBdHRh
Y2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KIH0K
IApAQCAtMzU3LDcgKzM2MCw3IEBAIHZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3Bs
YXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiBib29sIE1lZGlhU2FtcGxlQVZG
T2JqQzo6aXNIb21vZ2VuZW91cygpIGNvbnN0CiB7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50
c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxl
LmdldCgpLCB0cnVlKTsKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1
ZSk7CiAgICAgaWYgKCFhdHRhY2htZW50c0FycmF5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApA
QCAtMzg1LDcgKzM4OCw3IEBAIFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFT
YW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzCiB7CiAgICAgdXNpbmcg
U2FtcGxlVmVjdG9yID0gVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PjsKIAotICAgIENG
QXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNo
bWVudHNBcnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2ht
ZW50c0FycmF5ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXko
bV9zYW1wbGUuZ2V0KCksIHRydWUpOwogICAgIGlmICghYXR0YWNobWVudHNBcnJheSkKICAgICAg
ICAgcmV0dXJuIFNhbXBsZVZlY3Rvcjo6ZnJvbShtYWtlUmVmKCp0aGlzKSk7CiAKQEAgLTQxOCw3
ICs0MjEsNyBAQCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZG
T2JqQzo6ZGl2aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcwogICAgIHNhbXBsZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShyYW5nZXMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIHJhbmdlIDogcmFu
Z2VzKSB7CiAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZSA9IG51bGxwdHI7Ci0g
ICAgICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2UsICZyYXdTYW1wbGUpICE9IG5vRXJy
IHx8ICFyYXdTYW1wbGUpCisgICAgICAgIGlmIChQQUw6OkNNU2FtcGxlQnVmZmVyQ29weVNhbXBs
ZUJ1ZmZlckZvclJhbmdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc2FtcGxlLmdldCgpLCByYW5n
ZSwgJnJhd1NhbXBsZSkgIT0gbm9FcnIgfHwgIXJhd1NhbXBsZSkKICAgICAgICAgICAgIHJldHVy
biB7IH07CiAgICAgICAgIHNhbXBsZXMudW5jaGVja2VkQXBwZW5kKE1lZGlhU2FtcGxlQVZGT2Jq
Qzo6Y3JlYXRlKGFkb3B0Q0YocmF3U2FtcGxlKS5nZXQoKSwgbV9pZCkpOwogICAgIH0KQEAgLTQz
MiwyNCArNDM1LDI0IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVB
VkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZlckFuZFNldEFzRGlzcGxhCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0
aW9uID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCAm
Zm9ybWF0RGVzY3JpcHRpb24pOworICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhl
bEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHJldGFpbmVkRm9ybWF0RGVzY3JpcHRpb24gPSBhZG9w
dENGKGZvcm1hdERlc2NyaXB0aW9uKTsKIAogICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9IDA7
Ci0gICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2Ft
cGxlLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgMCwgbnVsbHB0ciwgJml0ZW1D
b3VudCk7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBW
ZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZvQXJyYXk7CiAgICAgdGltaW5nSW5m
b0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRh
dGEoKSwgbnVsbHB0cik7CisgICAgc3RhdHVzID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZVRpbWluZ0luZm9BcnJheShzYW1wbGUsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEo
KSwgbnVsbHB0cik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdTYW1wbGVCdWZmZXI7Ci0gICAgc3RhdHVzID0gQ01T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCks
ICZuZXdTYW1wbGVCdWZmZXIpOworICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJDcmVh
dGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwg
Zm9ybWF0RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1wbGVCdWZm
ZXIpOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmlu
ZGV4IDBiOWJiNjQ4NWYzZTllMjUzNDVhYWQ0ZjRlNDcwOTJjNDI5YTVjYzguLjAyMTkyMTZkN2My
ZDg4ZWY1Nzc1MjZkODgyMzBjM2U1MDNmZDhjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yNTgsNyArMjU4LDYg
QEAgLSAodm9pZClhdWRpb1JlbmRlcmVyV2FzQXV0b21hdGljYWxseUZsdXNoZWQ6KE5TTm90aWZp
Y2F0aW9uKilub3RlCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFj
ZSBQQUw7CiAKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMKQEAgLTI3Nyw3ICsyNzYsNyBAQCBzdGF0aWMgdWludDY0X3QgbmV4dE1hcElEKCkK
IAogc3RhdGljIHZvaWQgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNl
bnRlclJlZiwgY29uc3Qgdm9pZCogbGlzdGVuZXIsIENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5h
bWUsIGNvbnN0IHZvaWQqLCBDRlR5cGVSZWYpCiB7Ci0gICAgaWYgKCFDRkVxdWFsKGtDTVNhbXBs
ZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25O
YW1lKSkKKyAgICBpZiAoIUNGRXF1YWwoUEFMOjprQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlm
aWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbm90aWZpY2F0aW9uTmFtZSkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKQEAgLTMxNiw3ICszMTUsNyBAQCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFT
b3VyY2VQcml2YXRlQVZGT2JqQwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAg
ICBpZiAoIVtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5j
ZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlcm9sbERlY29kZVdpdGhDb21wbGV0aW9u
SGFuZGxlcjopXSkKLSAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJBZGRMaXN0ZW5lcihDTU5v
dGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0
PHZvaWQqPihtX21hcElEKSwgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywga0NNU2FtcGxlQnVm
ZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxwdHIsIDApOworICAg
ICAgICBQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVyQWRkTGlzdGVuZXIoUEFMOjpDTU5vdGlmaWNh
dGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCByZWludGVycHJldF9jYXN0PHZvaWQq
PihtX21hcElEKSwgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywgUEFMOjprQ01TYW1wbGVCdWZm
ZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7CiAKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBtX3BhcnNlci0+c2V0TG9nZ2VyKG1fbG9nZ2Vy
LmdldCgpLCBtX2xvZ0lkZW50aWZpZXIpOwpAQCAtMzU0LDcgKzM1Myw3IEBAIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQogICAgIGNsZWFy
VHJhY2tzKCk7CiAKICAgICBpZiAoIVtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Q2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlcm9sbERlY29k
ZVdpdGhDb21wbGV0aW9uSGFuZGxlcjopXSkKLSAgICAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJS
ZW1vdmVMaXN0ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigp
LCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1l
ck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0cik7CisgICAgICAgIFBBTDo6Q01O
b3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihQQUw6OkNNTm90aWZpY2F0aW9uQ2VudGVy
R2V0RGVmYXVsdExvY2FsQ2VudGVyKCksIHRoaXMsIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ss
IFBBTDo6a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQs
IG51bGxwdHIpOwogCiAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkKICAgICAgICAgbV9o
YXNTZXNzaW9uU2VtYXBob3JlLT5zaWduYWwoKTsKQEAgLTk5Myw3ICs5OTIsNyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcgogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5k
ZXJlcldhc0F1dG9tYXRpY2FsbHlGbHVzaGVkKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAq
cmVuZGVyZXIsIGNvbnN0IENNVGltZSYgdGltZSkKIHsKLSAgICBhdXRvIG1lZGlhVGltZSA9IHRv
TWVkaWFUaW1lKHRpbWUpOworICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlhVGltZSh0
aW1lKTsKICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgbWVkaWFUaW1lKTsKICAgICBBdG9t
U3RyaW5nIHRyYWNrSWQ7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9hdWRpb1JlbmRlcmVycykg
ewpAQCAtMTEwMSwxMyArMTEwMCwxMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0CiAgICAgYXV0
byBsb2dTaXRlSWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CiAgICAgREVCVUdfTE9HKGxvZ1Np
dGVJZGVudGlmaWVyLCAidHJhY2sgSUQgPSAiLCB0cmFja0lELCAiLCBzYW1wbGUgPSAiLCBzYW1w
bGUuZ2V0KCkpOwogCi0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERl
c2NyaXB0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRm
b3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiAgICAgQVNTRVJUKGZvcm1hdERlc2Ny
aXB0aW9uKTsKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEVSUk9SX0xP
Ryhsb2dTaXRlSWRlbnRpZmllciwgIlJlY2VpdmVkIHNhbXBsZSB3aXRoIGEgbnVsbCBmb3JtYXRE
ZXNjcmlwdGlvbi4gQmFpbGluZy4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBhdXRv
IG1lZGlhVHlwZSA9IENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVR5cGUoZm9ybWF0RGVzY3Jp
cHRpb24pOworICAgIGF1dG8gbWVkaWFUeXBlID0gUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0
TWVkaWFUeXBlKGZvcm1hdERlc2NyaXB0aW9uKTsKIAogICAgIGlmICh0cmFja0lEID09IG1fZW5h
YmxlZFZpZGVvVHJhY2tJRCkgewogICAgICAgICAvLyBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ciB3aWxsIHRocm93IGFuIHVuLWRvY3VtZW50ZWQgZXhjZXB0aW9uIGlmIHBhc3NlZCBhIHNhbXBs
ZQpAQCAtMTEyMCw3ICsxMTE5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdAogICAgICAgICB9
CiAKICAgICAgICAgYXV0byBwbGF5ZXIgPSB0aGlzLT5wbGF5ZXIoKTsKLSAgICAgICAgRmxvYXRT
aXplIGZvcm1hdFNpemUgPSBGbG9hdFNpemUoQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJl
c2VudGF0aW9uRGltZW5zaW9ucyhmb3JtYXREZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkpOworICAg
ICAgICBGbG9hdFNpemUgZm9ybWF0U2l6ZSA9IEZsb2F0U2l6ZShQQUw6OkNNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24sIHRy
dWUsIHRydWUpKTsKICAgICAgICAgaWYgKCFtX2NhY2hlZFNpemUgfHwgZm9ybWF0U2l6ZSAhPSBt
X2NhY2hlZFNpemUudmFsdWUoKSkgewogICAgICAgICAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVu
dGlmaWVyLCAic2l6ZSBjaGFuZ2VkIHRvICIsIGZvcm1hdFNpemUpOwogICAgICAgICAgICAgYm9v
bCBzaXplV2FzTnVsbCA9ICFtX2NhY2hlZFNpemU7CkBAIC0xMTQ2LDkgKzExNDUsOSBAQCB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBs
ZT4mJiBzYW1wbGUsIGNvbnN0CiAKICAgICAgICAgICAgIGlmICghaGF2ZVByZXJvbGxEZWNvZGVX
aXRoQ29tcGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiByYXdTYW1wbGVDb3B5OwotICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyQ3JlYXRlQ29w
eShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZm
ZXIsICZyYXdTYW1wbGVDb3B5KTsKKyAgICAgICAgICAgICAgICBQQUw6OkNNU2FtcGxlQnVmZmVy
Q3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIsICZyYXdTYW1wbGVDb3B5KTsKICAgICAgICAgICAgICAgICBhdXRvIHNhbXBs
ZUNvcHkgPSBhZG9wdENGKHJhd1NhbXBsZUNvcHkpOwotICAgICAgICAgICAgICAgIENNU2V0QXR0
YWNobWVudChzYW1wbGVDb3B5LmdldCgpLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X1Bv
c3ROb3RpZmljYXRpb25XaGVuQ29uc3VtZWQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsg
KF9fYnJpZGdlIE5TU3RyaW5nICopa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90
aWZpY2F0aW9uV2hlbkNvbnN1bWVkIDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRO
b3RQcm9wYWdhdGUpOworICAgICAgICAgICAgICAgIFBBTDo6Q01TZXRBdHRhY2htZW50KHNhbXBs
ZUNvcHkuZ2V0KCksIFBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZp
Y2F0aW9uV2hlbkNvbnN1bWVkLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7IChfX2JyaWRn
ZSBOU1N0cmluZyAqKVBBTDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9Qb3N0Tm90aWZp
Y2F0aW9uV2hlbkNvbnN1bWVkIDogQFlFUyB9LCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGROb3RQ
cm9wYWdhdGUpOwogICAgICAgICAgICAgICAgIFttX2Rpc3BsYXlMYXllciBlbnF1ZXVlU2FtcGxl
QnVmZmVyOnNhbXBsZUNvcHkuZ2V0KCldOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
ICAgICAgICAgICAgcGxheWVyLT5zZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHRydWUpOwpAQCAt
MTI5OCwxNCArMTI5NywxNCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3Rp
ZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9tUwogYm9vbCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6Y2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGlt
ZShjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nKSBjb25zdAogewogICAgIHJldHVybiBw
YXJzZUludGVnZXJBbGxvd2luZ1RyYWlsaW5nSnVuazx1aW50NjRfdD4odHJhY2tJRFN0cmluZyku
dmFsdWVfb3IoMCkgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lECi0gICAgICAgICYmIFtnZXRBVlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6
QHNlbGVjdG9yKGV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRp
bWU6KV07CisgICAgICAgICYmIFtQQUw6OmdldEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xh
c3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoZXhwZWN0TWluaW11bVVw
Y29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTopXTsKIH0KIAogdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShj
b25zdCBBdG9tU3RyaW5nJiB0cmFja0lEU3RyaW5nLCBjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRh
dGlvblRpbWUpCiB7CiAgICAgQVNTRVJUKGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlv
blRpbWUodHJhY2tJRFN0cmluZykpOwogICAgIGlmIChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVz
ZW50YXRpb25UaW1lKHRyYWNrSURTdHJpbmcpKQotICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZXhw
ZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTp0b0NNVGltZShw
cmVzZW50YXRpb25UaW1lKV07CisgICAgICAgIFttX2Rpc3BsYXlMYXllciBleHBlY3RNaW5pbXVt
VXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOlBBTDo6dG9DTVRpbWUocHJlc2Vu
dGF0aW9uVGltZSldOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjbGVh
ck1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJ
RFN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5kZXggZjQ2NjQxMjc4
ZTllZDRiNjgzYTQ4NGQ3NTc0N2Q4NjNmNmVkODY2ZC4uM2IxMDJhYjhlZjM5ZjM4ZGY0NzA2MDVm
YThkN2JmZDI0YzAwZWU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAg
LTI1OCw4ICsyNTgsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpTdGF0ZT4gewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci0KIHN0YXRpYyBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVs
KCkgeyByZXR1cm4gTG9nTWVkaWE7IH0KIHN0YXRpYyBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUo
KSB7IHJldHVybiAiU291cmNlQnVmZmVyUGFyc2VyV2ViTSI7IH0KIApAQCAtMTA2Niw3ICsxMDY0
LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJhbWUoY29uc3Qg
RnJhbWVNZXRhZGF0YSYgbWV0YWRhdGEsIFJlYWQKICAgICAgICAgcmV0dXJuIFNraXAocmVhZGVy
LCBieXRlc1JlbWFpbmluZyk7CiAgICAgfQogCi0gICAgcmV0dXJuIHRyYWNrRGF0YS0+Y29uc3Vt
ZUZyYW1lRGF0YSgqcmVhZGVyLCBtZXRhZGF0YSwgYnl0ZXNSZW1haW5pbmcsIENNVGltZU1ha2Uo
YmxvY2stPnRpbWVjb2RlICsgbV9jdXJyZW50VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2st
Pm51bV9mcmFtZXMpOworICAgIHJldHVybiB0cmFja0RhdGEtPmNvbnN1bWVGcmFtZURhdGEoKnJl
YWRlciwgbWV0YWRhdGEsIGJ5dGVzUmVtYWluaW5nLCBQQUw6OkNNVGltZU1ha2UoYmxvY2stPnRp
bWVjb2RlICsgbV9jdXJyZW50VGltZWNvZGUsIG1fdGltZXNjYWxlKSwgYmxvY2stPm51bV9mcmFt
ZXMpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnByb3ZpZGVNZWRpYURhdGEo
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzYW1wbGVCdWZmZXIsIHVpbnQ2NF90IHRyYWNr
SUQsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBieXRlUmFuZ2VPZmZzZXQpCkBAIC0xMDkwLDcgKzEw
ODgsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0Rh
dGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgIENNQmxvY2tCdWZmZXJSZWYgcmF3
QmxvY2tCdWZmZXIgPSBudWxscHRyOwogCiAgICAgaWYgKCFtX2N1cnJlbnRCbG9ja0J1ZmZlcikg
ewotICAgICAgICBhdXRvIGVyciA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2so
a0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2NhdG9y
RGVmYXVsdCwgbnVsbHB0ciwgMCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsK
KyAgICAgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5Qmxv
Y2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbWV0YWRhdGEuc2l6ZSwga0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbnVsbHB0ciwgMCwgbWV0YWRhdGEuc2l6ZSwgMCwgJnJhd0Jsb2NrQnVmZmVy
KTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9Q
T1NTSUJMRSgiQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayBmYWlsZWQgd2l0aCBl
cnJvciIsIGVycik7CiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1JlbWFp
bmluZyk7CkBAIC0xMDk5LDcgKzEwOTcsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAg
ICAgICBtX2N1cnJlbnRCbG9ja0J1ZmZlciA9IGFkb3B0Q0YocmF3QmxvY2tCdWZmZXIpOwogICAg
ICAgICBtX2N1cnJlbnRCbG9ja0J1ZmZlclBvc2l0aW9uID0gMDsKIAotICAgICAgICBlcnIgPSBD
TUJsb2NrQnVmZmVyQXNzdXJlQmxvY2tNZW1vcnkobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkp
OworICAgICAgICBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJBc3N1cmVCbG9ja01lbW9yeShtX2N1
cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAg
IFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVX
aXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAg
ICAgIHJldHVybiBTa2lwKCZyZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKQEAgLTExMTAsNyArMTEw
OCw3IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpWaWRlb1RyYWNrRGF0
YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAgICAgd2hpbGUgKGJ5dGVzVG9SZWFkKSB7
CiAgICAgICAgIHNpemVfdCBzZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwogICAgICAgICB1aW50
OF90KiBibG9ja0J1ZmZlckRhdGEgPSBudWxscHRyOwotICAgICAgICBhdXRvIGVyciA9IENNQmxv
Y2tCdWZmZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJy
ZW50QmxvY2tCdWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwg
KGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKKyAgICAgICAgYXV0byBlcnIgPSBQQUw6OkNNQmxv
Y2tCdWZmZXJHZXREYXRhUG9pbnRlcihtX2N1cnJlbnRCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJy
ZW50QmxvY2tCdWZmZXJQb3NpdGlvbiwgJnNlZ21lbnRTaXplQXRQb3NpdGlvbiwgbnVsbHB0ciwg
KGNoYXIqKikmYmxvY2tCdWZmZXJEYXRhKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAg
ICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01CbG9ja0J1ZmZlckdldERhdGFQb2lu
dGVyIGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAgICAgIHJldHVybiBTa2lwKCZy
ZWFkZXIsIGJ5dGVzUmVtYWluaW5nKTsKQEAgLTExNDQsNyArMTE0Miw3IEBAIHZvaWQgU291cmNl
QnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZlcihjb25z
dCBDTVRpbWUmIHByCiAjaWYgRU5BQkxFKFZQOSkKICAgICB1aW50OF90KiBibG9ja0J1ZmZlckRh
dGEgPSBudWxscHRyOwogICAgIHNpemVfdCBzZWdtZW50U2l6ZUF0UG9zaXRpb24gPSAwOwotICAg
IGF1dG8gZXJyID0gQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKG1fY3VycmVudEJsb2NrQnVm
ZmVyLmdldCgpLCAwLCAmc2VnbWVudFNpemVBdFBvc2l0aW9uLCBudWxscHRyLCAoY2hhcioqKSZi
bG9ja0J1ZmZlckRhdGEpOworICAgIGF1dG8gZXJyID0gUEFMOjpDTUJsb2NrQnVmZmVyR2V0RGF0
YVBvaW50ZXIobV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCksIDAsICZzZWdtZW50U2l6ZUF0UG9z
aXRpb24sIG51bGxwdHIsIChjaGFyKiopJmJsb2NrQnVmZmVyRGF0YSk7CiAgICAgaWYgKGVycikg
ewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyR2V0
RGF0YVBvaW50ZXIgZmFpbGVkIHdpdGggZXJyb3IiLCBlcnIpOwogICAgICAgICByZXR1cm47CkBA
IC0xMTg4LDkgKzExODYsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlZpZGVvVHJh
Y2tEYXRhOjpjcmVhdGVTYW1wbGVCdWZmZXIoY29uc3QgQ01UaW1lJiBwcgogICAgICAgICBkdXJh
dGlvbiA9IHRyYWNrLmRlZmF1bHRfZHVyYXRpb24udmFsdWUoKSAqIHByZXNlbnRhdGlvblRpbWUu
dGltZXNjYWxlIC8gMTAwMDAwMDAwMDsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBs
ZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgc2l6ZV90IGZyYW1lU2l6ZSA9IENNQmxvY2tCdWZmZXJH
ZXREYXRhTGVuZ3RoKG1fY3VycmVudEJsb2NrQnVmZmVyLmdldCgpKTsKLSAgICBDTVNhbXBsZVRp
bWluZ0luZm8gdGltaW5nID0geyBDTVRpbWVNYWtlKGR1cmF0aW9uLCBwcmVzZW50YXRpb25UaW1l
LnRpbWVzY2FsZSksIHByZXNlbnRhdGlvblRpbWUsIHByZXNlbnRhdGlvblRpbWUgfTsKLSAgICBl
cnIgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3Vy
cmVudEJsb2NrQnVmZmVyLmdldCgpLCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBz
YW1wbGVDb3VudCwgMSwgJnRpbWluZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7
CisgICAgc2l6ZV90IGZyYW1lU2l6ZSA9IFBBTDo6Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgo
bV9jdXJyZW50QmxvY2tCdWZmZXIuZ2V0KCkpOworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1p
bmcgPSB7IFBBTDo6Q01UaW1lTWFrZShkdXJhdGlvbiwgcHJlc2VudGF0aW9uVGltZS50aW1lc2Nh
bGUpLCBwcmVzZW50YXRpb25UaW1lLCBwcmVzZW50YXRpb25UaW1lIH07CisgICAgZXJyID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fY3VycmVu
dEJsb2NrQnVmZmVyLmdldCgpLCB0aGlzLT5mb3JtYXREZXNjcmlwdGlvbigpLmdldCgpLCBzYW1w
bGVDb3VudCwgMSwgJnRpbWluZywgMSwgJmZyYW1lU2l6ZSwgJnJhd1NhbXBsZUJ1ZmZlcik7CiAg
ICAgaWYgKGVycikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTVNh
bXBsZUJ1ZmZlckNyZWF0ZVJlYWR5IGZhaWxlZCB3aXRoIGVycm9yIiwgZXJyKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtMTIwMCw3ICsxMTk4LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
OjpWaWRlb1RyYWNrRGF0YTo6Y3JlYXRlU2FtcGxlQnVmZmVyKGNvbnN0IENNVGltZSYgcHIKICAg
ICBtX2N1cnJlbnRCbG9ja0J1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9jdXJyZW50QmxvY2tCdWZm
ZXJQb3NpdGlvbiA9IDA7CiAKLSAgICBhdXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1
ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgpLCB0cnVlKTsK
KyAgICBhdXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
QXR0YWNobWVudHNBcnJheShzYW1wbGVCdWZmZXIuZ2V0KCksIHRydWUpOwogICAgIEFTU0VSVChh
dHRhY2htZW50c0FycmF5KTsKICAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpIHsKICAgICAgICAg
UEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5IHJldHVybmVkIE5VTEwiKTsKQEAgLTEyMTAsNyArMTIwOCw3IEBAIHZvaWQg
U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6VmlkZW9UcmFja0RhdGE6OmNyZWF0ZVNhbXBsZUJ1ZmZl
cihjb25zdCBDTVRpbWUmIHByCiAgICAgaWYgKCFpc0tleSkgewogICAgICAgICBmb3IgKENGSW5k
ZXggaSA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwg
Y291bnQ7ICsraSkgewogICAgICAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2ht
ZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0
VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKLSAgICAgICAgICAgIENGRGljdGlv
bmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMs
IGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFj
aG1lbnRzLCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYywga0NGQm9vbGVhblRy
dWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMjk1LDEyICsxMjkzLDEyIEBAIHdlYm06OlN0
YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1l
RGF0YSh3ZWJtOjpSZWFkCiAgICAgICAgICAgICByZXR1cm4gU2tpcCgmcmVhZGVyLCBieXRlc1Jl
bWFpbmluZyk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIHN0cmVhbURlc2NyaXB0aW9uID0g
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3JtYXRE
ZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgICAgIGF1dG8gc3RyZWFtRGVzY3JpcHRpb24gPSBQQUw6
OkNNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24oZm9ybWF0
RGVzY3JpcHRpb24uZ2V0KCkpOwogICAgICAgICBpZiAoIXN0cmVhbURlc2NyaXB0aW9uKSB7CiAg
ICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGZhaWxlZCIpOwogICAgICAgICAgICAg
cmV0dXJuIFNraXAoJnJlYWRlciwgYnl0ZXNSZW1haW5pbmcpOwogICAgICAgICB9Ci0gICAgICAg
IG1fcGFja2V0RHVyYXRpb24gPSBDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVz
UGVyUGFja2V0LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOworICAgICAgICBtX3Bh
Y2tldER1cmF0aW9uID0gUEFMOjpDTVRpbWVNYWtlKHN0cmVhbURlc2NyaXB0aW9uLT5tRnJhbWVz
UGVyUGFja2V0LCBzdHJlYW1EZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpOwogCiAgICAgICAgIHNl
dEZvcm1hdERlc2NyaXB0aW9uKFdURk1vdmUoZm9ybWF0RGVzY3JpcHRpb24pKTsKICAgICB9IGVs
c2UgaWYgKGNvZGVjKCkgPT0gQ29kZWNUeXBlOjpPcHVzKSB7CkBAIC0xMzIyLDcgKzEzMjAsNyBA
QCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNv
bnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgIG1fY3VycmVudFBhY2tldEJ5dGVPZmZzZXQg
PSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9jdXJyZW50UGFja2V0U2l6ZSA9IHN0ZDo6bnVsbG9wdDsK
IAotICAgIGF1dG8gc2FtcGxlRHVyYXRpb24gPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZVN1YnRy
YWN0KHByZXNlbnRhdGlvblRpbWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgQ01UaW1l
R2V0U2Vjb25kcyhtX3BhY2tldER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OworICAgIGF1dG8gc2Ft
cGxlRHVyYXRpb24gPSBQQUw6OkNNVGltZUdldFNlY29uZHMoUEFMOjpDTVRpbWVTdWJ0cmFjdChw
cmVzZW50YXRpb25UaW1lLCBtX3NhbXBsZVByZXNlbnRhdGlvblRpbWUpKSArIFBBTDo6Q01UaW1l
R2V0U2Vjb25kcyhtX3BhY2tldER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OwogICAgIGlmIChzYW1w
bGVEdXJhdGlvbiA+PSBtX21pbmltdW1TYW1wbGVEdXJhdGlvbikKICAgICAgICAgY3JlYXRlU2Ft
cGxlQnVmZmVyKG1ldGFkYXRhLnBvc2l0aW9uKTsKIApAQCAtMTMzOSwyMSArMTMzNywyMSBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjcmVhdGVTYW1wbGVC
dWZmZXIoc3RkOjpvcHRpb25hbDxzaQogICAgIGF1dG8gZnVsbFBhY2tldEJ5dGVzUmVhZCA9IG1f
cGFja2V0Qnl0ZXNSZWFkIC0gbV9wYXJ0aWFsQnl0ZXNSZWFkOwogCiAgICAgQ01CbG9ja0J1ZmZl
clJlZiBibG9ja0J1ZmZlciA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnIgPSBDTUJsb2NrQnVmZmVy
Q3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZ1bGxQ
YWNrZXRCeXRlc1JlYWQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIDAsIGZ1bGxQYWNr
ZXRCeXRlc1JlYWQsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVm
ZmVyKTsKKyAgICBhdXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlC
bG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBmdWxsUGFja2V0Qnl0ZXNSZWFkLCBr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCAwLCBmdWxsUGFja2V0Qnl0ZXNSZWFkLCBrQ01C
bG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5vd0ZsYWcsICZibG9ja0J1ZmZlcik7CiAgICAgaWYgKGVy
cikgewogICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVy
Q3JlYXRlV2l0aE1lbW9yeUJsb2NrIGZhaWxlZCB3aXRoICVkIiwgZXJyKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0YoYmxvY2tCdWZmZXIpOwogCi0g
ICAgZXJyID0gQ01CbG9ja0J1ZmZlclJlcGxhY2VEYXRhQnl0ZXMobV9wYWNrZXREYXRhLmRhdGEo
KSwgYnVmZmVyLmdldCgpLCAwLCBmdWxsUGFja2V0Qnl0ZXNSZWFkKTsKKyAgICBlcnIgPSBQQUw6
OkNNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzKG1fcGFja2V0RGF0YS5kYXRhKCksIGJ1ZmZl
ci5nZXQoKSwgMCwgZnVsbFBhY2tldEJ5dGVzUmVhZCk7CiAgICAgaWYgKGVycikgewogICAgICAg
ICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFC
eXRlcyBmYWlsZWQgd2l0aCAlZCIsIGVycik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiByYXdTYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGVyciA9
IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbigpLmdldCgp
LCBtX3BhY2tldERlc2NyaXB0aW9ucy5zaXplKCksIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSwg
bV9wYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmcmF3U2FtcGxlQnVmZmVyKTsKKyAgICBlcnIg
PSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhQYWNrZXREZXNjcmlwdGlv
bnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbigp
LmdldCgpLCBtX3BhY2tldERlc2NyaXB0aW9ucy5zaXplKCksIG1fc2FtcGxlUHJlc2VudGF0aW9u
VGltZSwgbV9wYWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmcmF3U2FtcGxlQnVmZmVyKTsKICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkNNQXVk
aW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVk
IiwgZXJyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbQppbmRleCBlOWY4
NmRlYTQzOGU4OTVlNjNkYmRlMDdjNGQ5NWY5YjVhZWYxOGNjLi5hYTczNmNmMTQ5YTQ3NGJhMjYz
Y2FhY2Q2NjQyZGU3OGY3Nzg4NzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbQpAQCAtNDcsNyAr
NDcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1
c2luZyBuYW1lc3BhY2Ugd2VibTsKIAogVlA5VGVzdGluZ092ZXJyaWRlcyYgVlA5VGVzdGluZ092
ZXJyaWRlczo6c2luZ2xldG9uKCkKQEAgLTM2MiwxMSArMzYxLDExIEBAIHN0YXRpYyBDRlN0cmlu
Z1JlZiBjb252ZXJ0VG9DTUNvbG9yUHJpbWFyaWVzKHVpbnQ4X3QgcHJpbWFyaWVzKQogICAgIGNh
c2UgVlBDb25maWd1cmF0aW9uQ29sb3JQcmltYXJpZXM6OlNNUFRFX1NUXzI0MDoKICAgICAgICAg
cmV0dXJuIGtDVkltYWdlQnVmZmVyQ29sb3JQcmltYXJpZXNfU01QVEVfQzsKICAgICBjYXNlIFZQ
Q29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVzOjpTTVBURV9SUF80MzFfMjoKLSAgICAgICAgcmV0
dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfRENJX1AzOworICAgICAgICBy
ZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX0RDSV9QMzsKICAg
ICBjYXNlIFZQQ29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVzOjpTTVBURV9FR180MzJfMToKLSAg
ICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9uQ29sb3JQcmltYXJpZXNfUDNfRDY1Owor
ICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvbkNvbG9yUHJpbWFyaWVzX1Az
X0Q2NTsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvbkNvbG9yUHJpbWFyaWVzOjpCVF8yMDIwX05v
bmNvbnN0YW50X0x1bWluYW5jZToKLSAgICAgICAgcmV0dXJuIGtDTUZvcm1hdERlc2NyaXB0aW9u
Q29sb3JQcmltYXJpZXNfSVRVX1JfMjAyMDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0
RGVzY3JpcHRpb25Db2xvclByaW1hcmllc19JVFVfUl8yMDIwOwogICAgIH0KIAogICAgIHJldHVy
biBudWxscHRyOwpAQCAtNDIwLDE4ICs0MTksMTggQEAgc3RhdGljIENGU3RyaW5nUmVmIGNvbnZl
cnRUb0NNVHJhbnNmZXJGdW5jdGlvbih1aW50OF90IGNoYXJhY3RlcmlzdGljcykKICAgICBjYXNl
IFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpTTVBURV9TVF8yNDA6CiAg
ICAgICAgIHJldHVybiBrQ1ZJbWFnZUJ1ZmZlclRyYW5zZmVyRnVuY3Rpb25fU01QVEVfMjQwTV8x
OTk1OwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6OlNN
UFRFX1NUXzIwODQ6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fU01QVEVfU1RfMjA4NF9QUTsKKyAgICAgICAgcmV0dXJuIFBBTDo6a0NNRm9ybWF0
RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzIwODRfUFE7CiAgICAgY2FzZSBW
UENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6QlRfMjAyMF8xMGJpdDoKICAg
ICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpCVF8yMDIwXzEy
Yml0OgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9u
X0lUVV9SXzIwMjA7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERlc2NyaXB0aW9uVHJh
bnNmZXJGdW5jdGlvbl9JVFVfUl8yMDIwOwogICAgIGNhc2UgVlBDb25maWd1cmF0aW9uVHJhbnNm
ZXJDaGFyYWN0ZXJpc3RpY3M6OlNNUFRFX1NUXzQyOF8xOgotICAgICAgICByZXR1cm4ga0NNRm9y
bWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX1NNUFRFX1NUXzQyOF8xOworICAgICAgICBy
ZXR1cm4gUEFMOjprQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fU01QVEVfU1Rf
NDI4XzE7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25UcmFuc2ZlckNoYXJhY3RlcmlzdGljczo6
QlRfMjEwMF9ITEc6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVy
RnVuY3Rpb25fSVRVX1JfMjEwMF9ITEc7CisgICAgICAgIHJldHVybiBQQUw6OmtDTUZvcm1hdERl
c2NyaXB0aW9uVHJhbnNmZXJGdW5jdGlvbl9JVFVfUl8yMTAwX0hMRzsKICAgICBjYXNlIFZQQ29u
ZmlndXJhdGlvblRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOjpJRUNfNjE5NjZfMl8xOgotICAgICAg
ICByZXR1cm4gY2FuTG9hZF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1
bmN0aW9uX3NSR0IoKSA/IFBBTDo6Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRy
YW5zZmVyRnVuY3Rpb25fc1JHQigpIDogbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIFBBTDo6Y2Fu
TG9hZF9Db3JlTWVkaWFfa0NNRm9ybWF0RGVzY3JpcHRpb25UcmFuc2ZlckZ1bmN0aW9uX3NSR0Io
KSA/IFBBTDo6Z2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rp
b25fc1JHQigpIDogbnVsbHB0cjsKICAgICBjYXNlIFZQQ29uZmlndXJhdGlvblRyYW5zZmVyQ2hh
cmFjdGVyaXN0aWNzOjpMaW5lYXI6Ci0gICAgICAgIHJldHVybiBrQ01Gb3JtYXREZXNjcmlwdGlv
blRyYW5zZmVyRnVuY3Rpb25fTGluZWFyOworICAgICAgICByZXR1cm4gUEFMOjprQ01Gb3JtYXRE
ZXNjcmlwdGlvblRyYW5zZmVyRnVuY3Rpb25fTGluZWFyOwogICAgIH0KIAogICAgIHJldHVybiBu
dWxscHRyOwpAQCAtNDY3LDcgKzQ2Niw3IEBAIHN0YXRpYyBDRlN0cmluZ1JlZiBjb252ZXJ0VG9D
TVlDYkNSTWF0cml4KHVpbnQ4X3QgY29lZmZpY2llbnRzKQogewogICAgIHN3aXRjaCAoY29lZmZp
Y2llbnRzKSB7CiAgICAgY2FzZSBWUENvbmZpZ3VyYXRpb25NYXRyaXhDb2VmZmljaWVudHM6OkJU
XzIwMjBfTm9uY29uc3RhbnRfTHVtaW5hbmNlOgotICAgICAgICByZXR1cm4ga0NNRm9ybWF0RGVz
Y3JpcHRpb25ZQ2JDck1hdHJpeF9JVFVfUl8yMDIwOworICAgICAgICByZXR1cm4gUEFMOjprQ01G
b3JtYXREZXNjcmlwdGlvbllDYkNyTWF0cml4X0lUVV9SXzIwMjA7CiAgICAgY2FzZSBWUENvbmZp
Z3VyYXRpb25NYXRyaXhDb2VmZmljaWVudHM6OkJUXzQ3MF83X0JHOgogICAgIGNhc2UgVlBDb25m
aWd1cmF0aW9uTWF0cml4Q29lZmZpY2llbnRzOjpCVF82MDFfNzoKICAgICAgICAgcmV0dXJuIGtD
VkltYWdlQnVmZmVyWUNiQ3JNYXRyaXhfSVRVX1JfNjAxXzQ7CkBAIC01NDMsMTEgKzU0MiwxMSBA
QCBzdGF0aWMgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUZvcm1hdERl
c2NyaXB0aW9uRnJvbVZQQ29kZWNDb25maQogICAgIENGVHlwZVJlZiBjb25maWd1cmF0aW9uVmFs
dWVzW10gPSB7IGRhdGEuZ2V0KCkgfTsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb25EaWN0ID0gYWRv
cHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29uZmlndXJhdGlv
bktleXMsIGNvbmZpZ3VyYXRpb25WYWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoY29uZmlndXJhdGlv
bktleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFy
eVZhbHVlQ2FsbEJhY2tzKSk7CiAKLSAgICBWZWN0b3I8Q0ZUeXBlUmVmPiBleHRlbnNpb25zS2V5
cyB7IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5z
aW9uQXRvbXMgfTsKKyAgICBWZWN0b3I8Q0ZUeXBlUmVmPiBleHRlbnNpb25zS2V5cyB7IFBBTDo6
a0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNpb25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25B
dG9tcyB9OwogICAgIFZlY3RvcjxDRlR5cGVSZWY+IGV4dGVuc2lvbnNWYWx1ZXMgPSB7IGNvbmZp
Z3VyYXRpb25EaWN0LmdldCgpIH07CiAKICAgICBpZiAocmVjb3JkLnZpZGVvRnVsbFJhbmdlRmxh
ZyA9PSBWUENvbmZpZ3VyYXRpb25SYW5nZTo6RnVsbFJhbmdlKSB7Ci0gICAgICAgIGV4dGVuc2lv
bnNLZXlzLmFwcGVuZChrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9GdWxsUmFuZ2VWaWRl
byk7CisgICAgICAgIGV4dGVuc2lvbnNLZXlzLmFwcGVuZChQQUw6OmtDTUZvcm1hdERlc2NyaXB0
aW9uRXh0ZW5zaW9uX0Z1bGxSYW5nZVZpZGVvKTsKICAgICAgICAgZXh0ZW5zaW9uc1ZhbHVlcy5h
cHBlbmQoa0NGQm9vbGVhblRydWUpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uLm1tCmluZGV4IGNlYTE1NmFlMmZiZTI1YWRhMDA3NjY4ZTkxZDUwZTU2MWM2
NDJlNGUuLjhlZWYzYjJlYTYwNGJkMTk4M2Q3N2QzOGJmNTIxYThkMjFmMjBlZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KQEAgLTQzLDkgKzQzLDEyIEBACiAj
aW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9ydCAiVmlkZW9Ub29sYm94U29mdExp
bmsuaCIKIAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQotV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJ
VChDTVNhbXBsZUJ1ZmZlcik7CisvLyBFcXVpdmFsZW50IHRvIFdURl9ERUNMQVJFX0NGX1RZUEVf
VFJBSVQoQ01TYW1wbGVCdWZmZXIpOworLy8gTmVlZGVkIGR1ZSB0byByZXF1aXJlbWVudCBvZiBz
cGVjaWZ5aW5nIHRoZSBQQUwgbmFtZXNwYWNlLgordGVtcGxhdGUgPD4KK3N0cnVjdCBXVEY6OkNG
VHlwZVRyYWl0PENNU2FtcGxlQnVmZmVyUmVmPiB7CisgICAgc3RhdGljIGlubGluZSBDRlR5cGVJ
RCB0eXBlSUQodm9pZCkgeyByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFR5cGVJRCgpOyB9
Cit9OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcyLDcgKzc1LDcgQEAgdm9pZCBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKENNVGltZWJhc2VSZWYgdGltZWJh
c2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRp
bWViYXNlUmVtb3ZlVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVy
U291cmNlLmdldCgpKTsKKyAgICAgICAgUEFMOjpDTVRpbWViYXNlUmVtb3ZlVGltZXJEaXNwYXRj
aFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKIAogICAgIG1f
dGltZWJhc2UgPSB0aW1lYmFzZTsKIApAQCAtODQsNyArODcsNyBAQCB2b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6c2V0VGltZWJhc2UoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSkKICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgZGlzcGF0Y2hfYWN0aXZhdGUobV90aW1lclNvdXJj
ZS5nZXQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgQ01UaW1lYmFzZUFkZFRpbWVyRGlzcGF0Y2hT
b3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgICAgIFBB
TDo6Q01UaW1lYmFzZUFkZFRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90
aW1lclNvdXJjZS5nZXQoKSk7CiAgICAgfQogfQogCkBAIC0xMDQsMTIgKzEwNywxMiBAQCB2b2lk
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRp
YURhdGEoKQogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVTYW1wbGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBib29sIGRpc3BsYXlpbmcpCiB7CiAgICAg
Q01JdGVtQ291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBpZiAobm9FcnIgIT0gQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVyLCAwLCBudWxscHRyLCAmaXRl
bUNvdW50KSkKKyAgICBpZiAobm9FcnIgIT0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRp
bWluZ0luZm9BcnJheShzYW1wbGVCdWZmZXIsIDAsIG51bGxwdHIsICZpdGVtQ291bnQpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8Q01TYW1wbGVUaW1pbmdJbmZvPiB0aW1pbmdJbmZv
QXJyYXk7CiAgICAgdGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICBpZiAobm9F
cnIgIT0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc2FtcGxlQnVmZmVy
LCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpKQorICAgIGlmIChu
b0VyciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBs
ZUJ1ZmZlciwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ01CdWZmZXJDYWxsYmFja3MgY29udGFpbnMgNjQtYml0
IHBvaW50ZXJzIHRoYXQgYXJlbid0IDgtYnl0ZSBhbGlnbmVkLiBUbyBzdXBwcmVzcyB0aGUgbGlu
a2VyCkBAIC0xMzQsNyArMTM3LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246
OmVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLAogICAgICAgICBz
dGF0aWNfYXNzZXJ0KHNpemVvZihjYWxsYmFja3MuY2FsbGJhY2tzLnZlcnNpb24pID09IHNpemVv
Zih1aW50MzJfdCksICJWZXJzaW9uIGZpZWxkIG11c3QgYmUgNCBieXRlcyIpOwogICAgICAgICBz
dGF0aWNfYXNzZXJ0KGFsaWdub2YoQnVmZmVyQ2FsbGJhY2tzKSA9PSA0LCAiQ01CdWZmZXJDYWxs
YmFja3Mgc3RydWN0IG11c3QgaGF2ZSA0IGJ5dGUgYWxpZ25tZW50Iik7CiAKLSAgICAgICAgQ01C
dWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFjaXR5LCAm
Y2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKKyAgICAgICAgUEFMOjpDTUJ1ZmZlclF1
ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtNYXhpbXVtQ2FwYWNpdHksICZjYWxsYmFj
a3MuY2FsbGJhY2tzLCAmb3V0UXVldWUpOwogICAgICAgICBtX3Byb2R1Y2VyUXVldWUgPSBhZG9w
dENGKG91dFF1ZXVlKTsKICAgICB9CiAKQEAgLTE1Niw3ICsxNTksNyBAQCB2b2lkIFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGVCdWZmZXIsCiAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGNhbGxiYWNrcy5jYWxsYmFj
a3MudmVyc2lvbikgPT0gc2l6ZW9mKHVpbnQzMl90KSwgIlZlcnNpb24gZmllbGQgbXVzdCBiZSA0
IGJ5dGVzIik7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihCdWZmZXJDYWxsYmFja3Mp
ID09IDQsICJDTUJ1ZmZlckNhbGxiYWNrcyBzdHJ1Y3QgYWxpZ25tZW50IG11c3QgYmUgNCIpOwog
Ci0gICAgICAgIENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGlt
dW1DYXBhY2l0eSwgJmNhbGxiYWNrcy5jYWxsYmFja3MsICZvdXRRdWV1ZSk7CisgICAgICAgIFBB
TDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrTWF4aW11bUNhcGFj
aXR5LCAmY2FsbGJhY2tzLmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKICAgICAgICAgbV9jb25zdW1l
clF1ZXVlID0gYWRvcHRDRihvdXRRdWV1ZSk7CiAgICAgfQogCkBAIC0xNzcsMjAgKzE4MCwyMCBA
QCBib29sIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6c2hvdWxkRGVjb2RlU2FtcGxlKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgYgogICAgIGlmICghbV90aW1lYmFzZSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKLSAgICBhdXRvIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUo
bV90aW1lYmFzZS5nZXQoKSk7Ci0gICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBDTVNh
bXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOwotICAgIGF1dG8gZHVy
YXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7Ci0gICAgYXV0byBwcmVz
ZW50YXRpb25FbmRUaW1lID0gQ01UaW1lQWRkKHByZXNlbnRhdGlvblN0YXJ0VGltZSwgZHVyYXRp
b24pOwotICAgIGlmIChDTVRpbWVDb21wYXJlKHByZXNlbnRhdGlvbkVuZFRpbWUsIGN1cnJlbnRU
aW1lKSA+PSAwKQorICAgIGF1dG8gY3VycmVudFRpbWUgPSBQQUw6OkNNVGltZWJhc2VHZXRUaW1l
KG1fdGltZWJhc2UuZ2V0KCkpOworICAgIGF1dG8gcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gUEFM
OjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOworICAgIGF1
dG8gZHVyYXRpb24gPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oc2FtcGxlKTsKKyAg
ICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBQQUw6OkNNVGltZUFkZChwcmVzZW50YXRpb25T
dGFydFRpbWUsIGR1cmF0aW9uKTsKKyAgICBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKHByZXNlbnRh
dGlvbkVuZFRpbWUsIGN1cnJlbnRUaW1lKSA+PSAwKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFj
aG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9
IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFs
c2UpOwogICAgIGlmICghYXR0YWNobWVudHMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
Zm9yIChDRkluZGV4IGluZGV4ID0gMCwgY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVu
dHMpOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CiAgICAgICAgIENGRGljdGlvbmFyeVJlZiBh
dHRhY2htZW50RGljdCA9IChDRkRpY3Rpb25hcnlSZWYpQ0ZBcnJheUdldFZhbHVlQXRJbmRleChh
dHRhY2htZW50cywgaW5kZXgpOwotICAgICAgICBDRkJvb2xlYW5SZWYgZGVwZW5kZWRPbiA9IChD
RkJvb2xlYW5SZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0YWNobWVudERpY3QsIGtDTVNhbXBs
ZUF0dGFjaG1lbnRLZXlfSXNEZXBlbmRlZE9uQnlPdGhlcnMpOworICAgICAgICBDRkJvb2xlYW5S
ZWYgZGVwZW5kZWRPbiA9IChDRkJvb2xlYW5SZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYXR0YWNo
bWVudERpY3QsIFBBTDo6a0NNU2FtcGxlQXR0YWNobWVudEtleV9Jc0RlcGVuZGVkT25CeU90aGVy
cyk7CiAgICAgICAgIGlmIChkZXBlbmRlZE9uICYmICFDRkJvb2xlYW5HZXRWYWx1ZShkZXBlbmRl
ZE9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0yMDMsMTQgKzIwNiwx
NCBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5zdXJlRGVjb21wcmVzc2lv
blNlc3Npb25Gb3JTYW1wbGUoQ01TYW1wbGVCdQogICAgIGlmIChpc0ludmFsaWRhdGVkKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zv
cm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1w
bGUpOworICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0
aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZSk7CiAg
ICAgaWYgKG1fZGVjb21wcmVzc2lvblNlc3Npb24gJiYgIVZURGVjb21wcmVzc2lvblNlc3Npb25D
YW5BY2NlcHRGb3JtYXREZXNjcmlwdGlvbihtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdldCgpLCB2
aWRlb0Zvcm1hdERlc2NyaXB0aW9uKSkgewogICAgICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9u
V2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcyhtX2RlY29tcHJlc3Npb25TZXNzaW9uLmdldCgpKTsK
ICAgICAgICAgbV9kZWNvbXByZXNzaW9uU2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgfQogCiAgICAg
aWYgKCFtX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7Ci0gICAgICAgIENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3Jt
YXREZXNjcmlwdGlvbihzYW1wbGUpOworICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXRE
ZXNjcmlwdGlvbihzYW1wbGUpOwogICAgICAgICBhdXRvIHZpZGVvRGVjb2RlclNwZWNpZmljYXRp
b24gPSBAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9u
X0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0RlY29kZXI6IEAoIG1faGFyZHdhcmVEZWNv
ZGVyRW5hYmxlZCApIH07CiAKICAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzOwpAQCAt
MjU2LDcgKzI1OSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpkZWNvZGVT
YW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBib29sIGRpCiAKICAgICBNb25vdG9uaWNU
aW1lIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIFZURGVjb21wcmVzc2lv
blNlc3Npb25EZWNvZGVGcmFtZVdpdGhPdXRwdXRIYW5kbGVyKG1fZGVjb21wcmVzc2lvblNlc3Np
b24uZ2V0KCksIHNhbXBsZSwgZmxhZ3MsIG51bGxwdHIsIFt0aGlzLCBkaXNwbGF5aW5nLCBzdGFy
dFRpbWVdKE9TU3RhdHVzIHN0YXR1cywgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLCBDVklt
YWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBD
TVRpbWUgcHJlc2VudGF0aW9uRHVyYXRpb24pIHsKLSAgICAgICAgZG91YmxlIGRlbHRhUmF0aW8g
PSAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLnNlY29uZHMoKSAvIENNVGltZUdl
dFNlY29uZHMocHJlc2VudGF0aW9uRHVyYXRpb24pOworICAgICAgICBkb3VibGUgZGVsdGFSYXRp
byA9IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkuc2Vjb25kcygpIC8gUEFMOjpD
TVRpbWVHZXRTZWNvbmRzKHByZXNlbnRhdGlvbkR1cmF0aW9uKTsKIAogICAgICAgICB1cGRhdGVR
b3NXaXRoRGVjb2RlVGltZVN0YXRpc3RpY3MoZGVsdGFSYXRpbyk7CiAgICAgICAgIGhhbmRsZURl
Y29tcHJlc3Npb25PdXRwdXQoZGlzcGxheWluZywgc3RhdHVzLCBpbmZvRmxhZ3MsIGltYWdlQnVm
ZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIHByZXNlbnRhdGlvbkR1cmF0aW9uKTsKQEAgLTI4
OSw3ICsyOTIsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVj
b21wcmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlpbmcsIE9TUwogICAgICAgICArK21fZHJvcHBl
ZFZpZGVvRnJhbWVzOwogCiAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHJhd0ltYWdl
QnVmZmVyRGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwg
bm9FcnIgIT0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsICZyYXdJbWFnZUJ1ZmZlckRlc2NyaXB0
aW9uKSkgeworICAgIGlmIChzdGF0dXMgIT0gbm9FcnIgfHwgbm9FcnIgIT0gUEFMOjpDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCByYXdJbWFnZUJ1ZmZlciwgJnJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24pKSB7CiAgICAgICAg
ICsrbV9jb3JydXB0ZWRWaWRlb0ZyYW1lczsKICAgICAgICAgLS1tX2ZyYW1lc0JlaW5nRGVjb2Rl
ZDsKICAgICAgICAgbWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoKTsKQEAgLTMwNCw3
ICszMDcsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21w
cmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlpbmcsIE9TUwogICAgIH07CiAKICAgICBDTVNhbXBs
ZUJ1ZmZlclJlZiByYXdJbWFnZVNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKG5vRXJy
ICE9IENNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsIGltYWdlQnVmZmVyRGVzY3JpcHRpb24uZ2V0KCksICZp
bWFnZUJ1ZmZlclRpbWluZywgJnJhd0ltYWdlU2FtcGxlQnVmZmVyKSkgeworICAgIGlmIChub0Vy
ciAhPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgcmF3SW1hZ2VCdWZmZXIsIGltYWdlQnVmZmVyRGVzY3JpcHRpb24uZ2V0
KCksICZpbWFnZUJ1ZmZlclRpbWluZywgJnJhd0ltYWdlU2FtcGxlQnVmZmVyKSkgewogICAgICAg
ICArK21fY29ycnVwdGVkVmlkZW9GcmFtZXM7CiAgICAgICAgIC0tbV9mcmFtZXNCZWluZ0RlY29k
ZWQ7CiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMTgs
MTEgKzMyMSwxMSBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVj
b21wcmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlpbmcsIE9TUwogCiBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRGaXJzdFZpZGVvRnJh
bWUoKQogewotICAgIGlmICghbV9wcm9kdWNlclF1ZXVlIHx8IENNQnVmZmVyUXVldWVJc0VtcHR5
KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpCisgICAgaWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgUEFM
OjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVu
dFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1
ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7Ci0gICAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJS
ZWYpQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihjdXJyZW50U2FtcGxlLmdldCgpKTsKKyAg
ICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENGKGNo
ZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1
ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7CisgICAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOwogICAgIEFTU0VSVChD
RkdldFR5cGVJRChpbWFnZUJ1ZmZlci5nZXQoKSkgPT0gQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJRCgp
KTsKIAogICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7CkBAIC0zMzUsMjUg
KzMzOCwyNSBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVx
dWV1ZSgpCiAgICAgaWYgKCFtX3RpbWViYXNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRv
IHRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0
KCkpKTsKKyAgICBhdXRvIHRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01UaW1lYmFzZUdl
dFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOwogICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6YXV0b21hdGljRGVxdWV1ZSglcCkgLSBwdXJnaW5nIGFsbCBzYW1wbGVz
IGJlZm9yZSB0aW1lKCVzKSIsIHRoaXMsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwog
CiAgICAgTWVkaWFUaW1lIG5leHRGaXJlVGltZSA9IE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0
ZVRpbWUoKTsKICAgICBib29sIHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gZmFsc2U7CiAKLSAgICB3
aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01T
YW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQo
KSkpKSB7Ci0gICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRv
TWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2Ft
cGxlKSk7Ci0gICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01T
YW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOworICAgIHdoaWxlIChDTVNhbXBs
ZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJl
Zj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewor
ICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxl
KSk7CisgICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CiAgICAgICAgIE1lZGlhVGlt
ZSBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1lc3RhbXAgKyBkdXJh
dGlvbjsKICAgICAgICAgaWYgKHRpbWUgPiBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXApIHsKLSAg
ICAgICAgICAgIENGUmVsZWFzZShDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIENGUmVsZWFzZShQQUw6OkNNQnVmZmVyUXVl
dWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwogICAgICAgICAgICAg
cmVsZWFzZWRJbWFnZUJ1ZmZlcnMgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KIAogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9N
ZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgICAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUo
Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUu
Z2V0KCkpKTsKKyAgICAgICAgYXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTUJ1
ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdl
dCgpKSk7CisgICAgICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVy
UXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7
CiAgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6YXV0b21h
dGljRGVxdWV1ZSglcCkgLSBxdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyhiZWdpbiku
dXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCkBA
IC0zNjUsNyArMzY4LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9t
YXRpY0RlcXVldWUoKQogICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgp
OwogCiAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0
aWNEZXF1ZXVlKCVwKSAtIHF1ZXVlIGVtcHR5IiwgdGhpcyk7Ci0gICAgQ01UaW1lYmFzZVNldFRp
bWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNv
dXJjZS5nZXQoKSwgUEFMOjp0b0NNVGltZShuZXh0RmlyZVRpbWUpLCAwKTsKKyAgICBQQUw6OkNN
VGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlTmV4dEZpcmVUaW1lKG1fdGltZWJhc2UuZ2V0
KCksIG1fdGltZXJTb3VyY2UuZ2V0KCksIFBBTDo6dG9DTVRpbWUobmV4dEZpcmVUaW1lKSwgMCk7
CiB9CiAKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVjb2RlZFNh
bXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGJvb2wgZGlzcGxheWluZykKQEAgLTM4Mywx
NyArMzg2LDE3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlRGVj
b2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsCiAgICAgYm9vbCBzaG91bGROb3Rp
ZnkgPSB0cnVlOwogCiAgICAgaWYgKGRpc3BsYXlpbmcgJiYgbV90aW1lYmFzZSkgewotICAgICAg
ICBhdXRvIGN1cnJlbnRSYXRlID0gQ01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7
Ci0gICAgICAgIGF1dG8gY3VycmVudFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VH
ZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKLSAgICAgICAgYXV0byBwcmVzZW50YXRpb25TdGFy
dFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKHNhbXBsZSkpOwotICAgICAgICBhdXRvIHByZXNlbnRhdGlvbkVuZFRpbWUgPSBwcmVz
ZW50YXRpb25TdGFydFRpbWUgKyBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVy
YXRpb24oc2FtcGxlKSk7CisgICAgICAgIGF1dG8gY3VycmVudFJhdGUgPSBQQUw6OkNNVGltZWJh
c2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOworICAgICAgICBhdXRvIGN1cnJlbnRUaW1lID0g
UEFMOjp0b01lZGlhVGltZShQQUw6OkNNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkp
KTsKKyAgICAgICAgYXV0byBwcmVzZW50YXRpb25TdGFydFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1l
KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlKSk7Cisg
ICAgICAgIGF1dG8gcHJlc2VudGF0aW9uRW5kVGltZSA9IHByZXNlbnRhdGlvblN0YXJ0VGltZSAr
IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSkp
OwogICAgICAgICBpZiAoY3VycmVudFRpbWUgPCBwcmVzZW50YXRpb25TdGFydFRpbWUgfHwgY3Vy
cmVudFRpbWUgPj0gcHJlc2VudGF0aW9uRW5kVGltZSkKICAgICAgICAgICAgIHNob3VsZE5vdGlm
eSA9IGZhbHNlOwogCiAgICAgICAgIGlmIChjdXJyZW50UmF0ZSA+IDAgJiYgcHJlc2VudGF0aW9u
RW5kVGltZSA8IGN1cnJlbnRUaW1lKSB7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICAgICAg
YXV0byBiZWdpbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgICAgICAgICAgYXV0
byBlbmQgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25U
aW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBhdXRvIGJlZ2lu
ID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIGF1dG8gZW5k
ID0gUEFMOjp0b01lZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25U
aW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAgICBMT0coTWVkaWEs
ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVucXVldWVEZWNvZGVkU2FtcGxlKCVwKSAt
IGRyb3BwaW5nIGZyYW1lIGxhdGUgYnkgJXMsIGZyYW1lc0JlaW5nRGVjb2RlZCglZCksIHByb2R1
Y2VyUXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcocHJlc2VudGF0aW9uRW5kVGltZSAt
IGN1cnJlbnRUaW1lKS51dGY4KCkuZGF0YSgpLCBtX2ZyYW1lc0JlaW5nRGVjb2RlZCwgdG9TdHJp
bmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAj
ZW5kaWYKICAgICAgICAgICAgICsrbV9kcm9wcGVkVmlkZW9GcmFtZXM7CkBAIC00MDEsMTcgKzQw
NCwxNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRT
YW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLAogICAgICAgICB9CiAgICAgfQogCi0gICAg
Q01CdWZmZXJRdWV1ZUVucXVldWUobV9wcm9kdWNlclF1ZXVlLmdldCgpLCBzYW1wbGUpOworICAg
IFBBTDo6Q01CdWZmZXJRdWV1ZUVucXVldWUobV9wcm9kdWNlclF1ZXVlLmdldCgpLCBzYW1wbGUp
OwogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgIGF1dG8gYmVnaW4gPSBQQUw6OnRvTWVkaWFUaW1l
KENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVl
dWUuZ2V0KCkpKTsKLSAgICBhdXRvIGVuZCA9IFBBTDo6dG9NZWRpYVRpbWUoQ01CdWZmZXJRdWV1
ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAg
ICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVy
R2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBsZSkpOworICAgIGF1dG8gYmVnaW4gPSBQQUw6
OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0
YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOworICAgIGF1dG8gZW5kID0gUEFMOjp0b01lZGlh
VGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9k
dWNlclF1ZXVlLmdldCgpKSk7CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1lID0gUEFMOjp0b01l
ZGlhVGltZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBs
ZSkpOwogICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1
ZURlY29kZWRTYW1wbGUoJXApIC0gcHJlc2VudGF0aW9uVGltZSglcyksIGZyYW1lc0JlaW5nRGVj
b2RlZCglZCksIHByb2R1Y2VyUXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcocHJlc2Vu
dGF0aW9uVGltZSkudXRmOCgpLmRhdGEoKSwgbV9mcmFtZXNCZWluZ0RlY29kZWQsIHRvU3RyaW5n
KGJlZ2luKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogI2Vu
ZGlmCiAKICAgICBpZiAobV90aW1lYmFzZSkKLSAgICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlz
cGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291
cmNlLmdldCgpKTsKKyAgICAgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJj
ZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkp
OwogCiAgICAgaWYgKCFtX2hhc0F2YWlsYWJsZUZyYW1lQ2FsbGJhY2spCiAgICAgICAgIHJldHVy
bjsKQEAgLTQyNiw3ICs0MjksNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLAogCiBib29sIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aXNSZWFkeUZvck1vcmVNZWRpYURhdGEoKSBjb25z
dAogewotICAgIENNSXRlbUNvdW50IHByb2R1Y2VyQ291bnQgPSBtX3Byb2R1Y2VyUXVldWUgPyBD
TUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQobV9wcm9kdWNlclF1ZXVlLmdldCgpKSA6IDA7Cisg
ICAgQ01JdGVtQ291bnQgcHJvZHVjZXJDb3VudCA9IG1fcHJvZHVjZXJRdWV1ZSA/IFBBTDo6Q01C
dWZmZXJRdWV1ZUdldEJ1ZmZlckNvdW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOwogICAg
IHJldHVybiBtX2ZyYW1lc0JlaW5nRGVjb2RlZCArIHByb2R1Y2VyQ291bnQgPD0ga0hpZ2hXYXRl
ck1hcms7CiB9CiAKQEAgLTQ1Miw3ICs0NTUsNyBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6c3RvcFJlcXVlc3RpbmdNZWRpYURhdGEoKQogCiB2b2lkIFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjo6bm90aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoc3RkOjpmdW5j
dGlvbjx2b2lkKCk+IGNhbGxiYWNrKQogewotICAgIGlmIChjYWxsYmFjayAmJiBtX3Byb2R1Y2Vy
UXVldWUgJiYgIUNNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsK
KyAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNlclF1ZXVlICYmICFQQUw6OkNNQnVmZmVyUXVl
dWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpIHsKICAgICAgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFtjYWxsYmFja10gewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAg
ICAgfSk7CkBAIC00NjMsNyArNDY2LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b246Om5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVuY3Rpb24KIAogUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1h
Z2VGb3JUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgSW1hZ2VGb3JUaW1lRmxhZ3MgZmxhZ3Mp
CiB7Ci0gICAgaWYgKENNQnVmZmVyUXVldWVJc0VtcHR5KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkp
IHsKKyAgICBpZiAoUEFMOjpDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0
KCkpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
aW1hZ2VGb3JUaW1lKCVwKSAtIHRpbWUoJXMpLCBxdWV1ZSBlbXB0eSIsIHRoaXMsIHRvU3RyaW5n
KHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBA
IC00NzEsOSArNDc0LDkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0IE1lZGkKICAgICBib29sIGFsbG93
RWFybGllciA9IGZsYWdzID09IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dFYXJs
aWVyOwogICAgIGJvb2wgYWxsb3dMYXRlciA9IGZsYWdzID09IFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6QWxsb3dMYXRlcjsKIAotICAgIE1lZGlhVGltZSBzdGFydFRpbWUgPSBQQUw6OnRv
TWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3By
b2R1Y2VyUXVldWUuZ2V0KCkpKTsKKyAgICBNZWRpYVRpbWUgc3RhcnRUaW1lID0gUEFMOjp0b01l
ZGlhVGltZShQQUw6OkNNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCht
X3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgTWVkaWFUaW1l
IGVuZFRpbWUgPSBQQUw6OnRvTWVkaWFUaW1lKENNQnVmZmVyUXVldWVHZXRFbmRQcmVzZW50YXRp
b25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CisgICAgTWVkaWFUaW1lIGVuZFRp
bWUgPSBQQUw6OnRvTWVkaWFUaW1lKFBBTDo6Q01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlv
blRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKICNlbmRpZgogICAgIGlmICghYWxs
b3dMYXRlciAmJiB0aW1lIDwgc3RhcnRUaW1lKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIldlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKCVwKSAtIHRpbWUoJXMpIHRvbyBl
YXJseSBmb3IgcXVldWUoJXMgLT4gJXMpIiwgdGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRh
dGEoKSwgdG9TdHJpbmcoc3RhcnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmRUaW1l
KS51dGY4KCkuZGF0YSgpKTsKQEAgLTQ4MiwyNCArNDg1LDI0IEBAIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmltYWdlRm9yVGltZShjb25z
dCBNZWRpCiAKICAgICBib29sIHJlbGVhc2VkSW1hZ2VCdWZmZXJzID0gZmFsc2U7CiAKLSAgICB3
aGlsZSAoQ01TYW1wbGVCdWZmZXJSZWYgZmlyc3RTYW1wbGUgPSBjaGVja2VkX2NmX2Nhc3Q8Q01T
YW1wbGVCdWZmZXJSZWY+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJvZHVjZXJRdWV1ZS5nZXQo
KSkpKSB7Ci0gICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lc3RhbXAgPSBQQUw6OnRv
TWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2Ft
cGxlKSk7Ci0gICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoQ01T
YW1wbGVCdWZmZXJHZXREdXJhdGlvbihmaXJzdFNhbXBsZSkpOworICAgIHdoaWxlIChDTVNhbXBs
ZUJ1ZmZlclJlZiBmaXJzdFNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxDTVNhbXBsZUJ1ZmZlclJl
Zj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSkgewor
ICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZXN0YW1wID0gUEFMOjp0b01lZGlhVGlt
ZShQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGZpcnN0U2FtcGxl
KSk7CisgICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IFBBTDo6dG9NZWRpYVRpbWUoUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7CiAgICAgICAgIE1lZGlhVGlt
ZSBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1lc3RhbXAgKyBkdXJh
dGlvbjsKICAgICAgICAgaWYgKCFhbGxvd0xhdGVyICYmIHByZXNlbnRhdGlvblRpbWVzdGFtcCA+
IHRpbWUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgaWYgKCFhbGxvd0Vh
cmxpZXIgJiYgcHJlc2VudGF0aW9uRW5kVGltZXN0YW1wIDwgdGltZSkgewotICAgICAgICAgICAg
Q0ZSZWxlYXNlKENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1ZS5n
ZXQoKSkpOworICAgICAgICAgICAgQ0ZSZWxlYXNlKFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVB
bmRSZXRhaW4obV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7CiAgICAgICAgICAgICByZWxlYXNlZElt
YWdlQnVmZmVycyA9IHRydWU7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0g
ICAgICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0
Q0YoY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihDTUJ1ZmZlclF1ZXVlRGVxdWV1
ZUFuZFJldGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSk7Ci0gICAgICAgIFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlciA9IChDVlBpeGVsQnVmZmVyUmVmKUNNU2FtcGxl
QnVmZmVyR2V0SW1hZ2VCdWZmZXIoY3VycmVudFNhbXBsZS5nZXQoKSk7CisgICAgICAgIFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoY2hlY2tlZF9j
Zl9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihQQUw6OkNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0
YWluKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpKTsKKyAgICAgICAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IGltYWdlQnVmZmVyID0gKENWUGl4ZWxCdWZmZXJSZWYpUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldEltYWdlQnVmZmVyKGN1cnJlbnRTYW1wbGUuZ2V0KCkpOwogICAgICAgICBBU1NFUlQo
Q0ZHZXRUeXBlSUQoaW1hZ2VCdWZmZXIuZ2V0KCkpID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQo
KSk7CiAKICAgICAgICAgaWYgKG1fdGltZWJhc2UpCi0gICAgICAgICAgICBDTVRpbWViYXNlU2V0
VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1f
dGltZXJTb3VyY2UuZ2V0KCkpOworICAgICAgICAgICAgUEFMOjpDTVRpbWViYXNlU2V0VGltZXJE
aXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJT
b3VyY2UuZ2V0KCkpOwogCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRh
KCk7CiAKQEAgLTUwOCw3ICs1MTEsNyBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoY29uc3QgTWVkaQogICAgIH0K
IAogICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRj
aFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2Uu
Z2V0KCkpOworICAgICAgICBQQUw6OkNNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlVG9G
aXJlSW1tZWRpYXRlbHkobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJjZS5nZXQoKSk7CiAK
ICAgICBpZiAocmVsZWFzZWRJbWFnZUJ1ZmZlcnMpCiAgICAgICAgIG1heWJlQmVjb21lUmVhZHlG
b3JNb3JlTWVkaWFEYXRhKCk7CkBAIC01MjAsOSArNTIzLDkgQEAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JUaW1lKGNvbnN0
IE1lZGkKIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpmbHVzaCgpCiB7CiAgICAg
bV9kZWNvbXByZXNzaW9uUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSgpIG11dGFibGUgewotICAgICAgICBDTUJ1ZmZlclF1ZXVlUmVzZXQo
cHJvdGVjdGVkVGhpcy0+bV9wcm9kdWNlclF1ZXVlLmdldCgpKTsKKyAgICAgICAgUEFMOjpDTUJ1
ZmZlclF1ZXVlUmVzZXQocHJvdGVjdGVkVGhpcy0+bV9wcm9kdWNlclF1ZXVlLmdldCgpKTsKICAg
ICAgICAgbV9lbnF1ZWluZ1F1ZXVlLT5kaXNwYXRjaFN5bmMoW3Byb3RlY3RlZFRoaXMgPSBXVEZN
b3ZlKHByb3RlY3RlZFRoaXMpXSB7Ci0gICAgICAgICAgICBDTUJ1ZmZlclF1ZXVlUmVzZXQocHJv
dGVjdGVkVGhpcy0+bV9jb25zdW1lclF1ZXVlLmdldCgpKTsKKyAgICAgICAgICAgIFBBTDo6Q01C
dWZmZXJRdWV1ZVJlc2V0KHByb3RlY3RlZFRoaXMtPm1fY29uc3VtZXJRdWV1ZS5nZXQoKSk7CiAg
ICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2ZyYW1lc1NpbmNlTGFzdFFvc0NoZWNrID0gMDsK
ICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fY3VycmVudFFvc1RpZXIgPSAwOwogICAgICAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+cmVzZXRRb3NUaWVyKCk7CkBAIC01MzMsMjQgKzUzNiwyNCBA
QCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQogQ01UaW1lIFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Z2V0RGVjb2RlVGltZShDTUJ1ZmZlclJlZiBidWYsIHZv
aWQqKQogewogICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IGNoZWNrZWRfY2ZfY2FzdDxD
TVNhbXBsZUJ1ZmZlclJlZj4oYnVmKTsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXREZWNv
ZGVUaW1lU3RhbXAoc2FtcGxlKTsKKyAgICByZXR1cm4gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERl
Y29kZVRpbWVTdGFtcChzYW1wbGUpOwogfQogCiBDTVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjpnZXRQcmVzZW50YXRpb25UaW1lKENNQnVmZmVyUmVmIGJ1Ziwgdm9pZCopCiB7CiAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVm
ZmVyUmVmPihidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRp
bWVTdGFtcChzYW1wbGUpOworICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKHNhbXBsZSk7CiB9CiAKIENNVGltZSBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb246OmdldER1cmF0aW9uKENNQnVmZmVyUmVmIGJ1Ziwgdm9pZCopCiB7CiAgICAgQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gY2hlY2tlZF9jZl9jYXN0PENNU2FtcGxlQnVmZmVyUmVm
PihidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKHNhbXBsZSk7Cisg
ICAgcmV0dXJuIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihzYW1wbGUpOwogfQogCiBD
RkNvbXBhcmlzb25SZXN1bHQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpjb21wYXJlQnVm
ZmVycyhDTUJ1ZmZlclJlZiBidWYxLCBDTUJ1ZmZlclJlZiBidWYyLCB2b2lkKiByZWZjb24pCiB7
Ci0gICAgcmV0dXJuIChDRkNvbXBhcmlzb25SZXN1bHQpQ01UaW1lQ29tcGFyZShnZXRQcmVzZW50
YXRpb25UaW1lKGJ1ZjEsIHJlZmNvbiksIGdldFByZXNlbnRhdGlvblRpbWUoYnVmMiwgcmVmY29u
KSk7CisgICAgcmV0dXJuIChDRkNvbXBhcmlzb25SZXN1bHQpUEFMOjpDTVRpbWVDb21wYXJlKGdl
dFByZXNlbnRhdGlvblRpbWUoYnVmMSwgcmVmY29uKSwgZ2V0UHJlc2VudGF0aW9uVGltZShidWYy
LCByZWZjb24pKTsKIH0KIAogdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnJlc2V0
UW9zVGllcigpCkBAIC02MDIsNyArNjA1LDcgQEAgdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246OnVwZGF0ZVFvc1dpdGhEZWNvZGVUaW1lU3RhdGlzdGljcyhkb3VibGUgcmF0aW8KICAg
ICBpZiAoIW1fdGltZWJhc2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRvdWJsZSByYXRlID0g
Q01UaW1lYmFzZUdldFJhdGUobV90aW1lYmFzZS5nZXQoKSk7CisgICAgZG91YmxlIHJhdGUgPSBQ
QUw6OkNNVGltZWJhc2VHZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCkpOwogICAgIGlmICghcmF0ZSkK
ICAgICAgICAgcmF0ZSA9IDE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCmluZGV4IGUzZjA5
MjcwMzQ4ZTdhNWFlZjcyNjZlYjQ3MmRkYmFlNzNiYzM0MDcuLmYzMTY5YWJjMDI3NzA4MmYwY2Zj
ZTQ3MjY3OWUxMTA3OTdjOGM5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQpAQCAtNDIs
NyArNDIsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBpbmxpbmUgQ0ZT
dHJpbmdSZWYgY3ZQaXhlbEZvcm1hdE9wZW5HTEtleSgpCiB7CkBAIC0xMzgsNyArMTM3LDcgQEAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZl
cnRQaXhlbEJ1ZmZlcihDVlBpeGVsQnUKIAogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IElt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVm
IHNvdXJjZUJ1ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICByZXR1cm4gY29udmVy
dFBpeGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSwg
c2l6ZSk7CisgICAgcmV0dXJuIGNvbnZlcnRQaXhlbEJ1ZmZlcihQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSwgc2l6ZSk7CiB9CiAKIFJldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVm
ZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkK
QEAgLTE0Niw5ICsxNDUsOSBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIGlmICghc291
cmNlQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gZGVzY3JpcHRp
b24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNvdXJjZUJ1ZmZlcik7Ci0g
ICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRTaXplKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dFByZXNlbnRhdGlvbkRpbWVuc2lvbnMoZGVzY3JpcHRpb24sIHRydWUsIHRydWUpKTsKLSAgICBh
dXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVC
dWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpKTsKKyAgICBhdXRvIGRlc2NyaXB0aW9u
ID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNvdXJjZUJ1ZmZlcik7
CisgICAgYXV0byBzb3VyY2VTaXplID0gRmxvYXRTaXplKFBBTDo6Q01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucyhkZXNjcmlwdGlvbiwgdHJ1ZSwgdHJ1ZSkp
OworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQ
QUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSk7CiAgICAgaWYg
KHNpemUgPT0gZXhwYW5kZWRJbnRTaXplKHNvdXJjZVNpemUpICYmIG1fcGl4ZWxGb3JtYXQgPT0g
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikpCiAgICAgICAgIHJl
dHVybiByZXRhaW5QdHIoc291cmNlQnVmZmVyKTsKIApAQCAtMTYwLDcgKzE1OSw3IEBAIFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENN
U2FtcGxlQnVmZmVyKENNU2FtCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ01JdGVt
Q291bnQgaXRlbUNvdW50ID0gMDsKLSAgICBhdXRvIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgMSwgbnVsbHB0ciwgJml0ZW1Db3Vu
dCk7CisgICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5n
SW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgMSwgbnVsbHB0ciwgJml0ZW1Db3VudCk7CiAgICAgaWYg
KHN0YXR1cyAhPSBub0VycikgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01TYW1wbGVCdWZmZXJHZXRT
YW1wbGVUaW1pbmdJbmZvQXJyYXkgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNf
Y2FzdDxpbnQ+KHN0YXR1cykpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE2OSw3ICsx
NjgsNyBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIENNU2FtcGxlVGltaW5nSW5mbyog
dGltZWluZ0luZm9QdHIgPSBudWxscHRyOwogICAgIGlmIChpdGVtQ291bnQpIHsKICAgICAgICAg
dGltaW5nSW5mb0FycmF5Lmdyb3coaXRlbUNvdW50KTsKLSAgICAgICAgc3RhdHVzID0gQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXkoc291cmNlQnVmZmVyLCBpdGVtQ291bnQs
IHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOworICAgICAgICBzdGF0dXMgPSBQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNvdXJjZUJ1ZmZlciwgaXRl
bUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsKICAgICAgICAgaWYgKHN0
YXR1cyAhPSBub0VycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXI6IENNU2FtcGxlQnVmZmVyR2V0
U2FtcGxlVGltaW5nSW5mb0FycmF5IGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGlj
X2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTc4
LDE0ICsxNzcsMTQgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICB9CiAKICAgICBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwotICAg
IHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdldCgpLCAmZm9ybWF0RGVz
Y3JpcHRpb24pOworICAgIHN0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZm
ZXIuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cyAhPSBub0Vycikg
ewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNv
bnZlcnRDTVNhbXBsZUJ1ZmZlcjogQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1h
Z2VCdWZmZXIgcmV0dXJuZWQ6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgcmVzaXpl
ZFNhbXBsZUJ1ZmZlcjsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0
aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbnZlcnRlZFBpeGVsQnVmZmVyLmdl
dCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgdGltZWluZ0luZm9QdHIsICZyZXNpemVkU2FtcGxlQnVm
ZmVyKTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1h
Z2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29udmVydGVkUGl4ZWxCdWZmZXIuZ2V0KCks
IGZvcm1hdERlc2NyaXB0aW9uLCB0aW1laW5nSW5mb1B0ciwgJnJlc2l6ZWRTYW1wbGVCdWZmZXIp
OwogICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKHN0YXR1cyAhPSBu
b0VycikgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcjogZmFpbGVkIHRvIGNyZWF0ZSBDTVNhbXBsZUJ1ZmZl
ciB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKQEAgLTIz
NywxNiArMjM2LDE2IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIoQ1ZQaXhlCiAgICAgfQogCiAgICAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAg
ICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVm
ZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdl
dCgpLCAmZm9ybWF0RGVzY3JpcHRpb24pOworICAgIGF1dG8gc3RhdHVzID0gUEFMOjpDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAoQ1ZJbWFnZUJ1ZmZlclJlZilpbnB1dEJ1ZmZlci5nZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9u
KTsKICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyOiBmYWlsZWQgdG8gaW5pdGlhbGl6
ZSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb24gd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19j
YXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAg
IENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBhdXRvIGNtVGltZSA9IHRvQ01U
aW1lKHNhbXBsZVRpbWUpOwotICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBr
Q01UaW1lSW52YWxpZCwgY21UaW1lLCBjbVRpbWUgfTsKLSAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVklt
YWdlQnVmZmVyUmVmKWlucHV0QnVmZmVyLmdldCgpLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWlu
Z0luZm8sICZzYW1wbGVCdWZmZXIpOworICAgIGF1dG8gY21UaW1lID0gUEFMOjp0b0NNVGltZShz
YW1wbGVUaW1lKTsKKyAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbyA9IHsgUEFMOjpr
Q01UaW1lSW52YWxpZCwgY21UaW1lLCBjbVRpbWUgfTsKKyAgICBzdGF0dXMgPSBQQUw6OkNNU2Ft
cGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
KENWSW1hZ2VCdWZmZXJSZWYpaW5wdXRCdWZmZXIuZ2V0KCksIGZvcm1hdERlc2NyaXB0aW9uLCAm
dGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7CiAgICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0
aW9uKTsKICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyOiBmYWlsZWQgdG8gaW5pdGlh
bGl6ZSBDTVNhbXBsZUJ1ZmZlciB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50
PihzdGF0dXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQppbmRleCBlMGRhYWM4NWI4NzNhZDZh
YTliNGFiMmRiN2EwMDljYzM3ZDQ3ODk1Li4zMmEwNDQ5NmNmZjdkODQxMTEyMGZjZDEzM2U2ZDY3
NDI1NGE4NmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCkBAIC00Nyw3ICs0Nyw2IEBAIFNP
RlRMSU5LX0FWS0lUX0ZSQU1FV09SSygpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQs
IEFWVmFsdWVUaW1pbmcpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiAKIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VBVktpdChQbGF5YmFja1Nlc3Npb25Nb2RlbCYgbW9kZWwpCiAgICAgOiBtX3BsYXllckNv
bnRyb2xsZXIoYWRvcHROUyhbW1dlYkFWUGxheWVyQ29udHJvbGxlciBhbGxvY10gaW5pdF0pKQpA
QCAtMTQ1LDcgKzE0NCw3IEBAIHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNl
ZWthYmxlUmFuZ2VzQ2hhbmdlZChjb25zdCBUaW1lUmFuZ2VzJiB0aW1lCiAgICAgICAgIGRvdWJs
ZSBzdGFydCA9IHRpbWVSYW5nZXMuc3RhcnQoaSkucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAg
ICAgIGRvdWJsZSBlbmQgPSB0aW1lUmFuZ2VzLmVuZChpKS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsK
IAotICAgICAgICBDTVRpbWVSYW5nZSByYW5nZSA9IENNVGltZVJhbmdlTWFrZShDTVRpbWVNYWtl
V2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBDTVRpbWVNYWtlV2l0aFNlY29uZHMoZW5kLXN0YXJ0
LCAxMDAwKSk7CisgICAgICAgIENNVGltZVJhbmdlIHJhbmdlID0gUEFMOjpDTVRpbWVSYW5nZU1h
a2UoUEFMOjpDTVRpbWVNYWtlV2l0aFNlY29uZHMoc3RhcnQsIDEwMDApLCBQQUw6OkNNVGltZU1h
a2VXaXRoU2Vjb25kcyhlbmQtc3RhcnQsIDEwMDApKTsKICAgICAgICAgW3NlZWthYmxlUmFuZ2Vz
IGFkZE9iamVjdDpbTlNWYWx1ZSB2YWx1ZVdpdGhDTVRpbWVSYW5nZTpyYW5nZV1dOwogICAgIH0K
ICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRleCBlYTQyM2M3MTdjN2FlOTFiZDRlZTk5MDg3
ZTA3YzRlNWMzN2U0YzNmLi41ZGYzNDlmYzZmY2RmY2ZhZWE3NTU2MzIwZjNhZTZlNjY3NjM0ZTli
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTM3Myw3ICszNzMsNiBAQCAtICh2b2lkKXBpcEFj
dGlvblN0b3A6KFBJUFZpZXdDb250cm9sbGVyICopcGlwCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1h
Yzo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjKFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1h
YyYgcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKQogICAgIDogbV9wbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2UocGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGwuY3BwCmluZGV4IDg4NDA5NDI5NzkyNmM4YWViZGVmNmYzZTk1Nzg0MmY4MzQy
OGI4OTIuLmQ0MTllMGUxOTI1NTVkNzM2MDg1ODUxZjU0Y2EwMDQwZDQ2YjY2M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNp
bmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbD4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoTWVkaWFT
dHJlYW1Qcml2YXRlJiBzdHJlYW0sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucyYg
b3B0aW9ucykKIHsKQEAgLTg4LDEyICs4NywxMiBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcgog
ewogICAgIGlmIChzaG91bGRNdXRlVmlkZW8oKSkgewogICAgICAgICBpZiAoIW1fYmxhY2tGcmFt
ZSkgewotICAgICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZl
ckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBs
ZS5jbVNhbXBsZUJ1ZmZlcik7Ci0gICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdl
dCgpKTsKKyAgICAgICAgICAgIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgp
LnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBQ
QUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVz
Y3JpcHRpb24uZ2V0KCkpOwogICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gY3JlYXRlQmxhY2tQ
aXhlbEJ1ZmZlcihkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7CiAKICAgICAg
ICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51
bGxwdHI7Ci0gICAgICAgICAgICBhdXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5n
ZXQoKSwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gUEFM
OjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlwdGlvbik7CiAgICAg
ICAgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWEsICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlIDo6dW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lIGRlc2NyaXB0aW9uOiAl
ZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CiAgICAgICAgICAgICAgICAgbV9ibGFja0Zy
YW1lID0gbnVsbHB0cjsKQEAgLTEwMyw4ICsxMDIsOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZl
cgogICAgICAgICB9CiAKICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gbnVsbHB0
cjsKLSAgICAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8geyBrQ01UaW1lSW52YWxp
ZCwgdG9DTVRpbWUoc2FtcGxlQnVmZmVyLnByZXNlbnRhdGlvblRpbWUoKSksIHRvQ01UaW1lKHNh
bXBsZUJ1ZmZlci5kZWNvZGVUaW1lKCkpIH07Ci0gICAgICAgIGF1dG8gc3RhdHVzID0gQ01TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAo
Q1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNrRnJhbWUuZ2V0KCksIG1fYmxhY2tGcmFtZURlc2NyaXB0
aW9uLmdldCgpLCAmdGltaW5nSW5mbywgJnNhbXBsZSk7CisgICAgICAgIENNU2FtcGxlVGltaW5n
SW5mbyB0aW1pbmdJbmZvIHsgUEFMOjprQ01UaW1lSW52YWxpZCwgUEFMOjp0b0NNVGltZShzYW1w
bGVCdWZmZXIucHJlc2VudGF0aW9uVGltZSgpKSwgUEFMOjp0b0NNVGltZShzYW1wbGVCdWZmZXIu
ZGVjb2RlVGltZSgpKSB9OworICAgICAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFn
ZUJ1ZmZlclJlZiltX2JsYWNrRnJhbWUuZ2V0KCksIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdl
dCgpLCAmdGltaW5nSW5mbywgJnNhbXBsZSk7CiAKICAgICAgICAgaWYgKHN0YXR1cyAhPSBub0Vy
cikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJl
Y29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZhaWxhYmxlIC0gdW5hYmxlIHRvIGNy
ZWF0ZSBhIGJsYWNrIGZyYW1lOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IDUxYTNl
MThhMmNlZGQzY2Q1ZGE5M2YzNGViZjM3MTFlMDIwZjhiNjIuLjVlMTEwZWNkN2RlMzg0NjFiNDI5
MDRhMGViNDg4MzQxODQzZTc1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLm1tCkBAIC0zNiwxMyArMzYsMTIgQEAKICNpbmNsdWRlIDx3dGYvU2Nv
cGUuaD4KIAogI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisjaW1wb3J0
IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogI2RlZmluZSBMT1dfV0FURVJfVElNRV9J
Tl9TRUNPTkRTIDAuMQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQ
QUw7Ci0KIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+IEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y3JlYXRlKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJh
Y2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIGF1dG8gY29tcHJlc3Nv
ciA9IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+KG5ldyBBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKSk7CkBAIC01MiwxNSArNTEsMTUgQEAgc3RkOjp1bmlx
dWVfcHRyPEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjpjcmVhdGUKIH0KIAogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IoKQotICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlIHsgV29y
a1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IiKSB9
Ci0gICAgLCBtX2xvd1dhdGVyVGltZSB7IENNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FURVJf
VElNRV9JTl9TRUNPTkRTLCAxMDAwKSB9CisgICAgOiBtX3NlcmlhbERpc3BhdGNoUXVldWUoV29y
a1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IiKSkK
KyAgICAsIG1fbG93V2F0ZXJUaW1lKFBBTDo6Q01UaW1lTWFrZVdpdGhTZWNvbmRzKExPV19XQVRF
Ul9USU1FX0lOX1NFQ09ORFMsIDEwMDApKQogewogfQogCiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6On5BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogewogICAgIGlmIChtX2NvbnZl
cnRlcikgewotICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAg
ICAgICBQQUw6OkF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CiAgICAgICAgIG1f
Y29udmVydGVyID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC02OCwxOSArNjcsMTkgQEAgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIGJv
b2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENNQnVmZmVyUXVldWVU
cmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQogewogICAgIENN
QnVmZmVyUXVldWVSZWYgaW5wdXRCdWZmZXJRdWV1ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IENN
QnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdl
dENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmaW5wdXRCdWZmZXJRdWV1ZSkp
IHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6Q01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAwLCBQQUw6OkNNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRl
ZFNhbXBsZUJ1ZmZlcnMoKSwgJmlucHV0QnVmZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVm
ZmVyUXVldWVDcmVhdGUgZm9yIG1faW5wdXRCdWZmZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX2lucHV0QnVmZmVyUXVl
dWUgPSBhZG9wdENGKGlucHV0QnVmZmVyUXVldWUpOwogCiAgICAgQ01CdWZmZXJRdWV1ZVJlZiBv
dXRwdXRCdWZmZXJRdWV1ZTsKLSAgICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVu
c29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CisgICAgaWYgKGF1
dG8gZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
MCwgUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJz
KCksICZvdXRwdXRCdWZmZXJRdWV1ZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0
ZSBmb3IgbV9vdXRwdXRCdWZmZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gYWRvcHRD
RihvdXRwdXRCdWZmZXJRdWV1ZSk7Ci0gICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1f
b3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVm
ZmVyUXVldWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVMTCk7
CisgICAgUEFMOjpDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1
ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJf
V2hlbkRhdGFCZWNvbWVzUmVhZHksIFBBTDo6a0NNVGltZVplcm8sIE5VTEwpOwogCiAgICAgbV9p
c0VuY29kaW5nID0gdHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg5LDggKzg4LDggQEAgYm9v
bCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRy
aWdnZXJDYWxsYmFjayBjYWxsYmEKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpm
aW5pc2goKQogewogICAgIG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlz
XSB7Ci0gICAgICAgIHByb2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoa0NNVGlt
ZUludmFsaWQpOwotICAgICAgICBhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRh
dGEobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSk7CisgICAgICAgIHByb2Nlc3NTYW1wbGVCdWZm
ZXJzVW50aWxMb3dXYXRlclRpbWUoUEFMOjprQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8g
ZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCkpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRh
dGEgZmFpbGVkICVkIiwgZXJyb3IpOwogICAgICAgICBtX2lzRW5jb2RpbmcgPSBmYWxzZTsKICAg
ICB9KTsKQEAgLTExMiw3ICsxMTEsNyBAQCBVSW50MzIgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjpkZWZhdWx0T3V0cHV0Qml0UmF0ZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRAogCiBib29s
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNl
Rm9ybWF0RGVzY3JpcHRpb24oQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biwgQXVkaW9Gb3JtYXRJRCBvdXRwdXRGb3JtYXRJRCkKIHsKLSAgICBjb25zdCBhdXRvICphdWRp
b0Zvcm1hdExpc3RJdGVtID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29k
YWJsZUZvcm1hdChmb3JtYXREZXNjcmlwdGlvbik7CisgICAgY29uc3QgYXV0byAqYXVkaW9Gb3Jt
YXRMaXN0SXRlbSA9IFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29k
YWJsZUZvcm1hdChmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgbV9zb3VyY2VGb3JtYXQgPSBhdWRp
b0Zvcm1hdExpc3RJdGVtLT5tQVNCRDsKIAogICAgIG1lbXNldCgmbV9kZXN0aW5hdGlvbkZvcm1h
dCwgMCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbikpOwpAQCAtMTIxLDM0ICsx
MjAsMzQgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZl
cnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0aW9uKEMKICAgICBtX2Rlc3RpbmF0aW9uRm9ybWF0
Lm1DaGFubmVsc1BlckZyYW1lID0gbV9zb3VyY2VGb3JtYXQubUNoYW5uZWxzUGVyRnJhbWU7CiAK
ICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtX2Rlc3RpbmF0aW9uRm9ybWF0KTsKLSAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvRm9ybWF0R2V0UHJvcGVydHkoa0F1ZGlvRm9ybWF0UHJvcGVydHlf
Rm9ybWF0SW5mbywgMCwgTlVMTCwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgeworICAg
IGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRpb0Zvcm1h
dFByb3BlcnR5X0Zvcm1hdEluZm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlvbkZvcm1h
dCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIEF1ZGlvQ29udmVy
dGVyUmVmIGNvbnZlcnRlcjsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyTmV3
KCZtX3NvdXJjZUZvcm1hdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsICZjb252ZXJ0ZXIpKSB7Cisg
ICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyTmV3KCZtX3NvdXJjZUZvcm1h
dCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsICZjb252ZXJ0ZXIpKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1ZGlv
Q29udmVydGVyTmV3IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIG1fY29udmVydGVyID0gY29udmVydGVyOwogCiAgICAgYXV0byBjbGVh
bnVwSW5DYXNlT2ZFcnJvciA9IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgQXVkaW9Db252
ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbnZlcnRlckRp
c3Bvc2UobV9jb252ZXJ0ZXIpOwogICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7CiAgICAg
fSk7CiAKICAgICBzaXplX3QgY29va2llU2l6ZSA9IDA7Ci0gICAgY29uc3Qgdm9pZCAqY29va2ll
ID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUoZm9ybWF0RGVzY3JpcHRp
b24sICZjb29raWVTaXplKTsKKyAgICBjb25zdCB2b2lkICpjb29raWUgPSBQQUw6OkNNQXVkaW9G
b3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1hdERlc2NyaXB0aW9uLCAmY29va2ll
U2l6ZSk7CiAgICAgaWYgKGNvb2tpZVNpemUpIHsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBB
dWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJEZWNv
bXByZXNzaW9uTWFnaWNDb29raWUsIChVSW50MzIpY29va2llU2l6ZSwgY29va2llKSkgeworICAg
ICAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2Nv
bnZlcnRlciwga0F1ZGlvQ29udmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llLCAoVUludDMy
KWNvb2tpZVNpemUsIGNvb2tpZSkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29u
dmVydGVyRGVjb21wcmVzc2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCiAgICAgc2l6ZSA9
IHNpemVvZihtX3NvdXJjZUZvcm1hdCk7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZl
cnRlckdldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVkaW9Db252ZXJ0ZXJDdXJyZW50SW5wdXRT
dHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX3NvdXJjZUZvcm1hdCkpIHsKKyAgICBpZiAoYXV0
byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1
ZGlvQ29udmVydGVyQ3VycmVudElucHV0U3RyZWFtRGVzY3JpcHRpb24sICZzaXplLCAmbV9zb3Vy
Y2VGb3JtYXQpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudElu
cHV0U3RyZWFtRGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CkBAIC0xNTksNyArMTU4LDcgQEAgYm9vbCBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OmluaXRBdWRpb0NvbnZlcnRlckZvclNvdXJjZUZvcm1hdERlc2NyaXB0
aW9uKEMKICAgICB9CiAKICAgICBzaXplID0gc2l6ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOwot
ICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRl
ciwga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwg
Jm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRP
dXRwdXRTdHJlYW1EZXNjcmlwdGlvbiwgJnNpemUsICZtX2Rlc3RpbmF0aW9uRm9ybWF0KSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRPdXRwdXRTdHJlYW1EZXNj
cmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KQEAgLTE2NywxNCArMTY2LDE0IEBAIGJvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihDCiAgICAg
aWYgKG1fZGVzdGluYXRpb25Gb3JtYXQubUZvcm1hdElEID09IGtBdWRpb0Zvcm1hdE1QRUc0QUFD
KSB7CiAgICAgICAgIGJvb2wgc2hvdWxkU2V0RGVmYXVsdE91dHB1dEJpdFJhdGUgPSB0cnVlOwog
ICAgICAgICBpZiAobV9vdXRwdXRCaXRSYXRlKSB7Ci0gICAgICAgICAgICBhdXRvIGVycm9yID0g
QXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5j
b2RlQml0UmF0ZSwgc2l6ZW9mKCptX291dHB1dEJpdFJhdGUpLCAmbV9vdXRwdXRCaXRSYXRlLnZh
bHVlKCkpOworICAgICAgICAgICAgYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJTZXRQ
cm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSwgc2l6ZW9m
KCptX291dHB1dEJpdFJhdGUpLCAmbV9vdXRwdXRCaXRSYXRlLnZhbHVlKCkpOwogICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIHNldHRpbmcga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgIHNob3VsZFNldERlZmF1bHRPdXRwdXRC
aXRSYXRlID0gISFlcnJvcjsKICAgICAgICAgfQogICAgICAgICBpZiAoc2hvdWxkU2V0RGVmYXVs
dE91dHB1dEJpdFJhdGUpIHsKICAgICAgICAgICAgIGF1dG8gb3V0cHV0Qml0UmF0ZSA9IGRlZmF1
bHRPdXRwdXRCaXRSYXRlKG1fZGVzdGluYXRpb25Gb3JtYXQpOwogICAgICAgICAgICAgc2l6ZSA9
IHNpemVvZihvdXRwdXRCaXRSYXRlKTsKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVk
aW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyRW5jb2Rl
Qml0UmF0ZSwgc2l6ZSwgJm91dHB1dEJpdFJhdGUpKQorICAgICAgICAgICAgaWYgKGF1dG8gZXJy
b3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0Nv
bnZlcnRlckVuY29kZUJpdFJhdGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkKICAgICAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBzZXR0aW5nIGRlZmF1bHQga0F1ZGlvQ29udmVydGVyRW5jb2RlQml0UmF0ZSBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgfQogICAgIH0KQEAgLTE4Myw3ICsxODIsNyBA
QCBib29sIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdEF1ZGlvQ29udmVydGVyRm9y
U291cmNlRm9ybWF0RGVzY3JpcHRpb24oQwogICAgICAgICAvLyBJZiB0aGUgZGVzdGluYXRpb24g
Zm9ybWF0IGlzIFZCUiwgd2UgbmVlZCB0byBnZXQgbWF4IHNpemUgcGVyIHBhY2tldCBmcm9tIHRo
ZSBjb252ZXJ0ZXIuCiAgICAgICAgIHNpemUgPSBzaXplb2YobV9tYXhPdXRwdXRQYWNrZXRTaXpl
KTsKIAotICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHko
bV9jb252ZXJ0ZXIsIGtBdWRpb0NvbnZlcnRlclByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNp
emUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNrZXRTaXplKSkgeworICAgICAgICBpZiAoYXV0byBl
cnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlv
Q29udmVydGVyUHJvcGVydHlNYXhpbXVtT3V0cHV0UGFja2V0U2l6ZSwgJnNpemUsICZtX21heE91
dHB1dFBhY2tldFNpemUpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRl
clByb3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTIxMSw2ICsyMTAsOCBA
QCBzaXplX3QgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjb21wdXRlQnVmZmVyU2l6ZUZv
ckF1ZGlvRm9ybWF0KEF1ZGlvU3RyZWFtQgogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6YXR0YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVy
KQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBQQUw7CisKICAgICBpZiAoQ01USU1FX0lTX0lOVkFM
SUQobV9yZW1haW5pbmdQcmltZUR1cmF0aW9uKSkgewogICAgICAgICBBdWRpb0NvbnZlcnRlclBy
aW1lSW5mbyBwcmltZUluZm8geyAwLCAwIH07CiAgICAgICAgIFVJbnQzMiBzaXplID0gc2l6ZW9m
KHByaW1lSW5mbyk7CkBAIC0yMzYsMjUgKzIzNywyNSBAQCBSZXRhaW5QdHI8TlNOdW1iZXI+IEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z3JhZHVhbERlY29kZXJSZWZyZXNoQ291bnQoKQog
ewogICAgIFVJbnQzMiBkZWxheVNpemUgPSBzaXplb2YodWludDMyX3QpOwogICAgIHVpbnQzMl90
IG9yaWdpbmFsRGVsYXlNb2RlID0gMDsKLSAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUs
ICZkZWxheVNpemUsICZvcmlnaW5hbERlbGF5TW9kZSkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9
IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29kZWNQ
cm9wZXJ0eURlbGF5TW9kZSwgJmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCiAgICAgdWludDMyX3Qg
b3B0aW1hbERlbGF5TW9kZSA9IGtBdWRpb0NvZGVjRGVsYXlNb2RlX09wdGltYWw7Ci0gICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLCBrQXVk
aW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlNb2RlKSkg
eworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1f
Y29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRp
bWFsRGVsYXlNb2RlKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
IkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlE
ZWxheU1vZGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAg
ICAgfQogCiAgICAgVUludDMyIHByaW1lU2l6ZSA9IHNpemVvZihBdWRpb0NvZGVjUHJpbWVJbmZv
KTsKICAgICBBdWRpb0NvZGVjUHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKLSAgICBpZiAo
YXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtBdWRp
b0NvZGVjUHJvcGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CisgICAg
aWYgKGF1dG8gZXJyb3IgPSBQQUw6OkF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0
ZXIsIGtBdWRpb0NvZGVjUHJvcGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8p
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbyBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBp
ZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIsIGtB
dWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2Rl
KSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5
KG1fY29udmVydGVyLCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZv
cmlnaW5hbERlbGF5TW9kZSkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db2RlY1Byb3Bl
cnR5RGVsYXlNb2RlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmls
OwogICAgIH0KQEAgLTI2NywxOCArMjY4LDE4IEBAIENNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0aE51bVBhY2tldHMoVUludDMyCiAg
ICAgaWYgKCFtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAgVUludDMy
IGNvb2tpZVNpemUgPSAwOwogCi0gICAgICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdl
dFByb3BlcnR5SW5mbyhtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdp
Y0Nvb2tpZSwgJmNvb2tpZVNpemUsIE5VTEwpOworICAgICAgICBhdXRvIGVycm9yID0gUEFMOjpB
dWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbyhtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVy
Q29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIE5VTEwpOwogICAgICAgICBpZiAo
KGVycm9yID09IG5vRXJyKSAmJiAhIWNvb2tpZVNpemUpIHsKICAgICAgICAgICAgIGNvb2tpZS5y
ZXNpemUoY29va2llU2l6ZSk7CiAKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9D
b252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Np
b25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUsIGNvb2tpZS5kYXRhKCkpKSB7CisgICAgICAgICAg
ICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZl
cnRlciwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUs
IGNvb2tpZS5kYXRhKCkpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252
ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBuaWw7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAg
ICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb247
Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBOVUxMLCBjb29r
aWVTaXplLCBjb29raWUuZGF0YSgpLCBOVUxMLCAmZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlv
bikpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmbV9kZXN0aW5hdGlvbkZvcm1hdCwgMCwg
TlVMTCwgY29va2llU2l6ZSwgY29va2llLmRhdGEoKSwgTlVMTCwgJmRlc3RpbmF0aW9uRm9ybWF0
RGVzY3JpcHRpb24pKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gbmlsOwog
ICAgICAgICB9CkBAIC0yOTAsMjYgKzI5MSwyNiBAQCBDTVNhbXBsZUJ1ZmZlclJlZiBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OnNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKFVJbnQzMgog
ICAgIHNpemVfdCBkYXRhU2l6ZSA9IGZpbGxCdWZmZXJMaXN0Lm1CdWZmZXJzWzBdLm1EYXRhQnl0
ZVNpemU7CiAKICAgICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrQnVmZmVyOwotICAgIGlmIChhdXRv
IGVycm9yID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jayhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBOVUxMLCBkYXRhU2l6ZSwga0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgMCwgZGF0
YVNpemUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywgJmJsb2NrQnVmZmVyKSkg
eworICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBOVUxMLCAwLCBkYXRhU2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dG
bGFnLCAmYmxvY2tCdWZmZXIpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRo
TWVtb3J5QmxvY2sgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7
CiAgICAgfQogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihibG9ja0J1ZmZlcik7CiAKLSAgICBp
ZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzKGRhdGEsIGJ1ZmZl
ci5nZXQoKSwgMCwgZGF0YVNpemUpKSB7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNQmxv
Y2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzKGRhdGEsIGJ1ZmZlci5nZXQoKSwgMCwgZGF0YVNpemUp
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAogICAgIENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1
ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVm
ZmVyLmdldCgpLCB0cnVlLCBOVUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRp
b24uZ2V0KCksIG51bVBhY2tldHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFt
cCwgbV9kZXN0aW5hdGlvblBhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIp
OworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFj
a2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1ZmZlci5nZXQoKSwgdHJ1ZSwg
TlVMTCwgTlVMTCwgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uLmdldCgpLCBudW1QYWNr
ZXRzLCBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAsIG1fZGVzdGluYXRpb25Q
YWNrZXREZXNjcmlwdGlvbnMuZGF0YSgpLCAmc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoZXJyb3Ip
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlw
dGlvbnMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAg
fQogCiAgICAgaWYgKFttX2dkckNvdW50TnVtIGludFZhbHVlXSkKLSAgICAgICAgQ01TZXRBdHRh
Y2htZW50KHNhbXBsZUJ1ZmZlciwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9HcmFkdWFs
RGVjb2RlclJlZnJlc2gsIChfX2JyaWRnZSBDRlR5cGVSZWYpbV9nZHJDb3VudE51bS5nZXQoKSwg
a0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJvcGFnYXRlKTsKKyAgICAgICAgUEFMOjpDTVNldEF0
dGFjaG1lbnQoc2FtcGxlQnVmZmVyLCBQQUw6OmtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlf
R3JhZHVhbERlY29kZXJSZWZyZXNoLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKW1fZ2RyQ291bnROdW0u
Z2V0KCksIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CiAKICAgICByZXR1cm4g
c2FtcGxlQnVmZmVyOwogfQpAQCAtMzQxLDI0ICszNDIsMjQgQEAgT1NTdGF0dXMgQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjpwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUlu
dDMyKgogICAgICAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CiAg
ICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKENNQnVmZmVyUXVldWVJc0Vt
cHR5KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCisgICAgICAgICAgICAgICAgaWYgKFBBTDo6
Q01CdWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9
IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1
ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOwotICAgICAg
ICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZm
ZXIoc2FtcGxlQnVmZmVyLmdldCgpKTsKKyAgICAgICAgICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZl
ciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihQQUw6OkNN
QnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7
CisgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXREYXRhQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgaWYg
KCFtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxl
QnVmZmVyR2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKICAgICAgICAgICAgICAgICAgICAgbV9zYW1w
bGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRPZmZz
ZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJT
aXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQo
KSk7CisgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBQQUw6OkNNQmxv
Y2tCdWZmZXJHZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpOwogICAgICAg
ICAgICAgICAgIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlcikgewogICAgICAg
ICAgICAgICAgIHNpemVfdCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmID0gc3RkOjptaW4o
bnVtQnl0ZXNUb0NvcHksIChtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSAtIG1fY3VycmVudE9mZnNl
dEluU2FtcGxlQmxvY2tCdWZmZXIpKTsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9
IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1f
Y3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIsIG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBs
ZUJidWYsIChtX3NvdXJjZUJ1ZmZlci5kYXRhKCkgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZm
ZXIpKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gUEFMOjpDTUJsb2NrQnVm
ZmVyQ29weURhdGFCeXRlcyhtX3NhbXBsZUJsb2NrQnVmZmVyLmdldCgpLCBtX2N1cnJlbnRPZmZz
ZXRJblNhbXBsZUJsb2NrQnVmZmVyLCBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmLCAobV9z
b3VyY2VCdWZmZXIuZGF0YSgpICsgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyKSkpIHsKICAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKICAgICAg
ICAgICAgICAgICB9CkBAIC0zOTMsMjggKzM5NCwyOCBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I6OnByb3ZpZGVTb3VyY2VEYXRhTnVtT3V0cHV0UGFja2V0cyhVSW50MzIq
CiAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZl
clF1ZXVlLmdldCgpKSkKKyAgICAgICAgICAgIGlmIChQQUw6OkNNQnVmZmVyUXVldWVJc0VtcHR5
KG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAg
ICAgICAgICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYp
KGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1faW5wdXRC
dWZmZXJRdWV1ZS5nZXQoKSkpKSk7Ci0gICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0g
YWRvcHRDRigoQ01CbG9ja0J1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oQ0ZSZXRhaW4oQ01T
YW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSkpKSkpOworICAgICAg
ICAgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKChDTVNhbXBsZUJ1ZmZlclJlZikoY29u
c3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0
QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9
IGFkb3B0Q0YoKENNQmxvY2tCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSkpKSkpOwog
ICAgICAgICAgICAgaWYgKCFtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVyIGZhaWxlZCIpOwogICAgICAgICAgICAgICAg
IG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRP
ZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gQ01C
bG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSkgLyAyOwor
ICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSBQQUw6OkNNQmxvY2tCdWZmZXJH
ZXREYXRhTGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKICAgICAgICAgICAg
IG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKICAgICAgICAgICAgIHNpemVfdCBudW1C
eXRlc1RvQ29weUZyb21TYW1wbGVCYnVmID0gc3RkOjptaW4obnVtQnl0ZXNUb0NvcHksIChtX3Nh
bXBsZUJsb2NrQnVmZmVyU2l6ZSAtIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIp
KTsKLSAgICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0
ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9j
a0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKGZpcnN0Q2hhbm5lbCArIGN1
cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBlcnJv
ciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9zYW1wbGVCbG9ja0J1ZmZlci5n
ZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlciwgbnVtQnl0ZXNUb0NvcHlG
cm9tU2FtcGxlQmJ1ZiwgKGZpcnN0Q2hhbm5lbCArIGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZl
cikpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgZmly
c3QgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gZXJyb3I7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IENN
QmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1fY3Vy
cmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgKyBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSwg
bnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKHNlY29uZENoYW5uZWwgKyBjdXJyZW50T2Zm
c2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6
OkNNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCksIG1f
Y3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgKyBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6
ZSwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKHNlY29uZENoYW5uZWwgKyBjdXJyZW50
T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQmxvY2tCdWZm
ZXJDb3B5RGF0YUJ5dGVzIHNlY29uZCBjaGFubmVsIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKICAgICAgICAgICAgIH0KQEAgLTQzOCw2ICs0
MzksOCBAQCBPU1N0YXR1cyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb3ZpZGVTb3Vy
Y2VEYXRhTnVtT3V0cHV0UGFja2V0cyhVSW50MzIqCiAKIHZvaWQgQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKENNVGltZSBs
b3dXYXRlclRpbWUpCiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRV9D
T01QQVJFX0lOTElORQorCiAgICAgaWYgKCFtX2NvbnZlcnRlcikgewogICAgICAgICBpZiAoQ01C
dWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTUwMSw3ICs1MDQsNyBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZShDTVRpbWUgbAogCiB2
b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZiBidWZmZXIpCiB7Ci0gICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVF
bnF1ZXVlKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBhdXRvIGVycm9y
ID0gUEFMOjpDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1
ZmZlcik7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVFbnF1ZXVlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogCiAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGlt
ZShtX2xvd1dhdGVyVGltZSk7CkBAIC01MjAsMTIgKzUyMywxMiBAQCB2b2lkIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6YWRkU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZl
cikKIAogQ01TYW1wbGVCdWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpnZXRP
dXRwdXRTYW1wbGVCdWZmZXIoKQogewotICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNv
bnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUu
Z2V0KCkpKSk7CisgICAgcmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lk
Kj4oUEFMOjpDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkp
OwogfQogCiBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIGFkb3B0Q0Yo
KENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1
ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKKyAgICByZXR1cm4gYWRv
cHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJR
dWV1ZURlcXVldWVBbmRSZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CiB9CiAK
IHVuc2lnbmVkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Yml0UmF0ZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCmlu
ZGV4IGY1Zjg1NTg3MWZjNzA4NTY2ZjdlZjhiOWExNjFlMjdiOGU1ZDg5ZWQuLmI3NTU4ZDI4MGMy
ZWY3OTYwNjhjYWMwY2M5NmI1MDMzZGMzNzA5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCkBAIC0xMjcsOCArMTI3LDggQEAgcHJp
dmF0ZToKICAgICBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gbV92aWRlb0Zvcm1h
dERlc2NyaXB0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I+IG1fdmlkZW9Db21wcmVzc29yOwogICAgIFJldGFpblB0cjxBVkFzc2V0V3JpdGVySW5w
dXQ+IG1fdmlkZW9Bc3NldFdyaXRlcklucHV0OwotICAgIENNVGltZSBtX2xhc3RWaWRlb1ByZXNl
bnRhdGlvblRpbWUgeyBrQ01UaW1lSW52YWxpZCB9OwotICAgIENNVGltZSBtX2xhc3RWaWRlb0Rl
Y29kaW5nVGltZSB7IGtDTVRpbWVJbnZhbGlkIH07CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJl
c2VudGF0aW9uVGltZTsKKyAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWU7CiAgICAg
Ym9vbCBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgeyBmYWxzZSB9OwogCiAgICAgUmV0YWluUHRy
PFdlYkFWQXNzZXRXcml0ZXJEZWxlZ2F0ZT4gbV93cml0ZXJEZWxlZ2F0ZTsKQEAgLTEzOSw5ICsx
MzksOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRTdG9wQWZ0ZXJGbHVzaGluZ1NhbXBs
ZXMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maXJzdFZpZGVvRnJhbWUgeyBmYWxzZSB9OwogICAg
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IG1fdmlkZW9UcmFuc2Zvcm07Ci0gICAg
Q01UaW1lIG1fcmVzdW1lZFZpZGVvVGltZSB7IGtDTVRpbWVaZXJvIH07Ci0gICAgQ01UaW1lIG1f
Y3VycmVudFZpZGVvRHVyYXRpb24geyBrQ01UaW1lWmVybyB9OwotICAgIENNVGltZSBtX2N1cnJl
bnRBdWRpb1NhbXBsZVRpbWUgeyBrQ01UaW1lWmVybyB9OworICAgIENNVGltZSBtX3Jlc3VtZWRW
aWRlb1RpbWU7CisgICAgQ01UaW1lIG1fY3VycmVudFZpZGVvRHVyYXRpb247CisgICAgQ01UaW1l
IG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZTsKICAgICBkb3VibGUgbV90aW1lQ29kZSB7IDAgfTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5tbQppbmRleCA2M2JkNjU5OGQwMmE1YzcwMDZkYTkyOWZjOTRmMWY1ZjY2YTcxNmRhLi42
YWQyMGJlOGNiNTc5MjNhMGU3ODQyZTM3MDFkMzNhNmFhMDNhYjZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05Myw4ICs5
Myw2IEBAIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgUEFM
OwotCiBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjpjcmVhdGUoYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgY29uc3QgTWVk
aWFSZWNvcmRlclByaXZhdGVPcHRpb25zJiBvcHRpb25zKQogewogICAgIGF1dG8gd3JpdGVyID0g
YWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihoYXNBdWRpbywgaGFzVmlk
ZW8pKTsKQEAgLTEyMiw2ICsxMjAsMTEgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y29tcHJlc3NlZEF1ZGlvT3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9pZCAqbWVkaWEKIE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihib29sIGhh
c0F1ZGlvLCBib29sIGhhc1ZpZGVvKQogICAgIDogbV9oYXNBdWRpbyhoYXNBdWRpbykKICAgICAs
IG1faGFzVmlkZW8oaGFzVmlkZW8pCisgICAgLCBtX2xhc3RWaWRlb1ByZXNlbnRhdGlvblRpbWUo
UEFMOjprQ01UaW1lSW52YWxpZCkKKyAgICAsIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lKFBBTDo6
a0NNVGltZUludmFsaWQpCisgICAgLCBtX3Jlc3VtZWRWaWRlb1RpbWUoUEFMOjprQ01UaW1lWmVy
bykKKyAgICAsIG1fY3VycmVudFZpZGVvRHVyYXRpb24oUEFMOjprQ01UaW1lWmVybykKKyAgICAs
IG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZShQQUw6OmtDTVRpbWVaZXJvKQogewogfQogCkBAIC0x
NzksNyArMTgyLDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05l
d0NvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcnMoKQogewogICAgIEFTU0VSVChtX2hhc1ZpZGVv
KTsKICAgICBpZiAoIW1fdmlkZW9Gb3JtYXREZXNjcmlwdGlvbikgewotICAgICAgICBtX3ZpZGVv
Rm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKG1f
dmlkZW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIoKSk7CisgICAgICAgIG1fdmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlw
dGlvbihtX3ZpZGVvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOwogCiAgICAg
ICAgIGlmIChtX2hhc0F1ZGlvICYmICFtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pCiAgICAgICAg
ICAgICByZXR1cm47CkBAIC0xOTYsNyArMTk5LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMoKQogewogICAg
IEFTU0VSVChtX2hhc0F1ZGlvKTsKICAgICBpZiAoIW1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbikg
ewotICAgICAgICBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZv
cm1hdERlc2NyaXB0aW9uKG1fYXVkaW9Db21wcmVzc29yLT5nZXRPdXRwdXRTYW1wbGVCdWZmZXIo
KSk7CisgICAgICAgIG1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX2F1ZGlvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxl
QnVmZmVyKCkpOwogICAgICAgICBpZiAobV9oYXNWaWRlbyAmJiAhbV92aWRlb0Zvcm1hdERlc2Ny
aXB0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzgsNyArMjQxLDcgQEAgdm9pZCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6c3RhcnRBc3NldFdyaXRlcigpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBbbV93cml0ZXIuZ2V0KCkgc3RhcnRTZXNzaW9uQXRTb3VyY2VU
aW1lOmtDTVRpbWVaZXJvXTsKKyAgICBbbV93cml0ZXIuZ2V0KCkgc3RhcnRTZXNzaW9uQXRTb3Vy
Y2VUaW1lOlBBTDo6a0NNVGltZVplcm9dOwogCiAgICAgYXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1
ZmZlcnMoKTsKIApAQCAtMzAwLDggKzMwMyw4IEBAIGJvb2wgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcklmUG9zc2libGUoKQogdm9p
ZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxl
QnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKICAgICBBU1NFUlQoW21fdmlkZW9B
c3NldFdyaXRlcklucHV0IGlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhXSk7Ci0gICAgbV9sYXN0Vmlk
ZW9QcmVzZW50YXRpb25UaW1lID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3Rh
bXAoYnVmZmVyKTsKLSAgICBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IENNU2FtcGxlQnVmZmVy
R2V0RGVjb2RlVGltZVN0YW1wKGJ1ZmZlcik7CisgICAgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25U
aW1lID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIp
OworICAgIG1fbGFzdFZpZGVvRGVjb2RpbmdUaW1lID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldERl
Y29kZVRpbWVTdGFtcChidWZmZXIpOwogICAgIG1faGFzRW5jb2RlZFZpZGVvU2FtcGxlcyA9IHRy
dWU7CiAKICAgICBbbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQuZ2V0KCkgYXBwZW5kU2FtcGxlQnVm
ZmVyOmJ1ZmZlcl07CkBAIC0zMTQsMTcgKzMxNywxNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjphcHBlbmRDb21wcmVzc2VkU2FtcGxlQnVmZmVycygpCiAKIHN0YXRpYyBpbmxp
bmUgdm9pZCBhcHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcihBVkFzc2V0V3Jp
dGVySW5wdXQgKmFzc2V0V3JpdGVySW5wdXQsIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAs
IENNVGltZSBkZWNvZGluZ1RpbWVTdGFtcCkKIHsKLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGlt
aW5nSW5mbyA9IHsga0NNVGltZUludmFsaWQsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZGVjb2Rp
bmdUaW1lU3RhbXB9OworICAgIENNU2FtcGxlVGltaW5nSW5mbyB0aW1pbmdJbmZvID0geyBQQUw6
OmtDTVRpbWVJbnZhbGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0YW1w
fTsKIAogICAgIENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlciA9IE5VTEw7Ci0gICAgYXV0byBlcnJv
ciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIHRydWUs
IE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEsICZ0aW1pbmdJbmZvLCAwLCBOVUxMLCAmYnVmZmVyKTsK
KyAgICBhdXRvIGVycm9yID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBOVUxMLCB0cnVlLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAxLCAmdGltaW5nSW5mbywg
MCwgTlVMTCwgJmJ1ZmZlcik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgYXBwZW5kRW5k
c1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIgZmFpbGVkIENNU2FtcGxlQnVmZmVyQ3JlYXRl
IHdpdGggJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBzYW1w
bGVCdWZmZXIgPSBhZG9wdENGKGJ1ZmZlcik7CiAKLSAgICBDTVNldEF0dGFjaG1lbnQoc2FtcGxl
QnVmZmVyLmdldCgpLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1Nh
bXBsZUR1cmF0aW9uLCBrQ0ZCb29sZWFuVHJ1ZSwga0NNQXR0YWNobWVudE1vZGVfU2hvdWxkUHJv
cGFnYXRlKTsKKyAgICBQQUw6OkNNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIuZ2V0KCksIFBB
TDo6a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlv
biwga0NGQm9vbGVhblRydWUsIGtDTUF0dGFjaG1lbnRNb2RlX1Nob3VsZFByb3BhZ2F0ZSk7CiAg
ICAgaWYgKCFbYXNzZXRXcml0ZXJJbnB1dCBhcHBlbmRTYW1wbGVCdWZmZXI6c2FtcGxlQnVmZmVy
LmdldCgpXSkKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlciBhcHBlbmRTYW1wbGVCdWZmZXIgdG8gd3JpdGVyIGlucHV0IGZh
aWxlZCIpOwogfQpAQCAtMzgyLDE4ICszODUsMTggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcjo6Zmx1c2hDb21wcmVzc2VkU2FtcGxlQnVmZmVycyhGdW5jdGlvbjx2b2lkKCk+JiYK
IHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjb3B5U2FtcGxlQnVm
ZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXAoQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxCdWZmZXIs
IENNVGltZSBzdGFydFRpbWUpCiB7CiAgICAgQ01JdGVtQ291bnQgY291bnQgPSAwOwotICAgIENN
U2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCAwLCBu
aWwsICZjb3VudCk7CisgICAgUEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9B
cnJheShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAmY291bnQpOwogCiAgICAgVmVjdG9yPENNU2Ft
cGxlVGltaW5nSW5mbz4gdGltZUluZm8oY291bnQpOwotICAgIENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgp
LCAmY291bnQpOworICAgIFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkob3JpZ2luYWxCdWZmZXIsIGNvdW50LCB0aW1lSW5mby5kYXRhKCksICZjb3VudCk7CiAKICAg
ICBmb3IgKGF1dG8gaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0gICAgICAgIHRpbWVJbmZvW2ld
LmRlY29kZVRpbWVTdGFtcCA9IGtDTVRpbWVJbnZhbGlkOworICAgICAgICB0aW1lSW5mb1tpXS5k
ZWNvZGVUaW1lU3RhbXAgPSBQQUw6OmtDTVRpbWVJbnZhbGlkOwogICAgICAgICB0aW1lSW5mb1tp
XS5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBzdGFydFRpbWU7CiAgICAgfQogCiAgICAgQ01TYW1w
bGVCdWZmZXJSZWYgbmV3QnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAoYXV0byBlcnJvciA9IENN
U2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdUaW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
b3JpZ2luYWxCdWZmZXIsIGNvdW50LCB0aW1lSW5mby5kYXRhKCksICZuZXdCdWZmZXIpKSB7Cisg
ICAgaWYgKGF1dG8gZXJyb3IgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlQ29weVdpdGhOZXdU
aW1pbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgb3JpZ2luYWxCdWZmZXIsIGNvdW50LCB0aW1lSW5m
by5kYXRhKCksICZuZXdCdWZmZXIpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
U3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5V2l0aE5ld1RpbWluZyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQpAQCAtNDA0LDcgKzQwNyw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUp
CiB7CiAgICAgaWYgKCFtX2ZpcnN0VmlkZW9GcmFtZSkgewogICAgICAgICBtX2ZpcnN0VmlkZW9G
cmFtZSA9IHRydWU7Ci0gICAgICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IENNQ2xvY2tHZXRUaW1l
KENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOworICAgICAgICBtX3Jlc3VtZWRWaWRlb1RpbWUg
PSBQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7CiAg
ICAgICAgIGlmIChzYW1wbGUudmlkZW9Sb3RhdGlvbigpICE9IE1lZGlhU2FtcGxlOjpWaWRlb1Jv
dGF0aW9uOjpOb25lIHx8IHNhbXBsZS52aWRlb01pcnJvcmVkKCkpIHsKICAgICAgICAgICAgIG1f
dmlkZW9UcmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VSb3RhdGlvbihzdGF0aWNfY2Fz
dDxpbnQ+KHNhbXBsZS52aWRlb1JvdGF0aW9uKCkpICogTV9QSSAvIDE4MCk7CiAgICAgICAgICAg
ICBpZiAoc2FtcGxlLnZpZGVvTWlycm9yZWQoKSkKQEAgLTQxMiw4ICs0MTUsOCBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNh
bXBsZSYgc2FtcGxlKQogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBzYW1wbGVUaW1lID0g
Q01UaW1lU3VidHJhY3QoQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSks
IG1fcmVzdW1lZFZpZGVvVGltZSk7Ci0gICAgc2FtcGxlVGltZSA9IENNVGltZUFkZChzYW1wbGVU
aW1lLCBtX2N1cnJlbnRWaWRlb0R1cmF0aW9uKTsKKyAgICBhdXRvIHNhbXBsZVRpbWUgPSBQQUw6
OkNNVGltZVN1YnRyYWN0KFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRp
bWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICBzYW1wbGVUaW1lID0gUEFMOjpD
TVRpbWVBZGQoc2FtcGxlVGltZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbik7CiAgICAgaWYgKGF1
dG8gYnVmZmVyV2l0aEN1cnJlbnRUaW1lID0gY29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGlt
ZVN0YW1wKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwgc2Ft
cGxlVGltZSkpCiAgICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVm
ZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KQEAgLTQyMiw3ICs0MjUsNyBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YQogewogICAgIGlmIChhdXRvIHNhbXBsZUJ1ZmZlciA9IGNyZWF0ZUF1
ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9uLCBtX2N1cnJlbnRBdWRpb1NhbXBsZVRp
bWUsIHNhbXBsZUNvdW50KSkKICAgICAgICAgbV9hdWRpb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1
ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpOwotICAgIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSA9
IENNVGltZUFkZChtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIHRvQ01UaW1lKE1lZGlhVGltZShz
YW1wbGVDb3VudCwgZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpKSkpOworICAgIG1fY3VycmVudEF1
ZGlvU2FtcGxlVGltZSA9IFBBTDo6Q01UaW1lQWRkKG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwg
UEFMOjp0b0NNVGltZShNZWRpYVRpbWUoc2FtcGxlQ291bnQsIGRlc2NyaXB0aW9uLnNhbXBsZVJh
dGUoKSkpKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6ZmluaXNoZWRG
bHVzaGluZ1NhbXBsZXMoKQpAQCAtNTIzLDEwICs1MjYsMTAgQEAgdm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6Y29tcGxldGVGZXRjaERhdGEoKQogewogICAgIGF1dG8gY3VycmVudFRp
bWVDb2RlID0gbV90aW1lQ29kZTsKICAgICBpZiAobV9oYXNBdWRpbykKLSAgICAgICAgbV90aW1l
Q29kZSA9IENNVGltZUdldFNlY29uZHMobV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lKTsKKyAgICAg
ICAgbV90aW1lQ29kZSA9IFBBTDo6Q01UaW1lR2V0U2Vjb25kcyhtX2N1cnJlbnRBdWRpb1NhbXBs
ZVRpbWUpOwogICAgIGVsc2UgewotICAgICAgICBhdXRvIHNhbXBsZVRpbWUgPSBDTVRpbWVTdWJ0
cmFjdChDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVk
VmlkZW9UaW1lKTsKLSAgICAgICAgbV90aW1lQ29kZSA9IENNVGltZUdldFNlY29uZHMoQ01UaW1l
QWRkKHNhbXBsZVRpbWUsIG1fY3VycmVudFZpZGVvRHVyYXRpb24pKTsKKyAgICAgICAgYXV0byBz
YW1wbGVUaW1lID0gUEFMOjpDTVRpbWVTdWJ0cmFjdChQQUw6OkNNQ2xvY2tHZXRUaW1lKFBBTDo6
Q01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSksIG1fcmVzdW1lZFZpZGVvVGltZSk7CisgICAgICAg
IG1fdGltZUNvZGUgPSBQQUw6OkNNVGltZUdldFNlY29uZHMoUEFMOjpDTVRpbWVBZGQoc2FtcGxl
VGltZSwgbV9jdXJyZW50VmlkZW9EdXJhdGlvbikpOwogICAgIH0KICAgICBtX2ZldGNoRGF0YUNv
bXBsZXRpb25IYW5kbGVyKHRha2VEYXRhKCksIGN1cnJlbnRUaW1lQ29kZSk7CiB9CkBAIC01NTAs
MTMgKzU1MywxMyBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6dGFrZURhdGEoKQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpwYXVz
ZSgpCiB7Ci0gICAgYXV0byByZWNvcmRpbmdEdXJhdGlvbiA9IENNVGltZVN1YnRyYWN0KENNQ2xv
Y2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLCBtX3Jlc3VtZWRWaWRlb1RpbWUp
OwotICAgIG1fY3VycmVudFZpZGVvRHVyYXRpb24gPSBDTVRpbWVBZGQocmVjb3JkaW5nRHVyYXRp
b24sIG1fY3VycmVudFZpZGVvRHVyYXRpb24pOworICAgIGF1dG8gcmVjb3JkaW5nRHVyYXRpb24g
PSBQQUw6OkNNVGltZVN1YnRyYWN0KFBBTDo6Q01DbG9ja0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0
SG9zdFRpbWVDbG9jaygpKSwgbV9yZXN1bWVkVmlkZW9UaW1lKTsKKyAgICBtX2N1cnJlbnRWaWRl
b0R1cmF0aW9uID0gUEFMOjpDTVRpbWVBZGQocmVjb3JkaW5nRHVyYXRpb24sIG1fY3VycmVudFZp
ZGVvRHVyYXRpb24pOwogfQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpyZXN1
bWUoKQogewotICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tH
ZXRIb3N0VGltZUNsb2NrKCkpOworICAgIG1fcmVzdW1lZFZpZGVvVGltZSA9IFBBTDo6Q01DbG9j
a0dldFRpbWUoUEFMOjpDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKTsKIH0KIAogY29uc3QgU3Ry
aW5nJiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6bWltZVR5cGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQppbmRleCA3NmQ1NmQ3
YjhkMTNjNzJlYTM5ZmMzNDk5ZDE3OTg5OTcxN2YwZTc4Li5kMDc2MGYwN2UzNzA4MTI3ZjlkZTJl
ZmFmOTJmMGUwNzcyZmQzOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvci5tbQpAQCAtMzQsMTIgKzM0LDExIEBACiAjaW1wb3J0IDxWaWRlb1Rvb2xi
b3gvVlRDb21wcmVzc2lvblNlc3Npb24uaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgog
CisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jZi9W
aWRlb1Rvb2xib3hTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5h
bWVzcGFjZSBQQUw7Ci0KIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I+IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y3JlYXRlKFN0cmluZyBtaW1lVHlwZSwg
Q01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmpl
Y3QpCiB7CiAgICAgYXV0byBwcm9maWxlID0gUHJvZmlsZTo6QmFzZWxpbmU7CkBAIC02OSw3ICs2
OCw3IEBAIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6VmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yKENNVmlkZW9Db2RlY1R5cGUgb3V0cHV0CiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6On5WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQogewogICAgIGlmIChtX3Z0U2Vzc2lv
bikgewotICAgICAgICBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUobV92dFNlc3Npb24u
Z2V0KCkpOworICAgICAgICBQQUw6OlZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShtX3Z0
U2Vzc2lvbi5nZXQoKSk7CiAgICAgICAgIG1fdnRTZXNzaW9uID0gbnVsbHB0cjsKICAgICB9CiB9
CkBAIC03NywxMiArNzYsMTIgQEAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yKCkKIGJvb2wgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojppbml0aWFsaXplKENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQq
IGNhbGxiYWNrT2JqZWN0KQogewogICAgIENNQnVmZmVyUXVldWVSZWYgb3V0cHV0QnVmZmVyUXVl
dWU7Ci0gICAgaWYgKGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIDAsIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1
ZmZlcnMoKSwgJm91dHB1dEJ1ZmZlclF1ZXVlKSkgeworICAgIGlmIChhdXRvIGVycm9yID0gUEFM
OjpDTUJ1ZmZlclF1ZXVlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIFBBTDo6Q01CdWZm
ZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0QnVm
ZmVyUXVldWUpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHVuYWJsZSB0byBjcmVhdGUgYnVmZmVyIHF1ZXVlICVk
IiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIG1fb3V0cHV0QnVm
ZmVyUXVldWUgPSBvdXRwdXRCdWZmZXJRdWV1ZTsKLSAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRy
aWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0
LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVaZXJv
LCBOVUxMKTsKKyAgICBQQUw6OkNNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcihtX291dHB1dEJ1
ZmZlclF1ZXVlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QsIGtDTUJ1ZmZlclF1ZXVl
VHJpZ2dlcl9XaGVuRGF0YUJlY29tZXNSZWFkeSwgUEFMOjprQ01UaW1lWmVybywgTlVMTCk7CiAK
ICAgICBtX2lzRW5jb2RpbmcgPSB0cnVlOwogICAgIHJldHVybiB0cnVlOwpAQCAtOTYsMTAgKzk1
LDEwIEBAIHZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzZXRCaXRzUGVyU2Vjb25k
KHVuc2lnbmVkIGJpdFJhdGUpCiB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Zmlu
aXNoKCkKIHsKICAgICBtX3NlcmlhbERpc3BhdGNoUXVldWUtPmRpc3BhdGNoU3luYyhbdGhpc10g
ewotICAgICAgICBhdXRvIGVycm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1l
cyhtX3Z0U2Vzc2lvbi5nZXQoKSwga0NNVGltZUludmFsaWQpOworICAgICAgICBhdXRvIGVycm9y
ID0gUEFMOjpWVENvbXByZXNzaW9uU2Vzc2lvbkNvbXBsZXRlRnJhbWVzKG1fdnRTZXNzaW9uLmdl
dCgpLCBQQUw6OmtDTVRpbWVJbnZhbGlkKTsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYo
ZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUQ29tcHJl
c3Npb25TZXNzaW9uQ29tcGxldGVGcmFtZXMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKLSAg
ICAgICAgZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1
ZXVlLmdldCgpKTsKKyAgICAgICAgZXJyb3IgPSBQQUw6OkNNQnVmZmVyUXVldWVNYXJrRW5kT2ZE
YXRhKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpOwogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01C
dWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKICAgICAg
ICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CkBAIC0xMTQsNyArMTEzLDcgQEAgdm9pZCBWaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZpZGVvQ29tcHJlc3Npb25DYWxsYmFjayh2b2lkICpyZWZD
b24sIHZvaWQqLAogCiAgICAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yICpjb21wcmVzc29y
ID0gc3RhdGljX2Nhc3Q8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKj4ocmVmQ29uKTsKIAot
ICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShjb21wcmVzc29yLT5tX291dHB1
dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOworICAgIGF1dG8gZXJyb3IgPSBQQUw6OkNNQnVm
ZmVyUXVldWVFbnF1ZXVlKGNvbXByZXNzb3ItPm1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCksIGJ1
ZmZlcik7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVFbnF1ZXVlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwogfQogCkBAIC0xMzAsNTMgKzEyOSw1MyBAQCBDRlN0cmluZ1JlZiBWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZ0UHJvZmlsZUxldmVsKCkgY29uc3QKIHsKICAgICBz
d2l0Y2ggKG1fcHJvZmlsZSkgewogICAgIGNhc2UgUHJvZmlsZTo6QmFzZWxpbmU6Ci0gICAgICAg
IHJldHVybiBrVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2ZWw7CisgICAgICAg
IHJldHVybiBQQUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X0Jhc2VsaW5lX0F1dG9MZXZlbDsKICAg
ICBjYXNlIFByb2ZpbGU6OkhpZ2g6Ci0gICAgICAgIHJldHVybiBrVlRQcm9maWxlTGV2ZWxfSDI2
NF9IaWdoX0F1dG9MZXZlbDsKKyAgICAgICAgcmV0dXJuIFBBTDo6a1ZUUHJvZmlsZUxldmVsX0gy
NjRfSGlnaF9BdXRvTGV2ZWw7CiAgICAgY2FzZSBQcm9maWxlOjpNYWluOgotICAgICAgICByZXR1
cm4ga1ZUUHJvZmlsZUxldmVsX0gyNjRfTWFpbl9BdXRvTGV2ZWw7CisgICAgICAgIHJldHVybiBQ
QUw6OmtWVFByb2ZpbGVMZXZlbF9IMjY0X01haW5fQXV0b0xldmVsOwogICAgIH0KIH0KIAogYm9v
bCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uKQogewotICAgIENNVmlk
ZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1l
bnNpb25zKGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNp
b25zID0gUEFMOjpDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdERl
c2NyaXB0aW9uKTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVy
U3BlY2lmaWNhdGlvbnMgPSBuaWw7CiAjZWxzZQotICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNw
ZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcgKilrVlRWaWRlb0VuY29kZXJTcGVj
aWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXI6QFlFU307Cisg
ICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVyU3BlY2lmaWNhdGlvbnMgPSBAeyhfX2JyaWRnZSBOU1N0
cmluZyAqKVBBTDo6a1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFj
Y2VsZXJhdGVkVmlkZW9FbmNvZGVyOkBZRVN9OwogI2VuZGlmCiAKICAgICBWVENvbXByZXNzaW9u
U2Vzc2lvblJlZiB2dFNlc3Npb247Ci0gICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNz
aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lv
bnMuaGVpZ2h0LCBtX291dHB1dENvZGVjVHlwZSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZill
bmNvZGVyU3BlY2lmaWNhdGlvbnMsIE5VTEwsIE5VTEwsIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFj
aywgdGhpcywgJnZ0U2Vzc2lvbik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lv
blNlc3Npb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGltZW5zaW9ucy53aWR0aCwgZGlt
ZW5zaW9ucy5oZWlnaHQsIG1fb3V0cHV0Q29kZWNUeXBlLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5
UmVmKWVuY29kZXJTcGVjaWZpY2F0aW9ucywgTlVMTCwgTlVMTCwgdmlkZW9Db21wcmVzc2lvbkNh
bGxiYWNrLCB0aGlzLCAmdnRTZXNzaW9uKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
VlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAgICAg
ICAgIHJldHVybiBOTzsKICAgICB9CiAgICAgbV92dFNlc3Npb24gPSBhZG9wdENGKHZ0U2Vzc2lv
bik7CiAKLSAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgp
LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7Cisg
ICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjpr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfUmVhbFRpbWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgZXJyb3IgPSBzZXRDb21w
cmVzc2lvblNlc3Npb25Qcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24sIG1fbWF4S2V5RnJhbWVJbnRl
cnZhbER1cmF0aW9uKTsKKyAgICBlcnJvciA9IHNldENvbXByZXNzaW9uU2Vzc2lvblByb3BlcnR5
KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5
RnJhbWVJbnRlcnZhbER1cmF0aW9uLCBtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbik7CiAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVy
dHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OwotICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVydHkobV92dFNlc3Npb24u
Z2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUsIG1fZXhw
ZWN0ZWRGcmFtZVJhdGUpOworICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIFBBTDo6a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBl
Y3RlZEZyYW1lUmF0ZSwgbV9leHBlY3RlZEZyYW1lUmF0ZSk7CiAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZU
U2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFt
ZVJhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CiAKLSAgICBlcnJvciA9IFZUU2Vzc2lvblNl
dFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1By
b2ZpbGVMZXZlbCwgdnRQcm9maWxlTGV2ZWwoKSk7CisgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQ
cm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X1Byb2ZpbGVMZXZlbCwgdnRQcm9maWxlTGV2ZWwoKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJv
ZmlsZUxldmVsIGZhaWxlZCB3aXRoICVkIGZvciBwcm9maWxlICVkIiwgZXJyb3IsIG1fcHJvZmls
ZSk7CiAgICAgICAgIGlmIChtX3Byb2ZpbGUgIT0gUHJvZmlsZTo6QmFzZWxpbmUpIHsKLSAgICAg
ICAgICAgIGVycm9yID0gVlRTZXNzaW9uU2V0UHJvcGVydHkobV92dFNlc3Npb24uZ2V0KCksIGtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBrVlRQcm9maWxlTGV2ZWxfSDI2
NF9CYXNlbGluZV9BdXRvTGV2ZWwpOworICAgICAgICAgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQ
cm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwgUEFMOjprVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X1Byb2ZpbGVMZXZlbCwgUEFMOjprVlRQcm9maWxlTGV2ZWxfSDI2NF9CYXNlbGluZV9BdXRvTGV2
ZWwpOwogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFt
LCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsIGZhaWxlZCB3aXRoICVkIGZvciBkZWZh
dWx0IHByb2ZpbGUiLCBlcnJvcik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobV9vdXRw
dXRCaXRSYXRlKSB7Ci0gICAgICAgIGVycm9yID0gc2V0Q29tcHJlc3Npb25TZXNzaW9uUHJvcGVy
dHkobV92dFNlc3Npb24uZ2V0KCksIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJp
dFJhdGUsICptX291dHB1dEJpdFJhdGUpOworICAgICAgICBlcnJvciA9IHNldENvbXByZXNzaW9u
U2Vzc2lvblByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBQQUw6OmtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfQXZlcmFnZUJpdFJhdGUsICptX291dHB1dEJpdFJhdGUpOwogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IgVlRTZXNzaW9uU2V0UHJvcGVydHkga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9B
dmVyYWdlQml0UmF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKICAgICB9CiAKLSAgICBlcnJv
ciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKG1fdnRTZXNzaW9u
LmdldCgpKTsKKyAgICBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9F
bmNvZGVGcmFtZXMobV92dFNlc3Npb24uZ2V0KCkpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXBy
ZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKIAogICAgIHJldHVybiBZRVM7CkBAIC0xODUsMTQgKzE4NCwxNCBAQCBib29sIFZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpbwogdm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1w
bGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogewogICAgIGlmICghbV92dFNlc3Np
b24pIHsKLSAgICAgICAgaWYgKCFpbml0Q29tcHJlc3Npb25TZXNzaW9uKENNU2FtcGxlQnVmZmVy
R2V0Rm9ybWF0RGVzY3JpcHRpb24oYnVmZmVyKSkpCisgICAgICAgIGlmICghaW5pdENvbXByZXNz
aW9uU2Vzc2lvbihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oYnVmZmVy
KSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBpbWFnZUJ1ZmZlciA9
IENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoYnVmZmVyKTsKLSAgICBhdXRvIHByZXNlbnRh
dGlvblRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1
ZmZlcik7Ci0gICAgYXV0byBkdXJhdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oYnVm
ZmVyKTsKLSAgICBhdXRvIGVycm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSht
X3Z0U2Vzc2lvbi5nZXQoKSwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVy
YXRpb24sIE5VTEwsIHRoaXMsIE5VTEwpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoYnVmZmVyKTsKKyAgICBhdXRvIHByZXNlbnRhdGlv
blRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
YnVmZmVyKTsKKyAgICBhdXRvIGR1cmF0aW9uID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldER1cmF0
aW9uKGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFBBTDo6VlRDb21wcmVzc2lvblNlc3Npb25F
bmNvZGVGcmFtZShtX3Z0U2Vzc2lvbi5nZXQoKSwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRp
bWVTdGFtcCwgZHVyYXRpb24sIE5VTEwsIHRoaXMsIE5VTEwpOwogICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBW
VENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwog
fQogCkBAIC0yMDgsMTIgKzIwNywxMiBAQCB2b2lkIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6YWRkU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIAogQ01TYW1wbGVC
dWZmZXJSZWYgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpnZXRPdXRwdXRTYW1wbGVCdWZm
ZXIoKQogewotICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+
KENNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CisgICAg
cmV0dXJuIChDTVNhbXBsZUJ1ZmZlclJlZikoY29uc3RfY2FzdDx2b2lkKj4oUEFMOjpDTUJ1ZmZl
clF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOwogfQogCiBSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91
dHB1dFNhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVy
UmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291
dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKKyAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVC
dWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KFBBTDo6Q01CdWZmZXJRdWV1ZURlcXVldWVBbmRS
ZXRhaW4obV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSkpKSk7CiB9CiAKIHVuc2lnbmVkIFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Yml0UmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5j
cHAKaW5kZXggYzNmZTgyMWI5YzUyMGM5MjI0ZTVkZTg4OGU1MThjMzE5NmYzMWNiNS4uYTAyNDA4
NGMyNGU2ZDM2Mzk2MDhhNjQ2NTJlY2M1ZDZkOWVmYWM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNw
cApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyLmgiCiAjZW5kaWYKIAorI2luY2x1ZGUgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5o
PgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0xMjMsOSArMTI0LDkgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCgpCiAgICAgaWYgKCFtX3JlbW90ZUlPVW5pdCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb091dHB1dFVuaXRT
dGFydChtX3JlbW90ZUlPVW5pdCkpIHsKKyAgICBpZiAoYXV0byBlcnJvciA9IFBBTDo6QXVkaW9P
dXRwdXRVbml0U3RhcnQobV9yZW1vdGVJT1VuaXQpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0Ojpz
dGFydCBBdWRpb091dHB1dFVuaXRTdGFydCBmYWlsZWQsIGVycm9yID0gJWQiLCBlcnJvcik7Ci0g
ICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcmVtb3RlSU9Vbml0KTsKKyAg
ICAgICAgUEFMOjpBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7
CiAgICAgICAgIG1fcmVtb3RlSU9Vbml0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTEzOSwxMSArMTQwLDExIEBAIHZvaWQgTG9jYWxBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdDo6c3RvcCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICht
X2lzU3RhcnRlZCkgewotICAgICAgICBBdWRpb091dHB1dFVuaXRTdG9wKG1fcmVtb3RlSU9Vbml0
KTsKKyAgICAgICAgUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1fcmVtb3RlSU9Vbml0KTsKICAg
ICAgICAgbV9pc1N0YXJ0ZWQgPSBmYWxzZTsKICAgICB9CiAKLSAgICBBdWRpb0NvbXBvbmVudElu
c3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CisgICAgUEFMOjpBdWRpb0NvbXBvbmVudElu
c3RhbmNlRGlzcG9zZShtX3JlbW90ZUlPVW5pdCk7CiAgICAgbV9yZW1vdGVJT1VuaXQgPSBudWxs
cHRyOwogfQogCkBAIC0xNjMsMTQgKzE2NCwxNCBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKICAg
ICBpb1VuaXREZXNjcmlwdGlvbi5jb21wb25lbnRTdWJUeXBlID0ga0F1ZGlvVW5pdFN1YlR5cGVf
RGVmYXVsdE91dHB1dDsKICNlbmRpZgogCi0gICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25lbnQg
PSBBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxwdHIsICZpb1VuaXREZXNjcmlwdGlvbik7Cisg
ICAgQXVkaW9Db21wb25lbnQgaW9Db21wb25lbnQgPSBQQUw6OkF1ZGlvQ29tcG9uZW50RmluZE5l
eHQobnVsbHB0ciwgJmlvVW5pdERlc2NyaXB0aW9uKTsKICAgICBBU1NFUlQoaW9Db21wb25lbnQp
OwogICAgIGlmICghaW9Db21wb25lbnQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1
ZGlvVW5pdCB1bmFibGUgdG8gZmluZCByZW1vdGUgSU8gdW5pdCBjb21wb25lbnQiKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3KGlvQ29tcG9uZW50LCAmcmVtb3RlSU9Vbml0KTsKKyAgICBhdXRvIGVycm9yID0gUEFM
OjpBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlvQ29tcG9uZW50LCAmcmVtb3RlSU9Vbml0KTsK
ICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1
bmFibGUgdG8gb3BlbiB2cGlvIHVuaXQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJl
dHVybjsKQEAgLTE3OCw3ICsxNzksNyBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgVUludDMyIHBhcmFtID0gMTsKLSAgICBlcnJvciA9IEF1
ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5
X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCAwLCAmcGFyYW0sIHNpemVvZihwYXJh
bSkpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQs
IGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3BlX091dHB1
dCwgMCwgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUgdG8gZW5hYmxlIHZwaW8gdW5pdCBv
dXRwdXQsIGVycm9yID0gJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKQEAgLTE4Nyw3ICsx
ODgsNyBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXQ6OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBp
ZiAobV9kZXZpY2VJRCkgewotICAgICAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJl
bW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRp
b1VuaXRTY29wZV9HbG9iYWwsIDAsICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOwor
ICAgICAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBr
QXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5pdFNjb3BlX0ds
b2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7CiAgICAgICAgIGlmIChl
cnJvcikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdCB1bmFibGUg
dG8gc2V0IHVuaXQgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40cykiLCAoaW50KW1fZGV2aWNl
SUQsIChpbnQpZXJyb3IsIChjaGFyKikmZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MTk2LDE0ICsxOTcsMTQgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAjZW5kaWYKIAogICAgIEFV
UmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IExvY2FsQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnJlbmRlcmluZ0NhbGxiYWNrLCB0aGlzIH07Ci0gICAg
ZXJyb3IgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9w
ZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxi
YWNrLCBzaXplb2YoY2FsbGJhY2spKTsKKyAgICBlcnJvciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJv
cGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ss
IGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7
CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQg
dW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgc3BlYWtlciBwcm9jLCBlcnJvciA9ICVkIiwgZXJyb3Ip
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2Yob3V0
cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSk7Ci0gICAgZXJyb3IgID0gQXVkaW9V
bml0R2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9y
bWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1E
ZXNjcmlwdGlvbigpLCAmc2l6ZSk7CisgICAgZXJyb3IgID0gUEFMOjpBdWRpb1VuaXRHZXRQcm9w
ZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRp
b1VuaXRTY29wZV9JbnB1dCwgMCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9u
KCksICZzaXplKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdCB1bmFibGUgdG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yID0gJWQi
LCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKQEAgLTIxMSwxMyArMjEyLDEzIEBAIHZvaWQgTG9j
YWxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Y3JlYXRlQXVkaW9V
bml0SWZOZWVkZWQoKQogCiAgICAgb3V0cHV0RGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24o
KS5tU2FtcGxlUmF0ZSA9IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUo
KTsKIAotICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVk
aW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAsICZv
dXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBzaXplb2Yob3V0cHV0RGVzY3Jp
cHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSkpOworICAgIGVycm9yID0gUEFMOjpBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQs
IGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgMCwgJm91dHB1dERlc2NyaXB0aW9uLnN0cmVhbURlc2Ny
aXB0aW9uKCksIHNpemVvZihvdXRwdXREZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpKSk7
CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGVBdWRpb1VuaXQg
dW5hYmxlIHRvIHNldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciA9ICVkIiwgZXJyb3IpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZXJyb3IgPSBBdWRpb1VuaXRJbml0aWFsaXpl
KHJlbW90ZUlPVW5pdCk7CisgICAgZXJyb3IgPSBQQUw6OkF1ZGlvVW5pdEluaXRpYWxpemUocmVt
b3RlSU9Vbml0KTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdCBBdWRpb1VuaXRJbml0aWFsaXplKCkgZmFpbGVkLCBlcnJvciA9ICVkIiwgZXJy
b3IpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXgg
NGI3ODhhZTVhYTg3YjcyOWU1YmRjZjljZjcxMzgxMmM2NzcwYTMyNS4uNDg1ZTRjZTRjNmQ4YzMy
NDViNzc5ZDYxYTY3NmNiYmI5N2JhZDkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5t
bQpAQCAtNTEsNyArNTEsNiBAQAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogQGlu
dGVyZmFjZSBXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciA6IE5TT2JqZWN0PEFW
Q2FwdHVyZVZpZGVvRGF0YU91dHB1dFNhbXBsZUJ1ZmZlckRlbGVnYXRlPiB7CiAgICAgQVZWaWRl
b0NhcHR1cmVTb3VyY2UqIG1fY2FsbGJhY2s7CkBAIC0zNTEsMTAgKzM1MCwxMCBAQCB2b2lkIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpzZXRTZXNzaW9uU2l6ZUFuZEZyYW1lUmF0ZSgpCiAgICAgICAg
ICAgICBpZiAoZnJhbWVSYXRlUmFuZ2UpIHsKICAgICAgICAgICAgICAgICBtX2N1cnJlbnRGcmFt
ZVJhdGUgPSBjbGFtcFRvKG1fY3VycmVudEZyYW1lUmF0ZSwgZnJhbWVSYXRlUmFuZ2UubWluRnJh
bWVSYXRlLCBmcmFtZVJhdGVSYW5nZS5tYXhGcmFtZVJhdGUpOwogCi0gICAgICAgICAgICAgICAg
YXV0byBmcmFtZUR1cmF0aW9uID0gQ01UaW1lTWFrZSgxLCBtX2N1cnJlbnRGcmFtZVJhdGUpOwot
ICAgICAgICAgICAgICAgIGlmIChDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0
ZVJhbmdlLm1pbkZyYW1lRHVyYXRpb24pIDwgMCkKKyAgICAgICAgICAgICAgICBhdXRvIGZyYW1l
RHVyYXRpb24gPSBQQUw6OkNNVGltZU1ha2UoMSwgbV9jdXJyZW50RnJhbWVSYXRlKTsKKyAgICAg
ICAgICAgICAgICBpZiAoUEFMOjpDTVRpbWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0
ZVJhbmdlLm1pbkZyYW1lRHVyYXRpb24pIDwgMCkKICAgICAgICAgICAgICAgICAgICAgZnJhbWVE
dXJhdGlvbiA9IGZyYW1lUmF0ZVJhbmdlLm1pbkZyYW1lRHVyYXRpb247Ci0gICAgICAgICAgICAg
ICAgZWxzZSBpZiAoQ01UaW1lQ29tcGFyZShmcmFtZUR1cmF0aW9uLCBmcmFtZVJhdGVSYW5nZS5t
YXhGcmFtZUR1cmF0aW9uKSA+IDApCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoUEFMOjpDTVRp
bWVDb21wYXJlKGZyYW1lRHVyYXRpb24sIGZyYW1lUmF0ZVJhbmdlLm1heEZyYW1lRHVyYXRpb24p
ID4gMCkKICAgICAgICAgICAgICAgICAgICAgZnJhbWVEdXJhdGlvbiA9IGZyYW1lUmF0ZVJhbmdl
Lm1heEZyYW1lRHVyYXRpb247CiAKICAgICAgICAgICAgICAgICBBTFdBWVNfTE9HX0lGKGxvZ2dl
clB0cigpLCBMT0dJREVOVElGSUVSLCAic2V0dGluZyBmcmFtZSByYXRlIHRvICIsIG1fY3VycmVu
dEZyYW1lUmF0ZSwgIiwgZHVyYXRpb24gIiwgUEFMOjp0b01lZGlhVGltZShmcmFtZUR1cmF0aW9u
KSk7CkBAIC00MTgsNyArNDE3LDcgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBT
ZXNzaW9uKCkKIAogICAgIG1fc2Vzc2lvbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkNhcHR1cmVT
ZXNzaW9uSW5zdGFuY2UoKSBpbml0XSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBB
VkNhcHR1cmVTZXNzaW9uU2V0QXV0aG9yaXplZFRvVXNlQ2FtZXJhSW5NdWx0aXBsZUZvcmVncm91
bmRBcHBMYXlvdXQobV9zZXNzaW9uLmdldCgpKTsKKyAgICBQQUw6OkFWQ2FwdHVyZVNlc3Npb25T
ZXRBdXRob3JpemVkVG9Vc2VDYW1lcmFJbk11bHRpcGxlRm9yZWdyb3VuZEFwcExheW91dChtX3Nl
c3Npb24uZ2V0KCkpOwogI2VuZGlmCiAgICAgW21fc2Vzc2lvbiBhZGRPYnNlcnZlcjptX29iamNP
YnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAicnVubmluZyIgb3B0aW9uczpOU0tleVZhbHVlT2Jz
ZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6KHZvaWQgKiluaWxdOwogCkBAIC00MzQsNiArNDMzLDgg
QEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBTZXNzaW9uKCkKIAogQVZGcmFtZVJh
dGVSYW5nZSogQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZyYW1lRHVyYXRpb25Gb3JGcmFtZVJhdGUo
ZG91YmxlIHJhdGUpCiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIFBBTDsgLy8gRm9yIENNVElNRV9D
T01QQVJFX0lOTElORQorCiAgICAgQVZGcmFtZVJhdGVSYW5nZSAqYmVzdEZyYW1lUmF0ZVJhbmdl
ID0gbmlsOwogICAgIGZvciAoQVZGcmFtZVJhdGVSYW5nZSAqZnJhbWVSYXRlUmFuZ2UgaW4gW1tk
ZXZpY2UoKSBhY3RpdmVGb3JtYXRdIHZpZGVvU3VwcG9ydGVkRnJhbWVSYXRlUmFuZ2VzXSkgewog
ICAgICAgICBpZiAoZnJhbWVSYXRlUmFuZ2VJbmNsdWRlc1JhdGUoeyBbZnJhbWVSYXRlUmFuZ2Ug
bWluRnJhbWVSYXRlXSwgW2ZyYW1lUmF0ZVJhbmdlIG1heEZyYW1lUmF0ZV0gfSwgcmF0ZSkpIHsK
QEAgLTU5OCw3ICs1OTksNyBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpnZW5lcmF0ZVBy
ZXNldHMoKQogICAgIFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiBwcmVzZXRzOwogICAgIGZvciAo
QVZDYXB0dXJlRGV2aWNlRm9ybWF0KiBmb3JtYXQgaW4gW2RldmljZSgpIGZvcm1hdHNdKSB7CiAK
LSAgICAgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0LmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICAgICAg
Q01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uR2V0RGltZW5zaW9ucyhmb3JtYXQuZm9ybWF0RGVzY3JpcHRpb24pOwogICAgICAgICBJbnRT
aXplIHNpemUgPSB7IGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0IH07CiAgICAg
ICAgIGF1dG8gaW5kZXggPSBwcmVzZXRzLmZpbmRNYXRjaGluZyhbJnNpemVdKGF1dG8mIHByZXNl
dCkgewogICAgICAgICAgICAgcmV0dXJuIHNpemUgPT0gcHJlc2V0LT5zaXplOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCmluZGV4IDZlMjZjOGZhNGVjZDMwYWMxZTUyZmVjMzhh
ZjU3ZDBlMzNkOWJjMjQuLmUxNTU0NjJmNTE4MTU4OGJhM2JjOTQ1NmM2YjZhZTlhZmUyMWI1YzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5jcHAKQEAgLTE5LDcgKzE5LDcgQEAK
ICAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IChJTkNMVURJTkcgTkVHTElHRVBBTDo6TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKQEAgLTM2LDcgKzM2LDYg
QEAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgYm9vbCBnZXREZXZpY2VJbmZv
KHVpbnQzMl90IGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIFN0cmlu
ZyYgcGVyc2lzdGVudElELCBTdHJpbmcmIGxhYmVsKQogewpAQCAtMjA1LDcgKzIwNCw3IEBAIFJl
dGFpblB0cjxDTUNsb2NrUmVmPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpkZXZpY2VDbG9jaygp
CiAgICAgICAgIHJldHVybiBtX2RldmljZUNsb2NrOwogCiAgICAgQ01DbG9ja1JlZiBjbG9jazsK
LSAgICBhdXRvIGVyciA9IENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBwZXJzaXN0ZW50SWQoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAmY2xvY2spOworICAg
IGF1dG8gZXJyID0gUEFMOjpDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgcGVyc2lzdGVudElkKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmNsb2NrKTsKICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b0NhcHR1cmVEZXZpY2U6OkNNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSglcCkgQ01BdWRpb0Rldmlj
ZUNsb2NrQ3JlYXRlIGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJy
LCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDAzZjNlNjJhMjYzN2MzZTkwMWJhZjY5NGQzYzUyNjVl
ZmE3NGFlYjIuLmY0YjM2NTg5NGQzN2NkOTRmZjIxYjdmYjU0ZmRiMjY0MWYzNmZlOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTQ4LDYgKzQ4LDggQEAKICNpbmNs
dWRlIDx3dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKKyNpbmNsdWRlIDxwYWwvY2YvQXVkaW9Ub29s
Ym94U29mdExpbmsuaD4KICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC01Nyw3ICs1OSw2IEBACiAjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogI2lmIFBMQVRGT1JNKE1B
QykKIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
RmFjdG9yeTo6c2luZ2xldG9uKCkKQEAgLTIwMyw3ICsyMDQsNyBAQCBPU1N0YXR1cyBDb3JlQXVk
aW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCgpCiAgICAgbV9EVFNDb252ZXJzaW9uUmF0aW8g
PSAxZS05ICogc3RhdGljX2Nhc3Q8ZG91YmxlPih0aW1lYmFzZUluZm8ubnVtZXIpIC8gc3RhdGlj
X2Nhc3Q8ZG91YmxlPih0aW1lYmFzZUluZm8uZGVub20pOwogCiAgICAgQXVkaW9Db21wb25lbnRE
ZXNjcmlwdGlvbiBpb1VuaXREZXNjcmlwdGlvbiA9IHsga0F1ZGlvVW5pdFR5cGVfT3V0cHV0LCBr
QXVkaW9Vbml0U3ViVHlwZV9Wb2ljZVByb2Nlc3NpbmdJTywga0F1ZGlvVW5pdE1hbnVmYWN0dXJl
cl9BcHBsZSwgMCwgMCB9OwotICAgIEF1ZGlvQ29tcG9uZW50IGlvQ29tcG9uZW50ID0gQXVkaW9D
b21wb25lbnRGaW5kTmV4dChudWxscHRyLCAmaW9Vbml0RGVzY3JpcHRpb24pOworICAgIEF1ZGlv
Q29tcG9uZW50IGlvQ29tcG9uZW50ID0gUEFMOjpBdWRpb0NvbXBvbmVudEZpbmROZXh0KG51bGxw
dHIsICZpb1VuaXREZXNjcmlwdGlvbik7CiAgICAgQVNTRVJUKGlvQ29tcG9uZW50KTsKICAgICBp
ZiAoIWlvQ29tcG9uZW50KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gZmluZCB2cGlv
IHVuaXQgY29tcG9uZW50IiwgdGhpcyk7CkBAIC0yMTIsNyArMjEzLDcgQEAgT1NTdGF0dXMgQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogCiAjaWYgIUxPR19ESVNBQkxFRAog
ICAgIENGU3RyaW5nUmVmIG5hbWUgPSBudWxscHRyOwotICAgIEF1ZGlvQ29tcG9uZW50Q29weU5h
bWUoaW9Db21wb25lbnQsICZuYW1lKTsKKyAgICBQQUw6OkF1ZGlvQ29tcG9uZW50Q29weU5hbWUo
aW9Db21wb25lbnQsICZuYW1lKTsKICAgICBpZiAobmFtZSkgewogICAgICAgICBtX2lvVW5pdE5h
bWUgPSBuYW1lOwogICAgICAgICBDRlJlbGVhc2UobmFtZSk7CkBAIC0yMjAsNyArMjIxLDcgQEAg
T1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgIH0KICNl
bmRpZgogCi0gICAgYXV0byBlcnIgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGlvQ29tcG9u
ZW50LCAmbV9pb1VuaXQpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRpb0NvbXBvbmVudEluc3Rh
bmNlTmV3KGlvQ29tcG9uZW50LCAmbV9pb1VuaXQpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRp
b1VuaXQoJXApIHVuYWJsZSB0byBvcGVuIHZwaW8gdW5pdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhp
cywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTIyOCwx
MyArMjI5LDEzIEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0
KCkKIAogICAgIGlmICghZW5hYmxlRWNob0NhbmNlbGxhdGlvbigpKSB7CiAgICAgICAgIHVpbnQz
Ml90IHBhcmFtID0gMDsKLSAgICAgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1Vu
aXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9Wb2ljZVByb2Nlc3NpbmdFbmFibGVBR0MsIGtBdWRpb1Vu
aXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgICAg
ICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJv
cGVydHlfVm9pY2VQcm9jZXNzaW5nRW5hYmxlQUdDLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBp
bnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKICAgICAgICAgaWYgKGVycikgewogICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6
c2V0dXBBdWRpb1VuaXQoJXApIHVuYWJsZSB0byBzZXQgdnBpbyBhdXRvbWF0aWMgZ2FpbiBjb250
cm9sLCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAg
ICAgICAgICAgcmV0dXJuIGVycjsKICAgICAgICAgfQogICAgICAgICBwYXJhbSA9IDE7Ci0gICAg
ICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVy
dHlfQnlwYXNzVm9pY2VQcm9jZXNzaW5nLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1
cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICAgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X0J5cGFzc1ZvaWNlUHJvY2Vz
c2luZywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBh
cmFtKSk7CiAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUg
dG8gc2V0IHZwaW8gdW5pdCBlY2hvIGNhbmNlbGxhdGlvbiwgZXJyb3IgJWQgKCUuNHMpIiwgdGhp
cywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBlcnI7CkBAIC0y
NDMsNyArMjQ0LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2V0dXBBdWRpb1Vu
aXQoKQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB1aW50MzJfdCBwYXJhbSA9IDE7
Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVu
aXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBpbnB1dEJ1cywgJnBh
cmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3BlcnR5
KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRT
Y29wZV9JbnB1dCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVy
cikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRV
bml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgaW5wdXQs
IGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAg
IHJldHVybiBlcnI7CkBAIC0yNTUsNyArMjU2LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6c2V0dXBBdWRpb1VuaXQoKQogICAgICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAK
LSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5p
dFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVz
LCAmbV9jYXB0dXJlRGV2aWNlSUQsIHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCkpOworICAgIGVy
ciA9IFBBTDo6QXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQ
cm9wZXJ0eV9DdXJyZW50RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywg
Jm1fY2FwdHVyZURldmljZUlELCBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpKTsKICAgICBpZiAo
ZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJl
ZFVuaXQ6OnNldHVwQXVkaW9Vbml0KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBjYXB0dXJl
IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCltX2NhcHR1cmVEZXZp
Y2VJRCwgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTI3
MCw3ICsyNzEsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5p
dCgpCiAgICAgaWYgKGVycikKICAgICAgICAgcmV0dXJuIGVycjsKIAotICAgIGVyciA9IEF1ZGlv
VW5pdEluaXRpYWxpemUobV9pb1VuaXQpOworICAgIGVyciA9IFBBTDo6QXVkaW9Vbml0SW5pdGlh
bGl6ZShtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0OjpzZXR1cEF1ZGlvVW5pdCglcCkgQXVkaW9V
bml0SW5pdGlhbGl6ZSgpIGZhaWxlZCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIs
IChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTI5Miw3ICsyOTMsNyBAQCB2
b2lkIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnVuZHVjaygpCiBPU1N0YXR1cyBDb3JlQXVkaW9TaGFy
ZWRVbml0Ojpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiB7CiAgICAgQVVSZW5kZXJDYWxsYmFj
a1N0cnVjdCBjYWxsYmFjayA9IHsgbWljcm9waG9uZUNhbGxiYWNrLCB0aGlzIH07Ci0gICAgYXV0
byBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFBy
b3BlcnR5X1NldElucHV0Q2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVz
LCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOworICAgIGF1dG8gZXJyID0gUEFMOjpBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X1NldElu
cHV0Q2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmY2FsbGJhY2ss
IHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoV2ViUlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlTWljcm9waG9uZVBy
b2MoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IG1pYyBwcm9jLCBlcnJvciAlZCAoJS40cyki
LCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAt
MzAxLDE0ICszMDIsMTQgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJl
TWljcm9waG9uZVByb2MoKQogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBtaWNyb3Bo
b25lUHJvY0Zvcm1hdCA9IHsgfTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6ZW9mKG1pY3JvcGhv
bmVQcm9jRm9ybWF0KTsKLSAgICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwg
a0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwg
aW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9IFBBTDo6
QXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1G
b3JtYXQsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NG
b3JtYXQsICZzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCVw
KSB1bmFibGUgdG8gZ2V0IG91dHB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0
aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0K
IAogICAgIG1pY3JvcGhvbmVQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOwot
ICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVy
dHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3Jv
cGhvbmVQcm9jRm9ybWF0LCBzaXplKTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlvVW5pdFNldFByb3Bl
cnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0
U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCBzaXplKTsKICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRp
b1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gc2V0IG91
dHB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwpAQCAtMzIzLDcgKzMyNCw3IEBAIE9TU3Rh
dHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKIE9TU3Rh
dHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCkKIHsKICAgICBB
VVJlbmRlckNhbGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBzcGVha2VyQ2FsbGJhY2ssIHRoaXMg
fTsKLSAgICBhdXRvIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0
cHV0QnVzLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOworICAgIGF1dG8gZXJyID0gUEFM
OjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJl
bmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJmNhbGxiYWNr
LCBzaXplb2YoY2FsbGJhY2spKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OmNvbmZpZ3VyZVNwZWFrZXJQcm9j
KCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVycm9yICVkICglLjRz
KSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CkBA
IC0zMzIsMTQgKzMzMywxNCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1
cmVTcGVha2VyUHJvYygpCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHNwZWFrZXJQ
cm9jRm9ybWF0ID0geyB9OwogCiAgICAgVUludDMyIHNpemUgPSBzaXplb2Yoc3BlYWtlclByb2NG
b3JtYXQpOwotICAgIGVyciA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1
cywgJnNwZWFrZXJQcm9jRm9ybWF0LCAmc2l6ZSk7CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRH
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgJnNpemUp
OwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBnZXQg
aW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChj
aGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKICAgICBzcGVha2VyUHJv
Y0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGUoKTsKLSAgICBlcnIgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1
ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgc2l6ZSk7
CisgICAgZXJyID0gUEFMOjpBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMs
ICZzcGVha2VyUHJvY0Zvcm1hdCwgc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpjb25maWd1cmVTcGVh
a2VyUHJvYyglcCkgdW5hYmxlIHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAo
JS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJy
OwpAQCAtNDU5LDcgKzQ2MCw3IEBAIHZvaWQgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6Y2xlYW51cEF1
ZGlvVW5pdCgpCiAgICAgfQogCiAgICAgaWYgKG1faW9Vbml0KSB7Ci0gICAgICAgIEF1ZGlvQ29t
cG9uZW50SW5zdGFuY2VEaXNwb3NlKG1faW9Vbml0KTsKKyAgICAgICAgUEFMOjpBdWRpb0NvbXBv
bmVudEluc3RhbmNlRGlzcG9zZShtX2lvVW5pdCk7CiAgICAgICAgIG1faW9Vbml0ID0gbnVsbHB0
cjsKICAgICB9CiAKQEAgLTQ3Nyw3ICs0NzgsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRV
bml0OjpyZWNvbmZpZ3VyZUF1ZGlvVW5pdCgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYg
KG1faW9Vbml0U3RhcnRlZCkgewotICAgICAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1f
aW9Vbml0KTsKKyAgICAgICAgZXJyID0gUEFMOjpBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0
KTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQ29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQoJXApIEF1ZGlv
T3V0cHV0VW5pdFN0b3AgZmFpbGVkIHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCll
cnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgICAgIHJldHVybiBlcnI7CkBAIC00OTAsNyArNDkx
LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6cmVjb25maWd1cmVBdWRpb1VuaXQo
KQogICAgICAgICByZXR1cm4gZXJyOwogCiAgICAgaWYgKG1faW9Vbml0U3RhcnRlZCkgewotICAg
ICAgICBlcnIgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX2lvVW5pdCk7CisgICAgICAgIGVyciA9
IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RhcnQobV9pb1VuaXQpOwogICAgICAgICBpZiAoZXJyKSB7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRV
bml0OjpyZWNvbmZpZ3VyZUF1ZGlvVW5pdCglcCkgQXVkaW9PdXRwdXRVbml0U3RhcnQgZmFpbGVk
IHdpdGggZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAg
ICAgICAgICAgIHJldHVybiBlcnI7CkBAIC01MTQsNyArNTE1LDcgQEAgT1NTdGF0dXMgQ29yZUF1
ZGlvU2hhcmVkVW5pdDo6c3RhcnRJbnRlcm5hbCgpCiAKICAgICB1bmR1Y2soKTsKIAotICAgIGVy
ciA9IEF1ZGlvT3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKKyAgICBlcnIgPSBQQUw6OkF1ZGlv
T3V0cHV0VW5pdFN0YXJ0KG1faW9Vbml0KTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFdlYlJUQywgIkNvcmVBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0KCVwKSBBdWRp
b091dHB1dFVuaXRTdGFydCBmYWlsZWQgd2l0aCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50
KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICBjbGVhbnVwQXVkaW9Vbml0KCk7CkBAIC01NTEs
NyArNTUyLDcgQEAgdm9pZCBDb3JlQXVkaW9TaGFyZWRVbml0OjpzdG9wSW50ZXJuYWwoKQogICAg
IGlmICghbV9pb1VuaXQgfHwgIW1faW9Vbml0U3RhcnRlZCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgYXV0byBlcnIgPSBBdWRpb091dHB1dFVuaXRTdG9wKG1faW9Vbml0KTsKKyAgICBhdXRvIGVy
ciA9IFBBTDo6QXVkaW9PdXRwdXRVbml0U3RvcChtX2lvVW5pdCk7CiAgICAgaWYgKGVycikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFyZWRVbml0Ojpz
dG9wKCVwKSBBdWRpb091dHB1dFVuaXRTdG9wIGZhaWxlZCB3aXRoIGVycm9yICVkICglLjRzKSIs
IHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybjsKQEAgLTU2NSw3
ICs1NjYsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpkZWZhdWx0SW5wdXREZXZp
Y2UodWludDMyX3QqIGRldmljZUlEKQogICAgIEFTU0VSVChtX2lvVW5pdCk7CiAKICAgICBVSW50
MzIgcHJvcGVydHlTaXplID0gc2l6ZW9mKCpkZXZpY2VJRCk7Ci0gICAgYXV0byBlcnIgPSBBdWRp
b1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJl
bnREZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCBkZXZpY2VJRCwgJnBy
b3BlcnR5U2l6ZSk7CisgICAgYXV0byBlcnIgPSBQQUw6OkF1ZGlvVW5pdEdldFByb3BlcnR5KG1f
aW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1ZGlvVW5p
dFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsIGRldmljZUlELCAmcHJvcGVydHlTaXplKTsKICAgICBp
ZiAoZXJyKQogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJDb3JlQXVkaW9TaGFy
ZWRVbml0OjpkZWZhdWx0SW5wdXREZXZpY2UoJXApIHVuYWJsZSB0byBnZXQgZGVmYXVsdCBpbnB1
dCBkZXZpY2UgSUQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVy
cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRleCAzZjRl
NGRjZjQyYzBmYTkzZWY5YWI2MmRkMjJhOTdjNTEzODcwNjYzLi41ODJmNGIyNmNmMTE4YzQ5NzFh
Y2Q3ZDE4MzA5MjE5N2UxZTc2ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwCkBAIC01Niw3ICs1Niw2IEBACiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCmluZGV4IGFhN2ZmMDg3NTA1NDI1ODJmMWVm
OTE2N2E4MWU2ZmI1YTU0OGYxNTIuLmI4NmIwNWU4YzY2NWJjMmU4MDVmMjdiMzhiMWE0ZmQzMzEz
ZjkyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCkBAIC00NCwxNCArNDQsMTAgQEAK
ICNpbXBvcnQgPEF1ZGlvVG9vbGJveC9BdWRpb0NvbnZlcnRlci5oPgogI2ltcG9ydCA8Q29yZUF1
ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CiAKKyNpbXBvcnQgPHBhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0
TGluay5oPgogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKLVNPRlRfTElO
S19GUkFNRVdPUksoQXVkaW9Ub29sYm94KQotCi1TT0ZUX0xJTksoQXVkaW9Ub29sYm94LCBBdWRp
b0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGlu
RGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVyUmVmKiBvdXRBdWRpb0NvbnZlcnRlciks
IChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZvcm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIp
KQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMg
aW5saW5lIHNpemVfdCBhbGlnblRvMTZCeXRlcyhzaXplX3Qgc2l6ZSkKIHsKQEAgLTIyMSw3ICsy
MTcsNyBAQCB2b2lkIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnJlY29uZmlndXJlKCkKICAgICBtX2F1
ZGlvQnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX3N0cmVhbUZv
cm1hdCwgbV9tYXhpbWl1bUZyYW1lQ291bnQpOwogCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbjsKLSAgICBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUo
TlVMTCwgJm1fc3RyZWFtRm9ybWF0LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0RGVz
Y3JpcHRpb24pOworICAgIFBBTDo6Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKE5VTEws
ICZtX3N0cmVhbUZvcm1hdCwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdERlc2NyaXB0
aW9uKTsKICAgICBtX2Zvcm1hdERlc2NyaXB0aW9uID0gYWRvcHRDRihmb3JtYXREZXNjcmlwdGlv
bik7CiAKICAgICBzaXplX3Qgc2FtcGxlQ291bnQgPSAyICogcmF0ZTsKQEAgLTI0Myw3ICsyMzks
NyBAQCB2b2lkIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OmVtaXRTYW1wbGVCdWZmZXJzKHVpbnQzMl90
IGZyYW1lQ291bnQpCiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1f
Zm9ybWF0RGVzY3JpcHRpb24pOwogCi0gICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNVGltZU1ha2Uo
bV9zYW1wbGVzRW1pdHRlZCwgc2FtcGxlUmF0ZSgpKTsKKyAgICBDTVRpbWUgc3RhcnRUaW1lID0g
UEFMOjpDTVRpbWVNYWtlKG1fc2FtcGxlc0VtaXR0ZWQsIHNhbXBsZVJhdGUoKSk7CiAgICAgbV9z
YW1wbGVzRW1pdHRlZCArPSBmcmFtZUNvdW50OwogCiAgICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KFBBTDo6dG9NZWRpYVRpbWUoc3RhcnRUaW1lKSwgKm1fYXVkaW9CdWZmZXJMaXN0LCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24obV9zdHJlYW1Gb3JtYXQpLCBmcmFtZUNvdW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQppbmRleCBiMDU5YTMyNTFkOGI5NjU3YmE5
MDE0YzQ0ZjgwNjNhZjgyN2IxZDQzLi5iNjBiODg2NmZiYjgwNDg4YzIzZmUyYjU3NjkyYjMwZjg3
ZTM4NjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01
MSw3ICs1MSw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2VDb2NvYS5jcHAKaW5kZXggNTgwOTRiMzQyMGYzOWM4ZjI2YzE3NzdhMmFlZDAxMjNkYmVh
MjYyOC4uYWE2OTZhZGRmN2Y3NzkyNTkxNTI5NTgzYzIxNjBjMTI0OTExZDU1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC00MCw3
ICs0MCw2IEBACiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2U+IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKHJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+JiYgYXVkaW9UcmFjaywg
U3RyaW5nJiYgYXVkaW9UcmFja0lkKQogewpAQCAtMTMxLDcgKzEzMCw3IEBAIHZvaWQgUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2E6Ok9uRGF0YShjb25zdCB2b2lkKiBhdWRpb0RhdGEs
IGludCBiaXRzUGVyCiAgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gMDsKICAgICB9CiAK
LSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01UaW1lTWFrZShtX251bWJlck9mRnJhbWVzLCBzYW1w
bGVSYXRlKTsKKyAgICBDTVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVNYWtlKG1fbnVtYmVy
T2ZGcmFtZXMsIHNhbXBsZVJhdGUpOwogICAgIGF1dG8gbWVkaWFUaW1lID0gUEFMOjp0b01lZGlh
VGltZShzdGFydFRpbWUpOwogICAgIG1fbnVtYmVyT2ZGcmFtZXMgKz0gbnVtYmVyT2ZGcmFtZXM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpp
bmRleCA4ZGY4ZjY4ZjZmNzI0MDQ3NWRiZDQzMjMwNmFhM2E1NjlmNmU0OGNmLi4wYzcxZTFkYjEw
ZmE0MzdhN2MwMDQzZDM2NGY0NGJmNzIzNzExYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCkBAIC00Miw3ICs0Miw2IEBAIEFMTE9XX1VO
VVNFRF9QQVJBTUVURVJTX0VORAogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIFJlZjxSZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2U+IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6Y3Jl
YXRlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+JiYgdmlk
ZW9UcmFjaywgU3RyaW5nJiYgdHJhY2tJZCkKIHsKQEAgLTE3MywxOSArMTcyLDE5IEBAIHZvaWQg
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUoY29uc3Qgd2VicnRjOjpW
aWRlb0ZyYW1lJiBmcmFtZSkKICAgICB9CiAKICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5n
SW5mbzsKLSAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IENNVGltZU1ha2Uo
ZnJhbWUudGltZXN0YW1wX3VzKCksIDEwMDAwMDApOwotICAgIHRpbWluZ0luZm8uZGVjb2RlVGlt
ZVN0YW1wID0ga0NNVGltZUludmFsaWQ7Ci0gICAgdGltaW5nSW5mby5kdXJhdGlvbiA9IGtDTVRp
bWVJbnZhbGlkOworICAgIHRpbWluZ0luZm8ucHJlc2VudGF0aW9uVGltZVN0YW1wID0gUEFMOjpD
TVRpbWVNYWtlKGZyYW1lLnRpbWVzdGFtcF91cygpLCAxMDAwMDAwKTsKKyAgICB0aW1pbmdJbmZv
LmRlY29kZVRpbWVTdGFtcCA9IFBBTDo6a0NNVGltZUludmFsaWQ7CisgICAgdGltaW5nSW5mby5k
dXJhdGlvbiA9IFBBTDo6a0NNVGltZUludmFsaWQ7CiAKICAgICBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb247Ci0gICAgT1NTdGF0dXMgb3N0YXR1cyA9IENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1
bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOwor
ICAgIE9TU3RhdHVzIG9zdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0
ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBp
eGVsQnVmZmVyLCAmZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmIChvc3RhdHVzICE9IG5vRXJy
KSB7CiAgICAgICAgIEVSUk9SX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUiwgIkZh
aWxlZCB0byBpbml0aWFsaXplIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbiB3aXRoIGVycm9yICIs
IHN0YXRpY19jYXN0PGludD4ob3N0YXR1cykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyOwotICAgIG9zdGF0dXMgPSBDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChD
VkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0lu
Zm8sICZzYW1wbGVCdWZmZXIpOworICAgIG9zdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3Jl
YXRlUmVhZHlXaXRoSW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZm
ZXJSZWYpcGl4ZWxCdWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5mbywgJnNhbXBs
ZUJ1ZmZlcik7CiAgICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKICAgICBpZiAob3N0
YXR1cyAhPSBub0VycikgewogICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lE
RU5USUZJRVIsICJGYWlsZWQgdG8gY3JlYXRlIHRoZSBzYW1wbGUgYnVmZmVyIHdpdGggZXJyb3Ig
Iiwgc3RhdGljX2Nhc3Q8aW50Pihvc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29j
b2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAppbmRleCA2YmYwY2E0ODdkZDY0ZGJlZjUzOWQ5
NDg4MGY2MjhjN2ZhMTYxYmYxLi5lMzNiYjZkYTlkZGRkMDFhMDBkOTk2ZmQ5ZWYwMmFjOTgxNGEx
ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2Nv
YS5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAgQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAjaW5j
bHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIAogUmVmPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZT4gUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlOjpjcmVhdGUoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiYmIHZpZGVvU291cmNlKQogewpAQCAtODUsNyArODQsNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2Ft
cGxlKQogICAgIH0KIAogICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09
IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOwotICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwor
ICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKSk7CiAgICAgYXV0byBwaXhlbEZvcm1hdFR5cGUgPSBDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKTsKIAogICAgIFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPiBjb252ZXJ0ZWRCdWZmZXIgPSBwaXhlbEJ1ZmZlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5
Q2FwdHVyZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2luZG93RGlzcGxheUNhcHR1cmVyTWFjLm1tCmluZGV4IDc4YmJjYWQxMzk5ODYyZjU1Yjk3MGJl
NDc3ZjI1MTRjNGYzNDg0NTQuLjEyOTNkYTU1OWY5MjlhN2FlZWM1NGQwN2FhOWFlNGY5OTRmOTVi
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
aW5kb3dEaXNwbGF5Q2FwdHVyZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlck1hYy5tbQpAQCAtNDYsNyArNDYs
NiBAQAogV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChDR0ltYWdlKTsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGJvb2wgYW55T2ZDR1dpbmRv
dyhjb25zdCBGdW5jdGlvbjxib29sKENGRGljdGlvbmFyeVJlZiBpbmZvLCB1bnNpZ25lZCBpZCwg
Y29uc3QgU3RyaW5nJiB0aXRsZSk+JiBwcmVkaWNhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvV2ViSWNvblV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9XZWJJY29uVXRpbGl0aWVzLm1tCmluZGV4IDRlYTNkZTg2Y2JiNDQ0MTlkYTZlMWY0
OTNiZWE4MzkwNTVkZDE4NWUuLmY2YjNjZTkxZDUyNTYyMmQxZGIxZjIwMTdlODExMTE1NTU5NmUz
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJY29uVXRpbGl0aWVz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJY29uVXRpbGl0aWVzLm1tCkBA
IC0xMjQsNyArMTI0LDcgQEAgUmV0YWluUHRyPFVJSW1hZ2U+IGljb25Gb3JWaWRlb0ZpbGUoTlNV
UkwgKmZpbGUpCiAgICAgW2dlbmVyYXRvciBzZXRBcHBsaWVzUHJlZmVycmVkVHJhY2tUcmFuc2Zv
cm06WUVTXTsKIAogICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwotICAgIFJldGFpblB0cjxDR0lt
YWdlUmVmPiBpbWFnZVJlZiA9IGFkb3B0Q0YoW2dlbmVyYXRvciBjb3B5Q0dJbWFnZUF0VGltZTpr
Q01UaW1lWmVybyBhY3R1YWxUaW1lOm5pbCBlcnJvcjomZXJyb3JdKTsKKyAgICBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gaW1hZ2VSZWYgPSBhZG9wdENGKFtnZW5lcmF0b3IgY29weUNHSW1hZ2VBdFRp
bWU6UEFMOjprQ01UaW1lWmVybyBhY3R1YWxUaW1lOm5pbCBlcnJvcjomZXJyb3JdKTsKICAgICBp
ZiAoIWltYWdlUmVmKSB7CiAgICAgICAgIExPR19FUlJPUigiRXJyb3IgY3JlYXRpbmcgaW1hZ2Ug
Zm9yIHZpZGVvICclQCc6ICVAIiwgZmlsZSwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsbGJh
Y2tJY29uRm9yRmlsZShmaWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Db3JlTWVkaWFXcmFwcGVkLmNwcAppbmRleCBh
MTZkMjQyNTY0MWYzN2ExOWQwYzA5ZTU0YmMzZWVmNGFhMjgxOGVhLi4wYmFjMWUyODllNzc3MmVh
ZTdlNmIzNjk4MTA4NTk0YjdhNjg2ODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvQ29yZU1lZGlhV3JhcHBlZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0NvcmVNZWRpYVdyYXBwZWQuY3Bw
CkBAIC0zNCwxNyArMzQsMTcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJvb2wgY3JlYXRlV3Jh
cHBlcihDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIGNvbnN0IENNQmFzZVZUYWJsZSogYmFzZVZU
YWJsZSwgQ01CYXNlQ2xhc3NJRCBjbGFzc0lELCBDTUJhc2VPYmplY3RSZWYqIHdyYXBwZXIpCiB7
Ci0gICAgcmV0dXJuIENNRGVyaXZlZE9iamVjdENyZWF0ZShhbGxvY2F0b3IsIGJhc2VWVGFibGUs
IGNsYXNzSUQsIHdyYXBwZXIpID09IG5vRXJyOworICAgIHJldHVybiBQQUw6OkNNRGVyaXZlZE9i
amVjdENyZWF0ZShhbGxvY2F0b3IsIGJhc2VWVGFibGUsIGNsYXNzSUQsIHdyYXBwZXIpID09IG5v
RXJyOwogfQogCiB2b2lkKiB3cmFwcGVyU3RvcmFnZShDTUJhc2VPYmplY3RSZWYgd3JhcHBlcikK
IHsKLSAgICByZXR1cm4gQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Uod3JhcHBlcik7Cisg
ICAgcmV0dXJuIFBBTDo6Q01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2Uod3JhcHBlcik7CiB9
CiAKIGNvbnN0IENNQmFzZVZUYWJsZSogd3JhcHBlclZUYWJsZShDTUJhc2VPYmplY3RSZWYgd3Jh
cHBlcikKIHsKLSAgICByZXR1cm4gQ01CYXNlT2JqZWN0R2V0VlRhYmxlKHdyYXBwZXIpOworICAg
IHJldHVybiBQQUw6OkNNQmFzZU9iamVjdEdldFZUYWJsZSh3cmFwcGVyKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcAppbmRleCBjMTg0
ZTQ0N2IyY2Q0NDJhODQ3ZWMzMTYyMzM2YjZmYWY3ODczYzdjLi41ZTc3OGNjMGI3YmRhNzRlM2Y3
NWM5OWI1OGJhOGJmYTI1MTcyOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAK
QEAgLTQ3LDcgKzQ3LDYgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChNVFBsdWdpbkZvcm1h
dFJlYWRlcik7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgUEFMOwog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBjb25zdCB2b2lkKiBuZXh0TG9nSWRl
bnRpZmllcigpCkBAIC0yNDUsNyArMjQ0LDcgQEAgT1NTdGF0dXMgTWVkaWFGb3JtYXRSZWFkZXI6
OmNvcHlQcm9wZXJ0eShDRlN0cmluZ1JlZiBrZXksIENGQWxsb2NhdG9yUmVmIGFsbG9jYXQKICAg
ICBpZiAobV9kdXJhdGlvbi5pc0luZGVmaW5pdGUoKSkKICAgICAgICAgcmV0dXJuIGtDTUJhc2VP
YmplY3RFcnJvcl9WYWx1ZU5vdEF2YWlsYWJsZTsKIAotICAgIGlmIChhdXRvIGxlYWtlZER1cmF0
aW9uID0gYWRvcHRDRihDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5KFBBTDo6dG9DTVRpbWUobV9kdXJh
dGlvbiksIGFsbG9jYXRvcikpLmxlYWtSZWYoKSkgeworICAgIGlmIChhdXRvIGxlYWtlZER1cmF0
aW9uID0gYWRvcHRDRihQQUw6OkNNVGltZUNvcHlBc0RpY3Rpb25hcnkoUEFMOjp0b0NNVGltZSht
X2R1cmF0aW9uKSwgYWxsb2NhdG9yKSkubGVha1JlZigpKSB7CiAgICAgICAgICpyZWludGVycHJl
dF9jYXN0PENGRGljdGlvbmFyeVJlZio+KHZhbHVlQ29weSkgPSBsZWFrZWREdXJhdGlvbjsKICAg
ICAgICAgcmV0dXJuIG5vRXJyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFu
Z2UuY3BwCmluZGV4IGQ4M2VmY2Y0Nzc1Y2U5NmIxMmE4NzYwZjhkMTcyMzRhYjBmMWVlN2QuLjRk
ZTFkMGVkMmE3YmU0OWUzY2JiYjk1ZTM3N2Y1NDUwOWZhYzA3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5n
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcApAQCAtMjUsMTIgKzI1LDEyIEBACiAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJNZWRpYVNhbXBsZUJ5dGVSYW5nZS5oIgorI2luY2x1ZGUgPHBh
bC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCiAjaWYgRU5BQkxFKFdFQk1fRk9STUFUX1JFQURF
UikKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFTYW1wbGVCeXRlUmFuZ2U6Ok1lZGlhU2FtcGxlQnl0
ZVJhbmdlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291
cmNlLCB1aW50NjRfdCB0cmFja0lEKQpAQCAtNTAsNyArNTAsNyBAQCBNZWRpYVNhbXBsZUJ5dGVS
YW5nZTo6TWVkaWFTYW1wbGVCeXRlUmFuZ2UoTWVkaWFTYW1wbGUmIHNhbXBsZSwgTVRQbHVnaW5C
eXRlU291cgogICAgIGF1dG8gcGxhdGZvcm1TYW1wbGUgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUo
KTsKICAgICBzd2l0Y2ggKHBsYXRmb3JtU2FtcGxlLnR5cGUpIHsKICAgICBjYXNlIFBsYXRmb3Jt
U2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGU6Ci0gICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24g
PSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBsYXRmb3JtU2FtcGxlLnNhbXBs
ZS5jbVNhbXBsZUJ1ZmZlcik7CisgICAgICAgIG1fZm9ybWF0RGVzY3JpcHRpb24gPSBQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNt
U2FtcGxlQnVmZmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQbGF0Zm9ybVNhbXBsZTo6
Qnl0ZVJhbmdlU2FtcGxlVHlwZToKICAgICAgICAgbV9mb3JtYXREZXNjcmlwdGlvbiA9IHBsYXRm
b3JtU2FtcGxlLnNhbXBsZS5ieXRlUmFuZ2VTYW1wbGUuc2Vjb25kOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29y
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNh
bXBsZUN1cnNvci5jcHAKaW5kZXggY2UyOTA2ZGM0NDI5Yjg3NTE0YTdiMDBjMzIxNzM5MmQ1MDdi
M2Y5NS4uZmJlNDIyNzMwNmY4MGY2MWMxMjdjMzM4YzcxZWZhNTRhMmQyMGM4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxl
Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCkBAIC00Myw3ICs0Myw2IEBAIFdURl9ERUNMQVJFX0NG
X1RZUEVfVFJBSVQoTVRQbHVnaW5TYW1wbGVDdXJzb3IpOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0
aWMgTWVkaWFUaW1lIGFzc3VtZWREZWNvZGVUaW1lKGNvbnN0IE1lZGlhVGltZSYgcHJlc2VudGF0
aW9uVGltZSwgRGVjb2RlT3JkZXJTYW1wbGVNYXAmIG1hcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVh
ZGVyLmNwcAppbmRleCA5MDg2MWM4NGRkZTZjNjZkZGI4Nzc5M2FiMjMwNmE2NmU0ZGViNzMxLi4x
ZGMxY2FlMDMwMDhlMGEyMGE0NGFjNzNkMWFhMzcyNTM1N2YyMGZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlh
VHJhY2tSZWFkZXIuY3BwCkBAIC00Nyw3ICs0Nyw2IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJB
SVQoTVRQbHVnaW5UcmFja1JlYWRlcik7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBu
YW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIENNQmFzZUNsYXNzSUQg
TWVkaWFUcmFja1JlYWRlcjo6d3JhcHBlckNsYXNzSUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc0Nvb3Jk
aW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVz
L0dyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yLm1tCmluZGV4IDE3ZDc5ZjE2MTA1NmEwMTBhNGVh
YzU4MmZkMjc4NjhmMzg4YTYyMTEuLjFlMzhkZTVkYmRhOWUxNTcxMjhmMWY0MGRhYWQxYzQ5MTkw
ZTMwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dyb3VwQWN0
aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0
b3IubW0KQEAgLTEwMiw4ICsxMDIsNiBAQCBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11
c2luZyBuYW1lc3BhY2UgUEFMOwotCiBSZWY8R3JvdXBBY3Rpdml0aWVzQ29vcmRpbmF0b3I+IEdy
b3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjpjcmVhdGUoR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbiYg
c2Vzc2lvbikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHcm91cEFjdGl2aXRpZXNDb29y
ZGluYXRvcihzZXNzaW9uKSk7CkBAIC0xNTQsNyArMTUyLDcgQEAgdm9pZCBHcm91cEFjdGl2aXRp
ZXNDb29yZGluYXRvcjo6bGVhdmUoKQogCiB2b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9y
OjpzZWVrVG8oZG91YmxlIHRpbWUsIENvb3JkaW5hdG9yQ29tcGxldGlvbkhhbmRsZXImJiBjYWxs
YmFjaykKIHsKLSAgICBbbV9wbGF5YmFja0Nvb3JkaW5hdG9yIGNvb3JkaW5hdGVTZWVrVG9UaW1l
OkNNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCAxMDAwKSBvcHRpb25zOjBdOworICAgIFttX3Bs
YXliYWNrQ29vcmRpbmF0b3IgY29vcmRpbmF0ZVNlZWtUb1RpbWU6UEFMOjpDTVRpbWVNYWtlV2l0
aFNlY29uZHModGltZSwgMTAwMCkgb3B0aW9uczowXTsKICAgICBjYWxsYmFjayhzdGQ6Om51bGxv
cHQpOwogfQogCkBAIC0yMTEsMTAgKzIwOSwxMCBAQCB2b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3Jk
aW5hdG9yOjppc3N1ZVBsYXlDb21tYW5kKEFWRGVsZWdhdGluZ1BsYXliYWNrQ29vcmRpbmF0bwog
CiAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGl0ZW1UaW1lOwogICAgIGlmIChDTVRJTUVfSVNf
TlVNRVJJQyhwbGF5Q29tbWFuZC5pdGVtVGltZSkpCi0gICAgICAgIGl0ZW1UaW1lID0gQ01UaW1l
R2V0U2Vjb25kcyhwbGF5Q29tbWFuZC5pdGVtVGltZSk7CisgICAgICAgIGl0ZW1UaW1lID0gUEFM
OjpDTVRpbWVHZXRTZWNvbmRzKHBsYXlDb21tYW5kLml0ZW1UaW1lKTsKICAgICBzdGQ6Om9wdGlv
bmFsPE1vbm90b25pY1RpbWU+IGhvc3RUaW1lOwogICAgIGlmIChDTVRJTUVfSVNfTlVNRVJJQyhw
bGF5Q29tbWFuZC5ob3N0Q2xvY2tUaW1lKSkKLSAgICAgICAgaG9zdFRpbWUgPSBNb25vdG9uaWNU
aW1lOjpmcm9tTWFjaEFic29sdXRlVGltZShDTUNsb2NrQ29udmVydEhvc3RUaW1lVG9TeXN0ZW1V
bml0cyhwbGF5Q29tbWFuZC5ob3N0Q2xvY2tUaW1lKSk7CisgICAgICAgIGhvc3RUaW1lID0gTW9u
b3RvbmljVGltZTo6ZnJvbU1hY2hBYnNvbHV0ZVRpbWUoUEFMOjpDTUNsb2NrQ29udmVydEhvc3RU
aW1lVG9TeXN0ZW1Vbml0cyhwbGF5Q29tbWFuZC5ob3N0Q2xvY2tUaW1lKSk7CiAKICAgICBjbGll
bnQoKS0+cGxheVNlc3Npb24oaXRlbVRpbWUsIGhvc3RUaW1lLCBbY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0gKGJvb2wpIHsKICAgICAgICAgY2FsbGJhY2soKTsKQEAgLTI0Niw3ICsyNDQs
NyBAQCB2b2lkIEdyb3VwQWN0aXZpdGllc0Nvb3JkaW5hdG9yOjppc3N1ZVNlZWtDb21tYW5kKEFW
RGVsZWdhdGluZ1BsYXliYWNrQ29vcmRpbmF0bwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgY2xpZW50KCktPnNlZWtTZXNzaW9uVG9UaW1lKENNVGltZUdldFNlY29uZHMoc2Vla0NvbW1h
bmQuaXRlbVRpbWUpLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGJvb2wpIG11dGFi
bGUgeworICAgIGNsaWVudCgpLT5zZWVrU2Vzc2lvblRvVGltZShQQUw6OkNNVGltZUdldFNlY29u
ZHMoc2Vla0NvbW1hbmQuaXRlbVRpbWUpLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0g
KGJvb2wpIG11dGFibGUgewogICAgICAgICBjYWxsYmFjaygpOwogICAgIH0pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5t
bQppbmRleCA0Mjc5NjljMjgyMTE4YWMzYzNkNzcwODNlYWI4MmQ5NWZkMGFiZWZmLi4xNzFkOWNh
NDg0OTE1ZDdhZjRlZWFkNjk3MDk5OTFlNTA0ZDQyNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtMjY5LDcg
KzI2OSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3Ry
YXRpb25zKCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgUEFMOwogCi0gICAgaWYgKCFpc0F1ZGlv
VG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhY2FuTG9hZF9BdWRpb1Rvb2xib3hD
b3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCisgICAgaWYgKCFQ
QUw6OmlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8ICFQQUw6OmNhbkxv
YWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEZldGNoU2VydmVyUmVnaXN0cmF0aW9u
cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRf
Z2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNv
Y29hLm1tCmluZGV4IGYzNzg0ZmMyNzEyYjBkZjYzODcxMjA0N2NkNzJmODUzMGM3NzcyMzQuLjJh
ODNkOTcxMGJmNzI1NWU1OTM4NWMxYjFmNjU5MzRjMjYzMDU1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYS5tbQpAQCAtNDIsNyArNDIsNiBAQCBAZW5kCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQK
IAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBib29sIHVzYWdlVHJhY2tpbmdBdmFpbGFibGUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGMzMjNhNmE3OGI0NTAwNWI2Nzc0MDg2MmI2MjliMTZm
YmI4MGY0MGIuLmY4OTFhNTMzMTQ1MGJmMTdlYWY5NWIwMGUzMThkYWUzYzczODc1NGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFn
ZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eS5jcHAKaW5kZXggOTViYmQ1NDgzY2ZlYTE3YzkxMmVkNWI1ZjEzZjQzMWZhZTM3MTI2
Ny4uOGE1OWFlMWEyOGZhNDNhOWIyZjIxNTc2MjExODlhZTk3NmQxMDJkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5h
bWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5Ojp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4
IGExYTgyN2RmMWRkMWYxNjIyN2MxM2VjNmVlMzA4NGU5ZDI2MWY0NTYuLjBkNmRlMWYyYTk5MDYw
OWVlOWEwNTAyZThkOTQ4YzM5MGZhMTFkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTM5NSw3ICsxMzk1LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpjb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGEKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgUEFMOwogCi0gICAg
aWYgKCFpc0F1ZGlvVG9vbGJveENvcmVGcmFtZXdvcmtBdmFpbGFibGUoKSB8fCAhY2FuTG9hZF9B
dWRpb1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50QXBwbHlTZXJ2ZXJSZWdpc3RyYXRpb25zKCkp
CisgICAgaWYgKCFQQUw6OmlzQXVkaW9Ub29sYm94Q29yZUZyYW1ld29ya0F2YWlsYWJsZSgpIHx8
ICFQQUw6OmNhbkxvYWRfQXVkaW9Ub29sYm94Q29yZV9BdWRpb0NvbXBvbmVudEFwcGx5U2VydmVy
UmVnaXN0cmF0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHJlZ2lzdHJhdGlv
bnMgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhLmRhdGEo
KSwgZGF0YS5zaXplKCkpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>