<?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>223854</bug_id>
          
          <creation_ts>2021-03-28 13:32:44 -0700</creation_ts>
          <short_desc>[macOS] Add remote MediaSessionCoordinator</short_desc>
          <delta_ts>2021-03-29 15:55:52 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1744640</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-28 13:32:44 -0700</bug_when>
    <thetext>Add remote MediaSessionCoordinator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744641</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-28 13:32:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/75934650&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744645</commentid>
    <comment_count>2</comment_count>
      <attachid>424509</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-28 14:12:08 -0700</bug_when>
    <thetext>Created attachment 424509
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744649</commentid>
    <comment_count>3</comment_count>
      <attachid>424510</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-28 15:06:30 -0700</bug_when>
    <thetext>Created attachment 424510
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744753</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-03-29 10:09:38 -0700</bug_when>
    <thetext>These changes all LGTM, but we should think about decoupling the successful MediaSessionCoordinatorPrivate callback from a default MediaSession action in response. I can imagine a situation where a promise has to get rejected because a pause command came in while a play coordination request was still waiting to be fulfilled. Maybe in a follow-up patch we could take a look at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744774</commentid>
    <comment_count>5</comment_count>
      <attachid>424510</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-03-29 10:55:06 -0700</bug_when>
    <thetext>Comment on attachment 424510
WIP patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +2021-03-28  Eric Carlson  &lt;eric.carlson@apple.com&gt;
&gt; +
&gt; +        [macOS] Add remote MediaSessionCoordinator
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=223854
&gt; +        &lt;rdar://problem/75934650&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +

Please fill out the ChangeLog description before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744786</commentid>
    <comment_count>6</comment_count>
      <attachid>424550</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-29 11:10:26 -0700</bug_when>
    <thetext>Created attachment 424550
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744794</commentid>
    <comment_count>7</comment_count>
      <attachid>424553</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-29 11:21:13 -0700</bug_when>
    <thetext>Created attachment 424553
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744849</commentid>
    <comment_count>8</comment_count>
      <attachid>424553</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-29 13:03:53 -0700</bug_when>
    <thetext>Comment on attachment 424553
Patch for landing

The Mac test bot failure is media/media-fragments/TC0051.html, not related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744863</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-29 13:20:43 -0700</bug_when>
    <thetext>Committed r275171: &lt;https://commits.webkit.org/r275171&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424553.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424509</attachid>
            <date>2021-03-28 14:12:08 -0700</date>
            <delta_ts>2021-03-28 15:11:02 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-223854-20210328141206.patch</filename>
            <type>text/plain</type>
            <size>115378</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI2ZDQwZTBjMTA2NjRm
YjgzZDQyOWIwM2E2ODgzNzdjZTM3NjAwYS4uYzIzZjBkOTZiYjhkODgwMmNmYmUwODFjNDI1NzU0
M2JiZDc4ZjZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIxLTAzLTI4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRk
IHJlbW90ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
NTkzNDY1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUG9zaXRpb25TdGF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQb3NpdGlvblN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQWN0aW9uSGFuZGxlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1Nlc3Npb25Ub1RpbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXlTZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZVNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFNlc3Npb25UcmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6aW50ZXJuYWxT
ZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmludGVy
bmFsUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6aW50
ZXJuYWxQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
aW50ZXJuYWxTZXRUcmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmguCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU6OnNldExvZ2dlcik6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2
YXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlOjpsb2dnZXJQdHIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZTo6Y2xpZW50IGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBs
YXliYWNrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6bG9nQ2xhc3NOYW1lIGNvbnN0KToKKwogMjAyMS0wMy0yNCAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBF
eHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAxMzU0ZDUx
MzEzZGM3YTJhNWQ2ZmUzMmRhNzBhZGRkNGFlYWY2ZDguLjJkZTQ1MjFiY2U0ZGVlNjczOTk1Y2Iw
YTljNDIyMzdlZDRjZDc1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjEtMDMtMjgg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09T
XSBBZGQgcmVtb3RlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NTQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc1OTM0NjUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZVByb3h5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEv
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6flJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5Ojpjb29yZGluYXRlU2Vla1RvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0ZVBsYXkpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRlUGF1c2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojo6OmNvb3Jk
aW5hdGVTZXRUcmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHk6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6cGxheWJhY2tTdGF0ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpyZWFk
eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHkuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lv
bi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OlJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6On5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzZWVrU2Vzc2lvblRvVGltZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5U2Vzc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZVNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0U2Vzc2lvblRyYWNr
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0No
YW5uZWwgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVk
aWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25S
ZWFkeVN0YXRlLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wMy0yNCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgRGlzcGxheUxp
bmsgbG9nIGNoYW5uZWxzIGluIFdlYkNvcmUgYW5kIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaAppbmRl
eCAxODQzZTc0NDZmZjhjNTkyODhhOGIyOGVkYjBmMmIyYzFjODQ4ZGZhLi40NmM4OTIzMjYyZTgz
YzRkNGFiY2ViZTgzY2QyODkxZjMwMGU1MWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaApAQCAtMzMsOCAr
MzMsMzMgQEAgc3RydWN0IE1lZGlhUG9zaXRpb25TdGF0ZSB7CiAgICAgZG91YmxlIGR1cmF0aW9u
ID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOwogICAgIGRvdWJsZSBw
bGF5YmFja1JhdGUgPSAxOwogICAgIGRvdWJsZSBwb3NpdGlvbiA9IDA7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gZGVj
b2RlKERlY29kZXImKTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+IGlubGluZSB2b2lk
IE1lZGlhUG9zaXRpb25TdGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBkdXJhdGlvbiA8PCBwbGF5YmFja1JhdGUgPDwgcG9zaXRpb247Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3Rh
dGU+IE1lZGlhUG9zaXRpb25TdGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
ZG91YmxlIGR1cmF0aW9uOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZHVyYXRpb24pKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgZG91YmxlIHBsYXliYWNrUmF0ZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBsYXliYWNrUmF0ZSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBk
b3VibGUgcG9zaXRpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbikpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gTWVkaWFQb3NpdGlvblN0YXRlIHsgV1RGTW92
ZShkdXJhdGlvbiksIFdURk1vdmUocGxheWJhY2tSYXRlKSwgV1RGTW92ZShwb3NpdGlvbikgfTsK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCBl
OGE5Y2FlZWFkNDYxY2I4OTYwN2MzNGMzMThiYTI0YTNiZDQwMTU3Li5lMGM1YjNhM2FhMWVjY2Mw
OGVhMzM2ZWI3OTNlZmVhYTFhN2NkYTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAgLTMwLDYgKzMwLDkgQEAKIAog
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRl
ICJKU01lZGlhUG9zaXRpb25TdGF0ZS5oIgorI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uQWN0aW9u
LmgiCisjaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhTWV0YWRhdGEuaCIKICNpbmNsdWRlICJNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uaAppbmRleCA4ZDA1MDdjZjA5OTBmZDU1YzUxYzdkMWE5N2Q4
YjVkMTljZDhjM2FjLi41NTVhYjdhMDEwMjNkZTIxZjM4ZTIyNTFkODY4ODFlZmY4MDJjODI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uaApAQCAtMzAsOSArMzAsNiBAQAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRR
dWV1ZS5oIgotI2luY2x1ZGUgIkpTTWVkaWFQb3NpdGlvblN0YXRlLmgiCi0jaW5jbHVkZSAiSlNN
ZWRpYVNlc3Npb25BY3Rpb24uaCIKLSNpbmNsdWRlICJKU01lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGUuaCIKICNpbmNsdWRlICJNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJNZWRpYVNl
c3Npb25BY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmgiCkBA
IC0xNTUsNiArMTUyLDkgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAorU3RyaW5nIGNvbnZlcnRF
bnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOworU3RyaW5nIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhU2Vzc2lvbkFjdGlvbik7CisKIH0KIAogbmFt
ZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmgKaW5kZXggYWViNjI0YWE4
ZTExNzdhMTY2ZjFiMzdhMjViNTc5NGRlNGQwYTZkYy4uZGY4MDM2MjRkZjgwM2NhZmFiNjczYjRh
ZWQ0OWVmMmE2ZTcyY2VlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaApAQCAtMjks
NyArMjksNiBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKICNpbmNsdWRlICJD
YWxsYmFja1Jlc3VsdC5oIgotI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5o
IgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAKaW5kZXggMWRmNGU5MjE1NWYxYWMwMTVlNmM1MTc0ZDRiZWY2NDgxZTU5MzU2
Ny4uODExM2VkMmEzMTUwMGUyYWI0Y2MzM2E5OTE3ZmQ4ZWM4OTExNGFjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMzIsNyArMzIsOCBAQAogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU2Vz
c2lvbi5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNp
bmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYv
TG9nZ2VyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsMTkgKzQzLDIwIEBAIHN0
YXRpYyBjb25zdCB2b2lkKiBuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKCkKICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsKIH0KIAot
UmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3Jl
YXRlKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmIHBsYXRmb3JtQ29vcmRp
bmF0b3IpCitSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpjcmVhdGUoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJiBwcml2YXRl
Q29vcmRpbmF0b3IpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoV1RGTW92ZShwbGF0Zm9ybUNvb3JkaW5hdG9yKSkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFdURk1vdmUocHJpdmF0ZUNvb3JkaW5h
dG9yKSkpOwogfQogCi1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29y
ZGluYXRvcikKLSAgICA6IG1fcGxhdGZvcm1Db29yZGluYXRvcihXVEZNb3ZlKHBsYXRmb3JtQ29v
cmRpbmF0b3IpKQorTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+JiYgcHJpdmF0ZUNvb3JkaW5h
dG9yKQorICAgIDogbV9wcml2YXRlQ29vcmRpbmF0b3IoV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0
b3IpKQogICAgICwgbV9sb2dnZXIobWFrZVJlZihEb2N1bWVudDo6c2hhcmVkTG9nZ2VyKCkpKQog
ICAgICwgbV9sb2dJZGVudGlmaWVyKG5leHRDb29yZGluYXRvckxvZ0lkZW50aWZpZXIoKSkKIHsK
ICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogCi0gICAgbV9wbGF0Zm9ybUNvb3JkaW5h
dG9yLT5zZXRMb2dnZXIobV9sb2dnZXIuY29weVJlZigpLCBtX2xvZ0lkZW50aWZpZXIpOworICAg
IG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZXRMb2dnZXIobV9sb2dnZXIuY29weVJlZigpLCBtX2xv
Z0lkZW50aWZpZXIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZXRDbGllbnQobWFrZVdl
YWtQdHIodGhpcykpOwogfQogCiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6fk1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OwpAQCAtNzAsNyArNzIsNyBAQCB2b2lkIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHBybwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wbGF0Zm9ybUNvb3Jk
aW5hdG9yLT5zZWVrVG8odGltZSwgW3RpbWUsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0
aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxF
eGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICBtX3ByaXZhdGVDb29yZGluYXRv
ci0+c2Vla1RvKHRpbWUsIFt0aW1lLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyks
IGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0
aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+
bV9zZXNzaW9uKSB7CiAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTgyLDEzICs4NCw5IEBA
IHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgewotICAgICAgICAg
ICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAotICAgICAgICAgICAgLnNl
ZWtUaW1lID0gdGltZSwKLSAgICAgICAgfTsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zZXNz
aW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKLQogICAgICAgICAvLyBGSVhNRTogc2hv
dWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3NlZWtU
bycgYWN0aW9uIGhhbmRsZXI/CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmludGVybmFsU2Vla1Rv
KHRpbWUpOworCiAgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwogICAgIH0pOwogfQpAQCAtMTA0
LDcgKzEwMiw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fcGxhdGZvcm1Db29yZGluYXRvci0+cGxheShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
KnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFs
PEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgIG1fcHJpdmF0ZUNvb3JkaW5h
dG9yLT5wbGF5KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7
CiAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExNiwxMiArMTE0LDkgQEAgdm9pZCBNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgTWVkaWFTZXNz
aW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKLSAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNl
c3Npb25BY3Rpb246OlBsYXksCi0gICAgICAgIH07Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
c2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7Ci0KICAgICAgICAgLy8gRklYTUU6
IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdw
bGF5JyBhY3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+aW50ZXJuYWxQbGF5
KCk7CisKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgfSk7CiB9CkBAIC0xMzcsNyAr
MTMyLDcgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
cGxhdGZvcm1Db29yZGluYXRvci0+cGF1c2UoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0
aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxF
eGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICBtX3ByaXZhdGVDb29yZGluYXRv
ci0+cGF1c2UoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0
aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsK
ICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTQ5LDEyICsxNDQsOSBAQCB2b2lkIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgTWVkaWFTZXNz
aW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKLSAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNl
c3Npb25BY3Rpb246OlBhdXNlLAotICAgICAgICB9OwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5t
X3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOwotCiAgICAgICAgIC8vIEZJWE1F
OiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAn
cGF1c2UnIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5pbnRlcm5hbFBh
dXNlKCk7CisKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgfSk7CiB9CkBAIC0xNzAs
NyArMTYyLDcgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3Qg
U3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVkPHYKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2V0VHJhY2sodHJhY2ssIFt0cmFjaywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFi
bGUgeworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CiAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTE4MiwxMyArMTc0LDkgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVk
PHYKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMgZGV0YWlscyB7Ci0gICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNz
aW9uQWN0aW9uOjpTZXR0cmFjaywKLSAgICAgICAgICAgIC50cmFja0lkZW50aWZpZXIgPSB0cmFj
aywKLSAgICAgICAgfTsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uLT5jYWxsQWN0
aW9uSGFuZGxlcihkZXRhaWxzKTsKLQogICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBwcm9t
aXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3NldFRyYWNrJyBhY3Rpb24g
aGFuZGxlcj8KKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+aW50ZXJuYWxTZXRUcmFjayh0cmFjayk7
CisKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgfSk7CiB9CkBAIC0yMDUsMzEgKzE5
Myw5NSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRNZWRpYVNlc3Npb24oTWVk
aWFTZXNzaW9uKiBzZXNzaW9uKQogdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRp
b25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiBzdGF0ZSkKIHsKICAg
ICBpZiAoIXN0YXRlKSB7Ci0gICAgICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cG9zaXRpb25T
dGF0ZUNoYW5nZWQoeyB9KTsKKyAgICAgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBvc2l0aW9u
U3RhdGVDaGFuZ2VkKHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3BsYXRm
b3JtQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6Ok1lZGlhUG9zaXRpb25TdGF0ZSB7IHN0YXRlLT5kdXJhdGlvbiwgc3RhdGUt
PnBsYXliYWNrUmF0ZSwgc3RhdGUtPnBvc2l0aW9uIH0pOworICAgIG1fcHJpdmF0ZUNvb3JkaW5h
dG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZChNZWRpYVBvc2l0aW9uU3RhdGUgeyBzdGF0ZS0+ZHVy
YXRpb24sIHN0YXRlLT5wbGF5YmFja1JhdGUsIHN0YXRlLT5wb3NpdGlvbiB9KTsKIH0KIAogdm9p
ZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpID09IHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSBpcyBu
b3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZTo6Tm9uZSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
dWludDhfdD4oTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkKSA9PSBzdGF0aWNfY2Fz
dDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlOjpQYXVzZWQpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2Vk
IGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlOjpQYXVzZWQgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpID09IHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZTo6UGxheWluZyBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBhcyBleHBlY3RlZCIpOwotCi0gICAgbV9wbGF0
Zm9ybUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlPihzdGF0
ZSkpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChzdGF0
ZSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2Vk
KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCiB7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZykgPT0g
c3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZU5vdGhpbmcgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIGFzIGV4cGVjdGVkIik7Ci0gICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlTWV0YWRhdGEpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSksICJNZWRp
YVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSBhcyBl
eHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlQ3VycmVudERhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnRE
YXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1
cmVEYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSksICJNZWRpYVNl
c3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgYXMg
ZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlh
U2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlRW5vdWdoRGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0
YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEgYXMgZXhwZWN0ZWQiKTsKKyAgICBtX3ByaXZhdGVDb29y
ZGluYXRvci0+cmVhZHlTdGF0ZUNoYW5nZWQoc3RhdGUpOworfQorCit2b2lkIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpzZWVrU2Vzc2lvblRvVGltZShkb3VibGUgdGltZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9u
SGFuZGxlcihpbnRlcm5hbFNlZWtUbyh0aW1lKSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnBsYXlTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoaW50ZXJuYWxQbGF5KCkp
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZVNlc3Npb24oQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4gY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxl
dGlvbkhhbmRsZXIoaW50ZXJuYWxQYXVzZSgpKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2V0U2Vzc2lvblRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2ssIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25I
YW5kbGVyKGludGVybmFsU2V0VHJhY2sodHJhY2spKTsKK30KKworYm9vbCBNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6aW50ZXJuYWxTZWVrVG8oZG91YmxlIHRpbWUpCit7CisgICAgaWYgKCFtX3Nl
c3Npb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRl
dGFpbHMgZGV0YWlscyB7CisgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNl
ZWt0bywKKyAgICAgICAgLnNlZWtUaW1lID0gdGltZSwKKyAgICB9OworICAgIG1fc2Vzc2lvbi0+
Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6aW50ZXJuYWxQbGF5KCkKK3sKKyAgICBpZiAoIW1f
c2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6
UGxheSwKKyAgICB9OworICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7
CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
aW50ZXJuYWxQYXVzZSgpCit7CisgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAg
IC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlLAorICAgIH07CisgICAgbV9zZXNz
aW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgIHJldHVybiB0cnVlOworfQor
Citib29sIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjppbnRlcm5hbFNldFRyYWNrKGNvbnN0IFN0
cmluZyYgdHJhY2spCit7CisgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgIC5h
Y3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNldHRyYWNrLAorICAgICAgICAudHJhY2tJZGVu
dGlmaWVyID0gdHJhY2ssCisgICAgfTsKKyAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVy
KGRldGFpbHMpOwogCi0gICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5yZWFkeVN0YXRlQ2hhbmdl
ZChzdGF0aWNfY2FzdDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlPihzdGF0ZSkpOworICAgIHJldHVybiB0cnVlOwogfQogCiBXVEZMb2dDaGFu
bmVsJiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaAppbmRleCAyNDdjZWM4ODBiMzUzZjQ2YmNiZDg3MGZmNWRiYzE5MmM5OTk3Yzky
Li5lOTFmNjNlMmI0MDFlMzJkMTA4NDM1OTUxNDQzODBmNjMwOGIzOTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQogCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCisjaW5jbHVkZSAi
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4K
QEAgLTM1LDEyICszNywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKLWNsYXNzIFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I7Ci1jbGFzcyBNZWRpYVNlc3Npb247Ci0KLWNsYXNzIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
LCBwdWJsaWMgTWVkaWFTZXNzaW9uOjpPYnNlcnZlciB7CitjbGFzcyBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcgorICAgIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
CisgICAgLCBwdWJsaWMgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQKKyAgICAsIHB1Ymxp
YyBNZWRpYVNlc3Npb246Ok9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoUmVmPFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IoKTsKIAogICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOwpAQCAtNTAsMTMgKzUyLDI3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWVkaWFTZXNz
aW9uKE1lZGlhU2Vzc2lvbiopOwogCisgICAgdXNpbmcgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JD
bGllbnQ6OndlYWtQdHJGYWN0b3J5OworICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBNZWRpYVNl
c3Npb25Db29yZGluYXRvckNsaWVudDo6V2Vha1ZhbHVlVHlwZTsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlPiYmKTsKKwogICAgIC8vIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2ZXIKICAgICB2b2lk
IHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIGZpbmFs
OwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSkgZmluYWw7CiAgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0
YXRlKSBmaW5hbDsKIAotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7CisgICAgLy8gTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQKKyAgICB2b2lkIHNlZWtTZXNzaW9uVG9UaW1lKGRv
dWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBw
bGF5U2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2
b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPikgZmluYWw7Cisg
ICAgdm9pZCBzZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4pIGZpbmFsOworCisgICAgYm9vbCBpbnRlcm5hbFNlZWtUbyhkb3VibGUpOwor
ICAgIGJvb2wgaW50ZXJuYWxQbGF5KCk7CisgICAgYm9vbCBpbnRlcm5hbFBhdXNlKCk7CisgICAg
Ym9vbCBpbnRlcm5hbFNldFRyYWNrKGNvbnN0IFN0cmluZyYpOwogCiAgICAgY29uc3QgTG9nZ2Vy
JiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlcjsgfQogICAgIGNvbnN0IHZvaWQqIGxv
Z0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KQEAgLTY0LDE0
ICs4MCw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgp
IHsgcmV0dXJuICJNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KIAogICAgIFdlYWtQdHI8TWVk
aWFTZXNzaW9uPiBtX3Nlc3Npb247Ci0gICAgUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I+IG1fcGxhdGZvcm1Db29yZGluYXRvcjsKKyAgICBSZWY8TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlPiBtX3ByaXZhdGVDb29yZGluYXRvcjsKICAgICBSZWY8Y29uc3QgTG9nZ2Vy
PiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Ci0KLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3NlZWtUb1Byb21pc2U7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9wbGF5UHJvbWlz
ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3BhdXNl
UHJvbWlzZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBt
X3NldFRyYWNrUHJvbWlzZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4MDI0ZTBlOTQzZTk4ZWVjOWYyZWE4MmNlZTlmOGQy
ZjcyODgzMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuY3BwCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZTo6c2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2
b2lkKiBsb2dJZGVudGlmaWVyKQoreworICAgIG1fbG9nZ2VyID0gbWFrZVJlZlB0cihsb2dnZXIp
OworICAgIG1fbG9nSWRlbnRpZmllciA9IGxvZ0lkZW50aWZpZXI7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTM3
MmQ5M2M5ZTc5ZGY4YTI4NzUwODAyYWE3NTEyZGM5MWUxNGM3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJFeGNl
cHRpb24uaCIKKyNpbmNsdWRlICJNZWRpYVBvc2l0aW9uU3RhdGUuaCIKKyNpbmNsdWRlICJNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNz
IExvZ2dlcjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVNlc3Npb25D
b29yZGluYXRvckNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb25Db29y
ZGluYXRvckNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHNlZWtTZXNzaW9u
VG9UaW1lKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwbGF5U2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZXNzaW9uVHJhY2soY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4pID0gMDsKK307CisKK2NsYXNz
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4geworcHVibGljOgorICAgIHZpcnR1YWwgfk1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9p
ZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlv
bj4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGF1
c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgPSAwOworCisgICAgdmlydHVhbCB2
b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlKSA9IDA7CisKKyAgICB2b2lkIHNldExvZ2dlcihjb25zdCBXVEY6
OkxvZ2dlciYsIGNvbnN0IHZvaWQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYWtQ
dHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IGNsaWVudCkgeyBtX2NsaWVudCA9IGNs
aWVudDt9CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUoKSA9IGRlZmF1bHQ7CisKKyAgICBjb25zdCBXVEY6OkxvZ2dlciogbG9nZ2VyUHRy
KCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisKKyAgICBXZWFr
UHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBjbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2NsaWVudDsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxjb25zdCBXVEY6OkxvZ2dlcj4g
bV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworICAgIFdlYWtQdHI8
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IG1fY2xpZW50OworfTsKKworfQorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlLmgKaW5kZXggNzA2M2M3OGUzZDc4YmZhZDM4OGRmMzA5NDU0YTljZjdhMzU0ZDJi
MS4uYTU3YmJjMmNhMWQ5NmE5N2RkNTRhZTM4ODhkZGJmZGQzNjVjY2Y2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUuaApAQCAtMzcsNCArMzcsMTcgQEAgZW51bSBjbGFzcyBNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlIDogdWludDhfdCB7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUsCisgICAg
ICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUsCisgICAgICAgIFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCwKKyAgICAgICAgV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZworICAgID47Cit9OworCit9CisK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaApp
bmRleCA2NDUyM2RkNTRhNzFlNjY1NGExN2JiMGM3NzRmNzg4MTYzMzdmNDY1Li5lNTE1ZjE2NGVk
NmM0NjAzZWMyMjY4NTRjMzI0ZDBkMTcxYWY5ZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5o
CkBAIC0zOSw0ICszOSwxOSBAQCBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1
aW50OF90IHsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0
YXRlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU6OkhhdmVNZXRhZGF0YSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZTo6SGF2ZUN1cnJlbnREYXRhLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFk
eVN0YXRlOjpIYXZlRnV0dXJlRGF0YSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEKKyAgICA+OworfTsKKworfQorCiAjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGE3NWEyZjMz
NWRkYTU1NzMyODQzZGFiMDBhNjMxODk4NGI4NDRhNmMuLjhlNjA0YmM1OGQxMzE0Y2JmOTYyZTcx
ZDkzMDgwYmZmMzczYzA0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xMzIsNiArMTMyLDcgQEAgTW9k
dWxlcy9tZWRpYWNhcGFiaWxpdGllcy9OYXZpZ2F0b3JNZWRpYUNhcGFiaWxpdGllcy5jcHAKIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAKK01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJpdmF0ZS5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5j
cHAKIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKIE1vZHVsZXMv
bWVkaWFyZWNvcmRlci9CbG9iRXZlbnQuY3BwCkBAIC0xOTk5LDcgKzIwMDAsNiBAQCBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRl
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL1BhdHRlcm4uY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM2ODVmOTU2YjZlYjAyNjFmNDlkNTIy
NDUxYmNkNjk4ODczZjBkNS4uOTg0ODUzZTU1MzIyYTdmODM0ZTg4MjcyZWViYjI3NzlmOWE5Yjg3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtOTAsNyArOTAsNiBAQAogCQkwNzA3NTZENDE0MjM5QTRGMDA0MTQxNjEgLyogSlNI
VE1MVHJhY2tFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzA3NTZEMjE0MjM5QTRFMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50Lmgg
Ki87IH07CiAJCTA3MDc1NkRFMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2RDgxNDIz
OUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi87IH07CiAJCTA3MDc1NkUwMTQyMzlC
NEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkRBMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1Rl
eHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsKLQkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8qIFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi87IH07CiAJCTA3MDlENzhGMUFFNTU1NTQwMDRF
NDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3MDlENzkyMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
LmNwcCAqLzsgfTsKIAkJMDcwOUQ3OTMxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MDlENzkxMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0
MSw4ICsxNDAsMTcgQEAKIAkJMDc3QUYxNDMxOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3N0FGMTQxMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc3QjY0MTMxQjk0RjEyRTAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzdCNjQxMTFCOTRGMTJFMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2su
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzdC
NjQxNzFCOTVGNzAzMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0I2NDE1MUI5NUY3MDMw
MDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTcxMjYwRjlGNzYwMDcyRjE5RiAv
KiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcyREJDMDMyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMDc3QkE1NzIyNjBGQTAxNDAwNzJGMTlGIC8qIE5hdmlnYXRvck1lZGlhU2Vzc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0REREVB
MjYyNTM4Q0RBQjAwQTEzMDBDIC8qIE5hdmlnYXRvck1lZGlhU2Vzc2lvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTc1MjYwRkE1RkUw
MDcyRjE5RiAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERERFQTIzMjUzOENEODAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzdC
QTU3NjI2MEZBREY2MDA3MkYxOUYgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEzNDI1MzhDRTYyMDBBMTMw
MEMgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1NzcyNjBGQUVDODAwNzJGMTlGIC8qIE1lZGlhU2Vz
c2lvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0REREVBMkIyNTM4Q0RFMzAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTc4MjYw
RkFFREIwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEzQTI1MzhFOUMyMDBBMTMw
MEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTc5MjYwRkFFRTgwMDcyRjE5RiAvKiBN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRERERUEyOTI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTA3N0JBNTdBMjYwRkFFRjgwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25SZWFkeVN0
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0
NzFGRDI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTdCMjYwRkIx
MDIwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEzNjI1MzhDRTcwMDBBMTMwMEMg
LyogTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTdFMjYwRkVGMzYwMDcyRjE5RiAvKiBNZWRp
YVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0JBNTdDMjYwRkU3MzgwMDcyRjE5RiAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzgyODk0ODI1QzIzRkU1MDBBN0JBMDMgLyogTWVkaWFNZXRhZGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0REREVB
MkQyNTM4Q0UwNDAwQTEzMDBDIC8qIE1lZGlhTWV0YWRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwNzgyODk0QTI1QzM2RkNGMDBBN0JBMDMg
LyogTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRERERUEyMzI1MzhDRDgwMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uLmggKi87IH07
CiAJCTA3ODI4OTRCMjVDMzZGRUQwMEE3QkEwMyAvKiBNZWRpYUltYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEzMjI1MzhDRTM1MDBBMTMw
MEMgLyogTWVkaWFJbWFnZS5oICovOyB9OwogCQkwNzgyODk0QzI1QzM3MDBCMDBBN0JBMDMgLyog
TWVkaWFNZXRhZGF0YUluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERERFQTMwMjUzOENFMUUwMEExMzAwQyAvKiBNZWRpYU1ldGFkYXRhSW5pdC5o
ICovOyB9OwogCQkwNzgzMjI4NTE4MDEzRUQ4MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc4
MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCAqLzsgfTsK
QEAgLTU2OTUsNyArNTcwMyw2IEBACiAJCTA3MDc1NkQ4MTQyMzlCNEIwMDQxNDE2MSAvKiBKU1Rl
eHRUcmFja0N1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFj
a0N1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA3NTZEOTE0MjM5QjRDMDA0
MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3MDc1NkRBMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OEMxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3MDlENzhEMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OTAxQUU1NTU3RTAwNEU0MkY4IC8q
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01ODUwLDYgKzU4NTcsOCBAQAogCQkwNzdCNjQxMTFCOTRGMTJFMDAz
RTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc3QjY0MTQxQjk1RjcwMzAwM0U5QUQ1IC8qIE1lZGlh
UGxheWJhY2tUYXJnZXRNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc3QjY0MTUxQjk1RjcwMzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2Nr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJnZXRN
b2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3N0JBNTdDMjYwRkU3MzgwMDcy
RjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA3N0JBNTdEMjYwRkU3MzkwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4MzIyODIxODAxM0VE
NzAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4NDYz
NDAxNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJhY2tFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1RyYWNrRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTkzNiw3ICs1OTQ1LDYgQEAKIAkJMDdFMTE2QjAxNDg5QzlBMTAwRUM1QUNF
IC8qIEpTVGV4dFRyYWNrQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTVGV4dFRyYWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdFMTE3MDYxNDg5RUJFQjAwRUM1QUNFIC8qIEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFM0RGRDAxQTlFNzg2NTAwNzY0
Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFQbGF5YmFja1RhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwN0U1RjM5MjI1RUFBOTFGMDBBODUzQUQgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFOUUxMkQxOEY1RTI3NjAw
MTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFOUUxMkYxOEY2MkIzNzAwMTFBM0E0
IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0VFNzZFOTFCRTk2REIwMDBGODkx
MzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjY5MzMsOCArMjY5NDEsNiBAQAogCQkJCTU1MDY0MEFEMjQwNzU2
REEwMEFBRTA0NSAvKiBQbGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oICovLAogCQkJCTA1NjJG
OTYwMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi8sCiAJCQkJQ0VFRkNEN0Ix
OURCMzNEQzAwMzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAotCQkJ
CTA3RTVGMzkyMjVFQUE5MUYwMEE4NTNBRCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcCAqLywKLQkJCQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oICovLAogCQkJCTA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAv
KiBQbGF0Zm9ybVRleHRUcmFjay5oICovLAogCQkJCTA3NEU4MkI4MThBNjlGMEUwMDdFRjU0QyAv
KiBQbGF0Zm9ybVRpbWVSYW5nZXMuY3BwICovLAogCQkJCTA3NEU4MkI5MThBNjlGMEUwMDdFRjU0
QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLywKQEAgLTI4Mzk0LDYgKzI4NDAwLDggQEAKIAkJ
CQkwNzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAq
LywKIAkJCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaWRsICovLAogCQkJCTA3MzZCNzMwMjYwOTRBMzcwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25D
b29yZGluYXRvck1peGluLmlkbCAqLywKKwkJCQkwNzdCQTU3RDI2MEZFNzM5MDA3MkYxOUYgLyog
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmNwcCAqLywKKwkJCQkwNzdCQTU3QzI2MEZF
NzM4MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmggKi8sCiAJCQkJ
Q0REREVBMjkyNTM4Q0RDQjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAq
LywKIAkJCQlDRERERUEyODI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5pZGwgKi8sCiAJCQkJMDczNkI3MzIyNjA5NTU1NDAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lv
blBsYXlsaXN0TWl4aW4uaWRsICovLApAQCAtMzM5NjksNiArMzM5NzcsNyBAQAogCQkJCURGOUFG
RDcyMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBMzE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNTA1
MjRGNDFCNzEyRkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3NjI2MEZBREY2MDA3MkYxOUYgLyogTWVk
aWFQb3NpdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkUyQ0FGQzE5RkYwMjA3MDAx
RUVCNEYgLyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkEwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0OTNCNkJG
MUQ3NEI0MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmggaW4gSGVhZGVycyAq
LywKQEAgLTMzOTkyLDEyICszNDAwMSwxOSBAQAogCQkJCTFCMTI0RDhEMUQzODBCNzAwMEVDREZC
MCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQkVBRUFEMTlE
OTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTE3RDI3NUUxRUFDNTc5ODAwQkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0aW9u
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwNzgyODk0QTI1QzM2RkNGMDBBN0JBMDMgLyogTWVkaWFT
ZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3NTI2MEZBNUZFMDA3MkYxOUYgLyog
TWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3NzI2MEZBRUM4MDA3MkYx
OUYgLyogTWVkaWFTZXNzaW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3QjI2
MEZCMTAyMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMDc3QkE1NzgyNjBGQUVEQjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkhh
bmRsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3N0JBNTcxMjYwRjlGNzYwMDcyRjE5RiAvKiBN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc3QkE1N0UyNjBG
RUYzNjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE2RUNBRTUyNUI1OENDNDAwQjM0REE1IC8qIE1lZGlhU2Vzc2lvbkdyb3Vw
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBOTU5M0YyNDEyQkFFMDAwOTEwRUVG
IC8qIE1lZGlhU2Vzc2lvbkhlbHBlcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NDYwQTIy
NDEyOTk0NTAwODE0QkU3IC8qIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxN0Y3QUVGMjEzOUJGNkYwMEZCQTdFQyAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRp
YVNlc3Npb25NYW5hZ2VySU9TLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3OTI2MEZBRUU4
MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMDc3QkE1N0EyNjBGQUVGODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEM0E0OTVGMTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q2NDFFQjMxODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlh
U291cmNlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOEI1QTcxODA0NzRGNzAwMTZF
Njg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLApAQCAtMzQx
MDAsNiArMzQxMTYsNyBAQAogCQkJCTk3MTE0NjA0MTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0
b3JHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkI1MDdBMjQyMzRCRjM0MTAwQkU3
QzYyIC8qIE5hdmlnYXRvcklzTG9nZ2VkSW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTVFQTcyNUQ2
MUFDQUJENTcwMEVBRDE3QiAvKiBOYXZpZ2F0b3JNZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTA3N0JBNTcyMjYwRkEwMTQwMDcyRjE5RiAvKiBOYXZpZ2F0b3JNZWRpYVNlc3Npb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkU1OURGMURGMDEyOEQwMDY2MTJCOSAvKiBOYXZpZ2F0
b3JXZWJEcml2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4Qjc4MjQxMzE5MUYwMEU3OTRE
NiAvKiBOYXZpZ2F0b3JXZWJYUi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEEzMDlDOUYxMjM5NTBC
RTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTM0MzI1LDcgKzM0MzQyLDYgQEAKIAkJCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZDRDdDMTlEQjMzREMwMDM4NzZE
NyAvKiBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
MEUwOTE5MTg3NUVFRkMwMDNBMUQzQyAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Rjk0NDE2MTg2NEQwNDYwMDVE
MzFDQiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNUM0NzY5MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybU1vdXNlRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM1OTg5MDU4MTRFOUMyOTkwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9h
cmQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKaW5kZXggOTE0NTdlYjFhNjFlNDY3M2FjMTkzYjgy
MDNlOTBiOGYzZTYyNzY1MS4uMDI0OTMwY2NiYTAxMWIxM2ViOTQ3MWZmZGFhNTE1MmM3MjE4ZmJj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRp
YVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uR3Jv
dXBJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0Zi9M
b2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTExNzg1MTEzOTlmNDE1Zjc4MWIzMmFhZWU3NmMx
MTNlYjE3ZWJjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCi0KLSNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1T
dHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKLXsKLSAgICBzdGF0aWMgY29u
c3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKLSAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIkhhdmVOb3RoaW5nIiksCi0gICAgICAgIE1BS0VfU1RBVElDX1NUUklO
R19JTVBMKCJIYXZlTWV0YWRhdGEiKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
IkhhdmVDdXJyZW50RGF0YSIpLAotICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2
ZUZ1dHVyZURhdGEiKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVFbm91
Z2hEYXRhIiksCi0gICAgfTsKLSAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+
KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVOb3RoaW5nKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIGlzIG5v
dCAwIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVNZXRhZGF0YSkgPT0gMSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0
YSBpcyBub3QgMSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFk
eVN0YXRlOjpIYXZlQ3VycmVudERhdGEpID09IDIsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlQ3VycmVudERhdGEgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEpID09IDMsICJNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBpcyBub3QgMyBhcyBleHBlY3RlZCIpOwotICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSkgPT0gNCwgIk1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhIGlzIG5vdCA0IGFzIGV4cGVjdGVk
Iik7Ci0gICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpIDwgV1RGX0FSUkFZX0xF
TkdUSCh2YWx1ZXMpKTsKLSAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oc3Rh
dGUpXTsKLX0KLQotU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCi17
Ci0gICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7Ci0g
ICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJOb25lIiksCi0gICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJQYXVzZWQiKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIlBsYXlpbmciKSwKLSAgICB9OwotICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNp
emVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZTo6Tm9uZSksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGlzIG5vdCAw
IGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6
OlBhdXNlZCkgPT0gMSwgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCBpcyBub3Qg
MSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
OjpQbGF5aW5nKSA9PSAyLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBpcyBu
b3QgMiBhcyBleHBlY3RlZCIpOwotICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KHN0YXRl
KSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7Ci0gICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNf
Y2FzdDxzaXplX3Q+KHN0YXRlKV07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNl
c3Npb25Db29yZGluYXRvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTBkYzUx
ZDJhNmY4MGFiYzk3YWE2MDdkOWU5YTUxMDE1MGYzMmVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDEw
MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgotI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKLSNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+Ci0jaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+Ci0jaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4gewotcHVibGljOgotICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoKSA9IGRlZmF1bHQ7Ci0KLSAgICB1c2luZyBTZWVrQ29tcGxldGVkQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+OwotICAgIHZpcnR1
YWwgdm9pZCBzZWVrVG8oZG91YmxlLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJikgPSAwOwotCi0g
ICAgdXNpbmcgUGxheUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxFeGNlcHRpb24+JiYpPjsKLSAgICB2aXJ0dWFsIHZvaWQgcGxheShQbGF5Q29tcGxl
dGVkQ2FsbGJhY2smJikgPSAwOwotCi0gICAgdXNpbmcgUGF1c2VDb21wbGV0ZWRDYWxsYmFjayA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47Ci0gICAgdmly
dHVhbCB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVkQ2FsbGJhY2smJikgPSAwOwotCi0gICAgdXNp
bmcgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8RXhjZXB0aW9uPiYmKT47Ci0gICAgdmlydHVhbCB2b2lkIHNldFRyYWNrKGNvbnN0IFN0
cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7Ci0KLSAgICB2b2lkIHNldExv
Z2dlcihjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKLSAg
ICB7Ci0gICAgICAgIG1fbG9nZ2VyID0gbWFrZVJlZlB0cihsb2dnZXIpOwotICAgICAgICBtX2xv
Z0lkZW50aWZpZXIgPSBsb2dJZGVudGlmaWVyOwotICAgIH0KLQotICAgIHN0cnVjdCBNZWRpYVBv
c2l0aW9uU3RhdGUgewotICAgICAgICBkb3VibGUgZHVyYXRpb24gPSBzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OmluZmluaXR5KCk7Ci0gICAgICAgIGRvdWJsZSBwbGF5YmFja1JhdGUgPSAx
OwotICAgICAgICBkb3VibGUgcG9zaXRpb24gPSAwOwotICAgIH07Ci0KLSAgICBlbnVtIGNsYXNz
IE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1aW50OF90IHsKLSAgICAgICAgSGF2ZU5vdGhpbmcs
Ci0gICAgICAgIEhhdmVNZXRhZGF0YSwKLSAgICAgICAgSGF2ZUN1cnJlbnREYXRhLAotICAgICAg
ICBIYXZlRnV0dXJlRGF0YSwKLSAgICAgICAgSGF2ZUVub3VnaERhdGEsCi0gICAgfTsKLQotICAg
IGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSA6IHVpbnQ4X3QgewotICAgICAg
ICBOb25lLAotICAgICAgICBQYXVzZWQsCi0gICAgICAgIFBsYXlpbmcsCi0gICAgfTsKLQotICAg
IHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9u
U3RhdGU+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vz
c2lvblJlYWR5U3RhdGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5n
ZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgZXhw
bGljaXQgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKLQotICAg
IGNvbnN0IExvZ2dlciogbG9nZ2VyUHRyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7
IH0KLSAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJ
ZGVudGlmaWVyOyB9Ci0gICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgeyByZXR1
cm4gIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9Ci0gICAgV1RGTG9nQ2hhbm5l
bCYgbG9nQ2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIExvZ01lZGlhOyB9Ci0KLXByaXZhdGU6Ci0g
ICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7Ci0gICAgY29uc3Qgdm9pZCogbV9sb2dJ
ZGVudGlmaWVyOwotfTsKLQotU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpOwotU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOwotCi19Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRleCBjMzc1ZmI2MTMy
NTBkNzFkNzExNDU3Njc0OTQzYTVjMDE3ODUyOWZhLi44ODkzZDJmYmNlYzU1Zjc0OTQyNTEzNjE5
MzcyMjE5MGYwMjYwMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC01OSw3ICs1OSw3IEBAIE9wdGlvbmFs
PEV4Y2VwdGlvbj4gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZXN1bHQoKSBjb25zdAog
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxi
YWNrKQordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGlt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNhbGxi
YWNrKQogewogICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7
CiAgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKQEAgLTY3LDcgKzY3LDcg
QEAgdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwg
U2Vla0NvbXBsZXRlZENhbGxiYWNrJiYgY2EKICAgICB9KTsKIH0KIAotdm9pZCBNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2sp
Cit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgQUxXQVlT
X0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKICAgICBtX2NvbnRleHQtPnBvc3RUYXNr
KFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpIG11dGFibGUgewpAQCAtNzUsNyArNzUsNyBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6cGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKICAgICB9
KTsKIH0KIAotdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKFBhdXNlQ29t
cGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpwYXVzZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+
JiYgY2FsbGJhY2spCiB7CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVS
KTsKICAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewpAQCAtODMsNyArODMs
NyBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0
ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCi12b2lkIE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENh
bGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0
VHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNl
cHRpb24+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9H
SURFTlRJRklFUik7CiAgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKQEAg
LTkxLDI0ICs5MSwyOSBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJh
Y2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYQogICAgIH0pOwogfQogCi12
b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0
aW9uYWw8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFQb3NpdGlvblN0YXRl
PikKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdl
ZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+KQogewogICAgIEFMV0FZU19MT0dfSUZfUE9T
U0lCTEUoTE9HSURFTlRJRklFUik7CiAgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVs
ZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInBvc2l0aW9uU3RhdGVDaGFuZ2VkIik7CiB9CiAK
LXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRl
KQordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKE1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCiB7CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJM
RShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CiAgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hl
ZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInJlYWR5U3RhdGVDaGFuZ2VkIik7CiB9CiAK
LXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
IHN0YXRlKQordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVD
aGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiB7CiAgICAgQUxXQVlTX0xP
R19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CiAgICAgbV9zdGF0ZUNoYW5nZUxp
c3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInBsYXliYWNrU3RhdGVD
aGFuZ2VkIik7CiB9CiAKK1dURkxvZ0NoYW5uZWwmIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExvZ01lZGlhOworfQorCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCmluZGV4
IDg3MGJiNGNiMGJlOTZmODVmZDQ1NzBlOGUzOTNiNzIzNmZlOGYyYjMuLjQ4MzU2ZjlhZTEzZTdj
Mzg4NDdmNDk4YjBjMjg1ZTExMzlmNzdiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMjgsMTUgKzI4LDE2IEBA
CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAKICNpbmNsdWRlICJHZW5l
cmljRXZlbnRRdWV1ZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCIKICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFN0
cmluZ0NhbGxiYWNrOwogCi1jbGFzcyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJs
aWMgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciB7CitjbGFzcyBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVm
UHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKQEAgLTQ2LDE1ICs0NywxOCBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKIAotICAgIHZvaWQgc2Vla1RvKGRvdWJs
ZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgcGxheShQbGF5Q29t
cGxldGVkQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBwYXVzZShQYXVzZUNvbXBsZXRlZENh
bGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFj
a0NvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKKyAg
ICB2b2lkIHBsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJp
bmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZp
bmFsOwogCiAgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0
aW9uU3RhdGU+KSBmaW5hbDsKICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lv
blJlYWR5U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CiAKKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05h
bWUoKSBjb25zdCB7IHJldHVybiAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQorICAg
IFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdDsKKwogICAgIE9wdGlvbmFsPEV4Y2Vw
dGlvbj4gcmVzdWx0KCkgY29uc3Q7CiAKICAgICBSZWY8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4g
bV9jb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggZDBjOTIxNzgyYWU1NTE1ZTA5NTE1YmRi
NTFjYzRlMTkwZWU5NjUzMS4uNTFjNWEwNTk2MWI5YzhmYTUwZjc2ZmIxZTgzZGVmNTk5ZDg3ZGZm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xODUsNiArMTg1LDkgQEAgc2V0KFdlYktpdF9NRVNT
QUdFU19JTl9GSUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
CiAKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorCisgICAgVUlQcm9jZXNzL01lZGlh
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkKKwogICAgIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAgICAgVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3Rv
cmUKQEAgLTI0NSw2ICsyNDgsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAg
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlcgogICAg
IFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJCiAKKyAgICBXZWJQcm9jZXNzL01l
ZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcgorCiAgICAgV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIKICAgICBXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYk1ETlNSZWdpc3RlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDVlOGZkM2NiODc5MjA3OWRmMWIxM2NhZDkzNWI3Yjcz
ZDExNDI4NmYuLjBlMGZiODcwZTUxYTQ0NjA2MzE1YTk0YTI0YzU0NjEyOWFiMGViNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwOCw2
ICsxMDgsNyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclVJUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTY0LDYgKzE2NSw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3Rvci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9NZWRpYVNlc3Np
b24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENo
YW5uZWwubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IGVmMjE1YWMzNzk2OThlNDdhODY0OWUyNDFjN2M2OGRkMGI3Nzcz
NjAuLjM0YWMzYjFmYTkzNDc2ZDE1ZTQyNGZiN2IzMDczZmU1MjczOTc4NDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjQwLDYgKzI0
MCwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlY29yZGVyc01lc3NhZ2VzUmVwbGllcwogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
TWVkaWFTZXNzaW9uSGVscGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
TWVkaWFTZXNzaW9uSGVscGVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCBmNTI5NGRlOTVkNTFhMWYxNTYzZGVlYjc5ZjE5MjEyNDAyYzMzMjQzLi45NWJm
NDUxNmE2ZTFkZDFjNGFkNDBhMGZlOTgxNGI3ZTkwNjliMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC02Miw2ICs2Miw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9JY29uRGF0YWJhc2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIFwKKyAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMgXApAQCAtMTcwLDYgKzE3MSw3IEBA
IE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbCBcCiAJVUlQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5IFwKIAlVSVByb2Nlc3MvTWVkaWEvQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSBcCisJVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkgXAogCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIgXApAQCAtMTk3LDYgKzE5OSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJT
ID0gXAogCVdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlciBcCiAJV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yIFwKIAlXZWJQcm9jZXNz
L0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSSBcCisJV2ViUHJvY2Vzcy9NZWRpYVNlc3Np
b24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgXAogCVdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIgXAogCVdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm94eSBcCiAJV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAppbmRleCBkZDRkMmE1MDc2NTc2YmEzZDQ1NjJlY2FjMzMxYjE5
OTkzYzk5NjlmLi5hODZlNzE3ZjcyMDQzM2M2NzMyMWM0ZjVkMTk3MDQyYzE0MDM4MzU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC03MTMsNiArNzEzLDggQEAgUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyTWVzc2FnZVJlY2VpdmVyLmNwcAog
UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIwZGQzM2NkMjMzNWE3OTQzNDNiNzk5YTRlZGExZTQyMDgwNzk2MmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25D
b29yZGluYXRvclByaXZhdGVQcm94eS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5Cisg
ICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
UHJveHk+CisgICAgLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGVQcm94eT4geworcHVibGljOgorICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJpdmF0ZVByb3h5KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhk
b3VibGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YSYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25E
YXRhJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxX
ZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlYWR5
U3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZSkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcml2YXRlUHJveHkoKSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9S
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzI2NzA0
NWM0MzVjNTM3NGZjN2JkMjJiNjcwNjRkZGJiNmJmMzA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eS5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oIgorCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJNZWRpYVNl
c3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0
aW9uRGF0YS5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworUmVmUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94
eSwgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiYmIHByaXZhdGVDb29y
ZGluYXRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5KHdlYlBhZ2VQcm94eSwgV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0b3Ip
KSk7Cit9CisKK1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFJlZjxN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJiBwcml2YXRlQ29vcmRpbmF0b3Ip
CisgICAgOiBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkpCisgICAgLCBtX3ByaXZhdGVDb29y
ZGluYXRvcihXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvcikpCisgICAgLCBtX2xvZ2dlcihtX3dl
YlBhZ2VQcm94eS5sb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcih1bmlxdWVMb2dJZGVu
dGlmaWVyKCkpCit7CisgICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgKnRoaXMpOworfQor
CitSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojp+UmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eSgpCit7CisgICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSk7
Cit9CisKKwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGlu
YXRlU2Vla1RvKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNv
cmU6OkV4Y2VwdGlvbkRhdGEmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGlk
ZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgdGlt
ZSk7CisKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+c2Vla1RvKHRpbWUsIFtpZGVudGlmaWVy
XSAoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Cisg
ICAgICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgImNvbXBsZXRpb24iKTsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICB9KTsKK30KKwordm9pZCBS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRlUGxheShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAg
IEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+cGxh
eShbaWRlbnRpZmllcl0gKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmJiBleGNlcHRpb24p
IG11dGFibGUgeworICAgICAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIsICJjb21wbGV0aW9uIik7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgfSk7
Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0
ZVBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IExPR0lE
RU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyKTsKKworICAgIG1fcHJpdmF0ZUNv
b3JkaW5hdG9yLT5wYXVzZShbaWRlbnRpZmllcl0gKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRh
dGEmJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIs
ICJjb21wbGV0aW9uIik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0
aW9uKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eTo6Ojpjb29yZGluYXRlU2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKKyAgICBB
TFdBWVNfTE9HKGlkZW50aWZpZXIpOworCisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnNldFRy
YWNrKHRyYWNrLCBbaWRlbnRpZmllcl0gKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmJiBl
eGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIsICJjb21w
bGV0aW9uIik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6
cG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRl
PiBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIG1fcHJpdmF0
ZUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZChzdGF0ZSk7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChz
dGF0ZSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6cmVh
ZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5yZWFkeVN0
YXRlQ2hhbmdlZChzdGF0ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ2NGJkMWFlNjU2ZDZmZmM1MzVjYjM2ZDQzZjBi
N2EzZmY4ODk3NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaApAQCAtMCwwICsxLDc5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKKworI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVBy
b3h5LmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworc3RydWN0IEV4Y2VwdGlvbkRhdGE7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlUHJveHk+JiYpOworICAgIH5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5KCk7CisKKyAgICB2b2lkIHNlZWtUbyhkb3VibGUpOworICAgIHZvaWQgcGxheSgpOworICAg
IHZvaWQgcGF1c2UoKTsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYpOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoV2Vi
UGFnZVByb3h5JiwgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiYmKTsK
KworICAgIHVzaW5nIENvb3JkaW5hdGVDb21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPjsKKworICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBSZWNlaXZlcnMuCisgICAg
dm9pZCBjb29yZGluYXRlU2Vla1RvKGRvdWJsZSwgQ29vcmRpbmF0ZUNvbXBsZXRpb25IYW5kbGVy
JiYpOworICAgIHZvaWQgY29vcmRpbmF0ZVBsYXkoQ29vcmRpbmF0ZUNvbXBsZXRpb25IYW5kbGVy
JiYpOworICAgIHZvaWQgY29vcmRpbmF0ZVBhdXNlKENvb3JkaW5hdGVDb21wbGV0aW9uSGFuZGxl
ciYmKTsKKyAgICB2b2lkIGNvb3JkaW5hdGVTZXRUcmFjayhjb25zdCBTdHJpbmcmLCBDb29yZGlu
YXRlQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChP
cHRpb25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+KTsKKyAgICB2b2lkIHJlYWR5U3Rh
dGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpOworICAgIHZvaWQgcGxh
eWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CisK
KyAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFnZVByb3h5OworICAgIFJlZjxNZWRpYVNlc3Npb25D
b29yZGluYXRvclByaXZhdGVQcm94eT4gbV9wcml2YXRlQ29vcmRpbmF0b3I7CisgICAgUmVmPGNv
bnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmYWVhN2Y4OTFiOGU4YjcxOTc5YWQ1NjdkM2U1
ODgxNzMxY2Y1NjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsNDQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
IyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjLworCisj
aWYgRU5BQkxFKFdFQl9BVVRITikKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKKworICAgIENvb3JkaW5hdGVTZWVrVG8oZG91
YmxlIHRpbWUpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5
bmMKKworICAgIENvb3JkaW5hdGVQbGF5KCkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+IGVycm9yKSBBc3luYworCisgICAgQ29vcmRpbmF0ZVBhdXNlKCkgLT4gKE9wdGlvbmFs
PFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKSBBc3luYworCisgICAgQ29vcmRpbmF0ZVNl
dFRyYWNrKFN0cmluZyB0cmFja0lkZW50aWZpZXIpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpFeGNl
cHRpb25EYXRhPiBlcnJvcikgQXN5bmMKKworICAgIFBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlv
bmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0ZT4gc3RhdGUpOworCisgICAgUmVhZHlTdGF0
ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3Rh
dGUpOworCisgICAgUGxheWJhY2tTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDk5YjM0NjA5ODcxZGRmYWNkOTY3ZGI5
NzZhNjY0ZDE2MDM4ZTE3YWIuLmQ1ZTQ0MmQ4N2M4MWQ4NTljYTEyMjU2Y2M5NzJkNDU4OTJjMGRj
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjk2LDYg
KzI5NiwxMSBAQAogI2luY2x1ZGUgIldlYkRhdGVUaW1lUGlja2VyLmgiCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorI2luY2x1ZGUgIk1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eS5oIgorI2VuZGlmCisKIC8vIFRoaXMgY29udHJvbHMgd2hhdCBzdHJh
dGVneSB3ZSB1c2UgZm9yIG1vdXNlIHdoZWVsIGNvYWxlc2NpbmcuCiAjZGVmaW5lIE1FUkdFX1dI
RUVMX0VWRU5UUyAxCiAKQEAgLTEwMzY4LDYgKzEwMzczLDI0IEBAIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5IFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94
RXh0ZW5zCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQordm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJiBwcml2YXRlQ29vcmRpbmF0b3Is
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vha1B0cjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFtX21lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkpOworCisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJQYWdlOjpDcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpLCBbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHByaXZhdGVDb29yZGluYXRvciA9IFdURk1vdmUocHJpdmF0
ZUNvb3JkaW5hdG9yKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKKworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8
ICFzdWNjZXNzKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgd2Vha1RoaXMtPm1fbWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eSA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6
OmNyZWF0ZSgqd2Vha1RoaXMsIFdURk1vdmUocHJpdmF0ZUNvb3JkaW5hdG9yKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKG1ha2VXZWFrUHRyKHdlYWtUaGlzLT5tX21lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHkuZ2V0KCkpKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiB2b2lkIFdlYlBhZ2VQcm94eTo6YXBwQm91bmROYXZpZ2F0aW9uRGF0YShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEFwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGEyY2JlOGFhODZiYjdlZjJlM2ZiODVkNTg1ODhjYzVjM2NiNWI2ZDIuLjVlMDMw
MGQyMzU1ZTAyMzU4YjBkY2QxNDE4ODVhNzQxN2QzNjc4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMjksMTAgKzMyOSwxMiBAQCBjbGFzcyBOYXRpdmVXZWJL
ZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIGNsYXNzIE5hdGl2ZVdl
YldoZWVsRXZlbnQ7CiBjbGFzcyBQYWdlQ2xpZW50OworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlUHJveHk7CiBjbGFzcyBQcm92aXNpb25hbFBhZ2VQcm94eTsKIGNsYXNzIFJl
bW90ZUxheWVyVHJlZUhvc3Q7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3Jt
YW5jZURhdGE7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKK2NsYXNzIFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OwogY2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXI7CkBAIC0xODg0LDYgKzE4ODYsMTAgQEAgcHVibGljOgog
ICAgIGJvb2wgY2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0OwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICB2b2lkIGNyZWF0
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGVQcm94eT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWFrUHRyPFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHk+KT4mJik7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIHZvaWQgc2V0TGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKICAgICB2b2lkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CkBAIC0yOTEzLDYgKzI5MTksMTAgQEAgcHJpdmF0ZToK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2Vy
PiBtX3NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI7CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBSZWZQdHI8UmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eT4gbV9tZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OworI2VuZGlmCisK
ICNpZiBVU0UoRElSRUNUMkQpCiAgICAgQ09NUHRyPElEM0QxMURldmljZTE+IG1fZGV2aWNlOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA3ZWZmNGYyNmUzMzUxMjJiMGY2ZWI1OWNiODAxNGMxMWJhZGUwZWVmLi5lNWNjZDJi
MGVkZGJjNTliZTAyMzY3MGUyOTczMGM4NTBjMjU3ZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsNyBAQAogCQkw
NzRFNzVGRTFERjIyMTE5MDBEMzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU3NUZCMURGMUZE
MTMwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovOyB9OwogCQkwNzZFODg0
RTFBMTNDQURGMDA1RTkwRkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkU4ODREMUExM0NBREYwMDVFOTBG
QyAvKiBBUElDb250ZXh0TWVudUNsaWVudC5oICovOyB9OwogCQkwNzcyODExRDIxMjM0RkY2MDBD
OEVGMkUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0MzE5QUY3QjI3MDAyRUJB
QjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi87IH07CisJCTA3N0JB
NTZFMjYwRTZEMUMwMDcyRjE5RiAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM2Qjc1NTI2
MEQwM0EwMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovOyB9
OwogCQkwNzkyMzE0ODIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3OTIzMTQyMjM5Q0JDQjUwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQkwNzkyMzE0QjIzOUNCQ0I4
MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMx
NDUyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMDc5MjMxNEMyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3OTIzMTQ2MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CkBAIC0yMzc2LDYgKzIz
NzcsMTIgQEAKIAkJMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRT
dG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUlkSGFzaFNh
bHRTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkEwMUMxODZB
REIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkExMUMxODZBREIwMDNGMDczNSAv
KiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzM2Qjc1MzI2MEQwMzlGMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzZCNzU0MjYw
RDAzOUYwMEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwNzM2Qjc1NTI2MEQwM0EwMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM2Qjc1QzI2
MEQ0QTRFMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3NUQyNjBENEE0RjAwRTA2OTk0
IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3NUUyNjBENEE1MDAwRTA2OTk0IC8qIFJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzQ0NzIwNTI1RTVCRDAyMDA1NEIyMzEgLyogTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzQ4NzlCNzIzNzNBOTA5MDBGNTY3OEUgLyogQXBwS2l0U29mdExpbmsu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQXBwS2l0U29mdExpbmsuaDsgcGF0aCA9IGlvcy9BcHBLaXRTb2Z0
TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ4NzlCODIzNzNBOTA5MDBG
NTY3OEUgLyogQXBwS2l0U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBBcHBLaXRT
b2Z0TGluay5tbTsgcGF0aCA9IGlvcy9BcHBLaXRTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzODUsNiArMjM5Miw3IEBACiAJCTA3NEU3NjAxMURGNzA3NUQwMEQz
MThFQyAvKiBNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RTg4NEQxQTEzQ0FERjAwNUU5MEZDIC8qIEFQSUNvbnRl
eHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUNvbnRl
eHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkU4ODRGMUEx
M0NCQzYwMDVFOTBGQyAvKiBBUElJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElJbmplY3RlZEJ1bmRsZVBhZ2VD
b250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzdCQTU3
MDI2MEU4RjYzMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8q
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzky
MzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3OTIzMTMyMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzk4LDYgKzI0MDYsMTIgQEAKIAkJ
MDc5NEI0QUYyNDQ1MkEyQzAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0E1RUJCOTFDN0JBNDNFMDBCOUNBNjkgLyogV0tGcmFtZUhhbmRsZVJlZi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ZyYW1lSGFuZGxlUmVm
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBNUVCQkExQzdCQTQzRTAwQjlD
QTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tGcmFtZUhhbmRsZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0E2
RTVFMzI2MEU0MTE0MDA5NTk0NzggLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDdBNkU1RTQyNjBFNDExNDAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDdBNkU1RTUyNjBFNDExNTAwOTU5NDc4IC8qIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDdBNkU1RTYyNjBFNDExNTAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3QTZFNUU3MjYwRTQxMTYwMDk1OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdBNkU1
RTgyNjBFNDExNjAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0IxRDA0QjIzRDM4RkNFMDAzOTlBNkUgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCM0I0NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJl
bW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJT
dGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0IzQjQ3NTIzQUQ4OTA0MDBC
QTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMjgsNiArNjA0MiwxNiBAQAogCQkJdGFiV2lkdGggPSA4Owog
CQkJdXNlc1RhYnMgPSAwOwogCQl9OworCQkwNzM2Qjc1MjI2MEQwMzlGMDBFMDY5OTQgLyogTWVk
aWFTZXNzaW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJ
CQkwNzM2Qjc1NTI2MEQwM0EwMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwICovLAorCQkJCTA3MzZCNzU0MjYwRDAzOUYwMEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oICovLAorCQkJCTA3MzZCNzUzMjYwRDAzOUYwMEUwNjk5NCAvKiBS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlw
YXRoID0gTWVkaWFTZXNzaW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
MDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTk2MDUsNiArOTYyOSw3IEBACiAJCQkJQkMyMDRFREYx
MUM4M0U3MjAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlICovLAogCQkJCTkxRDk3MEUwMjNEQTZG
QjEwMDU3REJDMyAvKiBJbnNwZWN0b3IgKi8sCiAJCQkJMzNEM0EzQkQxMzM5NjA5ODAwNzA5QkU0
IC8qIE1lZGlhQ2FjaGUgKi8sCisJCQkJMDczNkI3NTIyNjBEMDM5RjAwRTA2OTk0IC8qIE1lZGlh
U2Vzc2lvbiAqLywKIAkJCQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0g
Ki8sCiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEw
OTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLApAQCAtMTA5
ODEsNiArMTEwMDYsMTIgQEAKIAkJCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFENEQ3MzZD
MjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgg
Ki8sCiAJCQkJMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJMDdBNkU1RTQyNjBFNDExNDAwOTU5NDc4
IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
KwkJCQkwN0E2RTVFNzI2MEU0MTE2MDA5NTk0NzggLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JNZXNzYWdlcy5oICovLAorCQkJCTA3QTZFNUU2MjYwRTQxMTUwMDk1OTQ3OCAvKiBSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTA3QTZF
NUUzMjYwRTQxMTQwMDk1OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkwN0E2RTVFNTI2MEU0MTE1MDA5NTk0NzggLyog
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMDdB
NkU1RTgyNjBFNDExNjAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkxREQyQTY2MjI1NjEyMkYxMDBGRjdCNkYgLyog
UmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUREMkE2
NjAyNTYxMjJGMTAwRkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlcy5oICov
LAogCQkJCTFERDJBNjYxMjU2MTIyRjEwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMTIyMSw4ICsxMTI1MiwxMiBAQAogCQkJCUNENDU3
MEREMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
LmNwcCAqLywKIAkJCQlDRDQ1NzBEQjI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eS5oICovLAogCQkJCUNENDU3MERDMjQ0NENBNTgwMEEzRENFQiAv
KiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJ
CTA3N0JBNTcwMjYwRThGNjMwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGVQcm94eS5oICovLAogCQkJCTA3OTRCNEFFMjQ0NTI0QjAwMDAxQjlDNCAvKiBNZWRpYVVzYWdl
TWFuYWdlci5jcHAgKi8sCiAJCQkJMDc5NEI0QUMyNDQ1MUJCOTAwMDFCOUM0IC8qIE1lZGlhVXNh
Z2VNYW5hZ2VyLmggKi8sCisJCQkJMDczNkI3NUMyNjBENEE0RTAwRTA2OTk0IC8qIFJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwICovLAorCQkJCTA3MzZCNzVFMjYwRDRBNTAw
MEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmggKi8sCisJCQkJ
MDczNkI3NUQyNjBENEE0RjAwRTA2OTk0IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IE1lZGlhOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEzOTM2LDYgKzEzOTcxLDcgQEAKIAkJCQkwNzAxNzg5RTIz
QkU5Q0ZDMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3MUJDNThGMjNDRTFFQUEwMDY4MEQ3QyAvKiBSZW1vdGVNZWRpYVBs
YXllclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFENEQ3Mzcw
MjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzdCQTU2RTI2MEU2RDFDMDA3MkYxOUYgLyog
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMURE
MkE2NjMyNTYxMjQ2RjAwRkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDMTMzODUxODU5MEM0NjAwRjNFQzA1IC8q
IFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEODI1MkUyMjVENDkxOTEwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVu
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmNmY0NTQ3MGVkZTdhZjQ2NmYz
YzhlMGQzMTY3YmEyOTVlMmQwOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApA
QCAtMCwwICsxLDE5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3
dGYvTG9nZ2VySGVscGVyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK1JlZjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKHBhZ2UpKTsKK30KKworUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5pZGVudGlmaWVyKCks
ICp0aGlzKTsKK30KKworUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6On5SZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKK30KKwordm9p
ZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYgY2Fs
bGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1l
KTsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5OjpDb29yZGluYXRlU2Vla1RvIHsgdGltZSB9LCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0
byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAg
ICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4
Y2VwdGlvbi0+bWVzc2FnZSkgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBjYWxsYmFjayh7IH0pOworICAgIH0sIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lG
X1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OkNvb3JkaW5hdGVQ
bGF5IHsgfSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXdl
YWtUaGlzKSB7CisgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChl
eGNlcHRpb24pIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+
Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAgICB9LCAwKTsKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmIGNhbGxiYWNrKQorewor
ICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9wYWdlLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eTo6Q29vcmRpbmF0ZVBhdXNlIHsgfSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyks
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUg
eworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKEV4Y2Vw
dGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY2FsbGJhY2soeyB9KTsK
KyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0
VHJhY2soY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBB
TFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fcGFnZS5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6
OkNvb3JkaW5hdGVTZXRUcmFjayB7IHRyYWNrSWRlbnRpZmllciB9LCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNh
bGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAg
Y2FsbGJhY2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+
bWVzc2FnZSkgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBj
YWxsYmFjayh7IH0pOworICAgIH0sIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBv
c2l0aW9uU3RhdGU+IHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURF
TlRJRklFUik7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHk6OlBvc2l0aW9uU3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSwgMCk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19J
Rl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlYWR5U3RhdGVDaGFuZ2Vk
IHsgc3RhdGUgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUg
c3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0
ZSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHk6OlBsYXliYWNrU3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSwgMCk7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSB0
aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7CisgICAg
aWYgKGF1dG8gY29vcmRpbmF0b3JDbGllbnQgPSBjbGllbnQoKSkKKyAgICAgICAgY29vcmRpbmF0
b3JDbGllbnQtPnNlZWtTZXNzaW9uVG9UaW1lKHRpbWUsIFdURk1vdmUoKGNvbXBsZXRpb25IYW5k
bGVyKSkpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5U2Vzc2lvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFMV0FZ
U19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgaWYgKGF1dG8gY29vcmRpbmF0
b3JDbGllbnQgPSBjbGllbnQoKSkKKyAgICAgICAgY29vcmRpbmF0b3JDbGllbnQtPnBsYXlTZXNz
aW9uKFdURk1vdmUoKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGVsc2UKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpwYXVzZVNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJ
RVIpOworICAgIGlmIChhdXRvIGNvb3JkaW5hdG9yQ2xpZW50ID0gY2xpZW50KCkpCisgICAgICAg
IGNvb3JkaW5hdG9yQ2xpZW50LT5wYXVzZVNlc3Npb24oV1RGTW92ZSgoY29tcGxldGlvbkhhbmRs
ZXIpKSk7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFNlc3Npb25UcmFjayhjb25z
dCBTdHJpbmcmIHRyYWNrSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lE
RU5USUZJRVIsIHRyYWNrSWRlbnRpZmllcik7CisgICAgaWYgKGF1dG8gY29vcmRpbmF0b3JDbGll
bnQgPSBjbGllbnQoKSkKKyAgICAgICAgY29vcmRpbmF0b3JDbGllbnQtPnNldFNlc3Npb25UcmFj
ayh0cmFja0lkZW50aWZpZXIsIFdURk1vdmUoKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGVs
c2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCitXVEZMb2dDaGFubmVs
JiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIExvZ01lZGlhOworfQorCisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg0OGQ3YTc0NTcyM2Q2OWFhNTJjNTZhZDU1ZjQ2ZmJmMDdjZDVlNzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9u
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK2Ns
YXNzIE1lc3NhZ2VSZWNlaXZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlBhZ2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSAsIHB1YmxpYyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFdl
YlBhZ2UmKTsKKyAgICB+UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKKworcHJpdmF0
ZToKKyAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihXZWJQYWdlJik7
CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVz
c2FnZVJlY2VpdmVycy4KKyAgICB2b2lkIHNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBwbGF5U2Vzc2lvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNldFNlc3Npb25UcmFjayhjb25z
dCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKworICAgIC8vIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSBvdmVycmlkZXMuCisgICAgdm9pZCBzZWVrVG8o
ZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlv
bj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcGF1c2Uo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYm
KSBmaW5hbDsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CisKKyAg
ICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRp
b25TdGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdl
ZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKKworICAgIGNvbnN0
IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvciI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Q7CisK
KyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Np
b24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmQ2YTFjMmQwMmRkNmZhOTY2OWQyMDgxNzhhYTBlOTg1OGRjYzA2ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yIE5vdFJlZkNvdW50ZWQgeworCisgICAgc2Vla1Nlc3Npb25Ub1RpbWUoZG91
YmxlIHRpbWUpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKworICAgIHBsYXlTZXNzaW9uKCkgLT4g
KGJvb2wgcmVzdWx0KSBBc3luYworCisgICAgcGF1c2VTZXNzaW9uKCkgLT4gKGJvb2wgcmVzdWx0
KSBBc3luYworCisgICAgc2V0U2Vzc2lvblRyYWNrKFN0cmluZyB0cmFja0lkZW50aWZpZXIpIC0+
IChib29sIHJlc3VsdCkgQXN5bmMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDg0ZDA3ODgwMjc5ZGRhOWFiYmRjNzAxZTk1
NzcxN2Y3MWQ1NzRhZDkuLmYxZjkzOGViNWJjZjdjOGU1YmVlNjViZmExNmQxOTc3NTY3NGQ5ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0z
NTgsNiArMzU4LDEyIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQu
aD4KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisjaW5j
bHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0b3JN
ZWRpYVNlc3Npb24uaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgIldl
YlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0lPUy5oIgogI2VuZGlmCkBAIC03MzgwLDYgKzczODYs
MjUgQEAgdm9pZCBXZWJQYWdlOjpyZXN0b3JlQXBwSGlnaGxpZ2h0cyhjb25zdCBWZWN0b3I8U2hh
cmVkTWVtb3J5OjpJUENIYW5kbGU+JiYgbWVtb3IKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCit2b2lkIFdlYlBhZ2U6OmNyZWF0ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgYXV0byogZG9jdW1lbnQgPSBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCkt
PmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmRvbVdpbmRvdygp
KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8mIHNlc3Npb24gPSBOYXZpZ2F0b3JNZWRpYVNlc3Npb246Om1lZGlh
U2Vzc2lvbihkb2N1bWVudC0+ZG9tV2luZG93KCktPm5hdmlnYXRvcigpKTsKKyAgICBhdXRvIGNv
b3JkaW5hdG9yID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZSgqdGhpcyk7
CisgICAgbV9yZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvciA9IGNvb3JkaW5hdG9yLnB0cigp
OworICAgIG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgPSBNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6Y3JlYXRlKGNvb3JkaW5hdG9yLmdldCgpKTsKKyAgICBzZXNzaW9uLnNldENvb3JkaW5hdG9y
KG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuZ2V0KCkpOworCisgICAgY29tcGxldGlvbkhhbmRs
ZXIodHJ1ZSk7Cit9CisjZW5kaWYKKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgV2ViUGFn
ZTo6Y29uc3VtZU5ldHdvcmtFeHRlbnNpb25TYW5kYm94RXh0ZW5zaW9ucyhjb25zdCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggNzNmMmQ5OWQ3YTYxYTZiMGZiN2YzNDY2ZTY3ODZhNjkyNTBm
OWE1NS4uYzU0YTYxOGRiNDZhMTJkZTAxYTU4NjM0NmE2NmU5MTdmNzRjYTJkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTkwLDYgKzE5MCw3IEBA
IGNsYXNzIEludFBvaW50OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0OwogY2xhc3MgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQ
bHVnaW5zQ2FsbGJhY2s7CitjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKIGNsYXNzIFBh
Z2U7CiBjbGFzcyBQcmludENvbnRleHQ7CiBjbGFzcyBSYW5nZTsKQEAgLTI1NSw2ICsyNTYsNyBA
QCBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQREZQ
bHVnaW47CiBjbGFzcyBQYWdlQmFubmVyOwogY2xhc3MgUGx1Z2luVmlldzsKK2NsYXNzIFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OwogY2xhc3MgUmVtb3RlV2ViSW5zcGVjdG9yVUk7CiBjbGFzcyBUZXh0Q2hlY2tpbmdDb250
cm9sbGVyUHJveHk7CkBAIC0xNDEwLDYgKzE0MTIsMTAgQEAgcHVibGljOgogICAgIGJvb2wgc2hv
dWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0cmluZ1ZpZXcgcGF0
aCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQorICAgIHZvaWQgY3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisjZW5kaWYKKwogICAgIHZvaWQgc2V0TGFzdE5hdmlnYXRpb25X
YXNBcHBCb3VuZChib29sIHdhc0FwcEJvdW5kKSB7IG1fbGFzdE5hdmlnYXRpb25XYXNBcHBCb3Vu
ZCA9IHdhc0FwcEJvdW5kOyB9CiAgICAgdm9pZCBsYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCkBAIC0yMjUxLDYgKzIyNTcsMTEgQEAg
cHJpdmF0ZToKICAgICB1aW50NjRfdCBtX3Zpc2l0ZWRMaW5rVGFibGVJRDsKICNlbmRpZgogCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgUmVmUHRyPFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworICAg
IFJlZlB0cjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9yZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvcjsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA3MmVkODFiYTEyMmY1ODU1M2Ew
Mzk0NjhmY2MyODMxMTk5ZTA1ZDExLi5jOGU2NDZhZWRlYmM0YWExMjBhM2FiZTlkYWQ3NjE4MWU0
MTlkYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KQEAgLTYzNCw2ICs2MzQsMTAgQEAgR2VuZXJhdGVTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZFR5cGUKIAogICAgIExhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoKSAtPiAoYm9vbCB3YXNBcHBC
b3VuZCkgQXN5bmMKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAg
IENyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMK
KyNlbmRpZgorCiAjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAgICAgVXBkYXRlV2l0aElt
YWdlRXh0cmFjdGlvblJlc3VsdChzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0
IHJlc3VsdCwgc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGVsZW1lbnQsIFdlYkNvcmU6
OkZsb2F0UG9pbnQgbG9jYXRpb24pIC0+IChib29sIHRleHRFeGlzdHNBdExvY2F0aW9uKSBBc3lu
YwogI2VuZGlmCg==
</data>
<flag name="commit-queue"
          id="444207"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424510</attachid>
            <date>2021-03-28 15:06:30 -0700</date>
            <delta_ts>2021-03-29 11:10:24 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-223854-20210328150629.patch</filename>
            <type>text/plain</type>
            <size>115516</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI2ZDQwZTBjMTA2NjRm
YjgzZDQyOWIwM2E2ODgzNzdjZTM3NjAwYS4uYzIzZjBkOTZiYjhkODgwMmNmYmUwODFjNDI1NzU0
M2JiZDc4ZjZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIxLTAzLTI4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRk
IHJlbW90ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
NTkzNDY1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUG9zaXRpb25TdGF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQb3NpdGlvblN0YXRlOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQWN0aW9uSGFuZGxlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1Nlc3Npb25Ub1RpbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXlTZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZVNlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFNlc3Npb25UcmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6aW50ZXJuYWxT
ZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmludGVy
bmFsUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6aW50
ZXJuYWxQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
aW50ZXJuYWxTZXRUcmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmguCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU6OnNldExvZ2dlcik6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2
YXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlOjpsb2dnZXJQdHIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZTo6Y2xpZW50IGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBs
YXliYWNrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6bG9nQ2xhc3NOYW1lIGNvbnN0KToKKwogMjAyMS0wMy0yNCAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBF
eHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAxMzU0ZDUx
MzEzZGM3YTJhNWQ2ZmUzMmRhNzBhZGRkNGFlYWY2ZDguLjJkZTQ1MjFiY2U0ZGVlNjczOTk1Y2Iw
YTljNDIyMzdlZDRjZDc1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjEtMDMtMjgg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09T
XSBBZGQgcmVtb3RlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NTQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc1OTM0NjUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZVByb3h5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEv
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6flJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5Ojpjb29yZGluYXRlU2Vla1RvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0ZVBsYXkpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRlUGF1c2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojo6OmNvb3Jk
aW5hdGVTZXRUcmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHk6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6cGxheWJhY2tTdGF0ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpyZWFk
eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHkuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lv
bi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OlJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6On5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzZWVrU2Vzc2lvblRvVGltZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5U2Vzc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZVNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0U2Vzc2lvblRyYWNr
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0No
YW5uZWwgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVk
aWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25S
ZWFkeVN0YXRlLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wMy0yNCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgRGlzcGxheUxp
bmsgbG9nIGNoYW5uZWxzIGluIFdlYkNvcmUgYW5kIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaAppbmRl
eCAxODQzZTc0NDZmZjhjNTkyODhhOGIyOGVkYjBmMmIyYzFjODQ4ZGZhLi40NmM4OTIzMjYyZTgz
YzRkNGFiY2ViZTgzY2QyODkxZjMwMGU1MWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaApAQCAtMzMsOCAr
MzMsMzMgQEAgc3RydWN0IE1lZGlhUG9zaXRpb25TdGF0ZSB7CiAgICAgZG91YmxlIGR1cmF0aW9u
ID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOwogICAgIGRvdWJsZSBw
bGF5YmFja1JhdGUgPSAxOwogICAgIGRvdWJsZSBwb3NpdGlvbiA9IDA7CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gZGVj
b2RlKERlY29kZXImKTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+IGlubGluZSB2b2lk
IE1lZGlhUG9zaXRpb25TdGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBkdXJhdGlvbiA8PCBwbGF5YmFja1JhdGUgPDwgcG9zaXRpb247Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3Rh
dGU+IE1lZGlhUG9zaXRpb25TdGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
ZG91YmxlIGR1cmF0aW9uOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZHVyYXRpb24pKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgZG91YmxlIHBsYXliYWNrUmF0ZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBsYXliYWNrUmF0ZSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBk
b3VibGUgcG9zaXRpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbikpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gTWVkaWFQb3NpdGlvblN0YXRlIHsgV1RGTW92
ZShkdXJhdGlvbiksIFdURk1vdmUocGxheWJhY2tSYXRlKSwgV1RGTW92ZShwb3NpdGlvbikgfTsK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCBl
OGE5Y2FlZWFkNDYxY2I4OTYwN2MzNGMzMThiYTI0YTNiZDQwMTU3Li5lMGM1YjNhM2FhMWVjY2Mw
OGVhMzM2ZWI3OTNlZmVhYTFhN2NkYTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAgLTMwLDYgKzMwLDkgQEAKIAog
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRl
ICJKU01lZGlhUG9zaXRpb25TdGF0ZS5oIgorI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uQWN0aW9u
LmgiCisjaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhTWV0YWRhdGEuaCIKICNpbmNsdWRlICJNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uaAppbmRleCA4ZDA1MDdjZjA5OTBmZDU1YzUxYzdkMWE5N2Q4
YjVkMTljZDhjM2FjLi41NTVhYjdhMDEwMjNkZTIxZjM4ZTIyNTFkODY4ODFlZmY4MDJjODI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uaApAQCAtMzAsOSArMzAsNiBAQAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRR
dWV1ZS5oIgotI2luY2x1ZGUgIkpTTWVkaWFQb3NpdGlvblN0YXRlLmgiCi0jaW5jbHVkZSAiSlNN
ZWRpYVNlc3Npb25BY3Rpb24uaCIKLSNpbmNsdWRlICJKU01lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGUuaCIKICNpbmNsdWRlICJNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJNZWRpYVNl
c3Npb25BY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmgiCkBA
IC0xNTUsNiArMTUyLDkgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAorU3RyaW5nIGNvbnZlcnRF
bnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOworU3RyaW5nIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhU2Vzc2lvbkFjdGlvbik7CisKIH0KIAogbmFt
ZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmgKaW5kZXggYWViNjI0YWE4
ZTExNzdhMTY2ZjFiMzdhMjViNTc5NGRlNGQwYTZkYy4uZGY4MDM2MjRkZjgwM2NhZmFiNjczYjRh
ZWQ0OWVmMmE2ZTcyY2VlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaApAQCAtMjks
NyArMjksNiBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKICNpbmNsdWRlICJD
YWxsYmFja1Jlc3VsdC5oIgotI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5o
IgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAKaW5kZXggMWRmNGU5MjE1NWYxYWMwMTVlNmM1MTc0ZDRiZWY2NDgxZTU5MzU2
Ny4uODExM2VkMmEzMTUwMGUyYWI0Y2MzM2E5OTE3ZmQ4ZWM4OTExNGFjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMzIsNyArMzIsOCBAQAogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU2Vz
c2lvbi5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNp
bmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYv
TG9nZ2VyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsMTkgKzQzLDIwIEBAIHN0
YXRpYyBjb25zdCB2b2lkKiBuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKCkKICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsKIH0KIAot
UmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3Jl
YXRlKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmIHBsYXRmb3JtQ29vcmRp
bmF0b3IpCitSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpjcmVhdGUoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJiBwcml2YXRl
Q29vcmRpbmF0b3IpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoV1RGTW92ZShwbGF0Zm9ybUNvb3JkaW5hdG9yKSkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFdURk1vdmUocHJpdmF0ZUNvb3JkaW5h
dG9yKSkpOwogfQogCi1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29y
ZGluYXRvcikKLSAgICA6IG1fcGxhdGZvcm1Db29yZGluYXRvcihXVEZNb3ZlKHBsYXRmb3JtQ29v
cmRpbmF0b3IpKQorTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+JiYgcHJpdmF0ZUNvb3JkaW5h
dG9yKQorICAgIDogbV9wcml2YXRlQ29vcmRpbmF0b3IoV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0
b3IpKQogICAgICwgbV9sb2dnZXIobWFrZVJlZihEb2N1bWVudDo6c2hhcmVkTG9nZ2VyKCkpKQog
ICAgICwgbV9sb2dJZGVudGlmaWVyKG5leHRDb29yZGluYXRvckxvZ0lkZW50aWZpZXIoKSkKIHsK
ICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogCi0gICAgbV9wbGF0Zm9ybUNvb3JkaW5h
dG9yLT5zZXRMb2dnZXIobV9sb2dnZXIuY29weVJlZigpLCBtX2xvZ0lkZW50aWZpZXIpOworICAg
IG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZXRMb2dnZXIobV9sb2dnZXIuY29weVJlZigpLCBtX2xv
Z0lkZW50aWZpZXIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZXRDbGllbnQobWFrZVdl
YWtQdHIodGhpcykpOwogfQogCiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6fk1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OwpAQCAtNzAsNyArNzIsNyBAQCB2b2lkIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHBybwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wbGF0Zm9ybUNvb3Jk
aW5hdG9yLT5zZWVrVG8odGltZSwgW3RpbWUsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0
aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxF
eGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICBtX3ByaXZhdGVDb29yZGluYXRv
ci0+c2Vla1RvKHRpbWUsIFt0aW1lLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyks
IGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0
aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+
bV9zZXNzaW9uKSB7CiAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTgyLDEzICs4NCw5IEBA
IHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgewotICAgICAgICAg
ICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAotICAgICAgICAgICAgLnNl
ZWtUaW1lID0gdGltZSwKLSAgICAgICAgfTsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zZXNz
aW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKLQogICAgICAgICAvLyBGSVhNRTogc2hv
dWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3NlZWtU
bycgYWN0aW9uIGhhbmRsZXI/CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmludGVybmFsU2Vla1Rv
KHRpbWUpOworCiAgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwogICAgIH0pOwogfQpAQCAtMTA0
LDcgKzEwMiw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fcGxhdGZvcm1Db29yZGluYXRvci0+cGxheShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
KnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFs
PEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgIG1fcHJpdmF0ZUNvb3JkaW5h
dG9yLT5wbGF5KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7
CiAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExNiwxMiArMTE0LDkgQEAgdm9pZCBNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgTWVkaWFTZXNz
aW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKLSAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNl
c3Npb25BY3Rpb246OlBsYXksCi0gICAgICAgIH07Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
c2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7Ci0KICAgICAgICAgLy8gRklYTUU6
IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdw
bGF5JyBhY3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+aW50ZXJuYWxQbGF5
KCk7CisKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgfSk7CiB9CkBAIC0xMzcsNyAr
MTMyLDcgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
cGxhdGZvcm1Db29yZGluYXRvci0+cGF1c2UoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0
aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxF
eGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICBtX3ByaXZhdGVDb29yZGluYXRv
ci0+cGF1c2UoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0
aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsK
ICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTQ5LDEyICsxNDQsOSBAQCB2b2lkIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgTWVkaWFTZXNz
aW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKLSAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNl
c3Npb25BY3Rpb246OlBhdXNlLAotICAgICAgICB9OwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5t
X3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOwotCiAgICAgICAgIC8vIEZJWE1F
OiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAn
cGF1c2UnIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5pbnRlcm5hbFBh
dXNlKCk7CisKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgfSk7CiB9CkBAIC0xNzAs
NyArMTYyLDcgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3Qg
U3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVkPHYKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2V0VHJhY2sodHJhY2ssIFt0cmFjaywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFi
bGUgeworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CiAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTE4MiwxMyArMTc0LDkgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVk
PHYKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMgZGV0YWlscyB7Ci0gICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNz
aW9uQWN0aW9uOjpTZXR0cmFjaywKLSAgICAgICAgICAgIC50cmFja0lkZW50aWZpZXIgPSB0cmFj
aywKLSAgICAgICAgfTsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uLT5jYWxsQWN0
aW9uSGFuZGxlcihkZXRhaWxzKTsKLQogICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBwcm9t
aXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3NldFRyYWNrJyBhY3Rpb24g
aGFuZGxlcj8KKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+aW50ZXJuYWxTZXRUcmFjayh0cmFjayk7
CisKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgfSk7CiB9CkBAIC0yMDUsMzEgKzE5
Myw5NSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRNZWRpYVNlc3Npb24oTWVk
aWFTZXNzaW9uKiBzZXNzaW9uKQogdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRp
b25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiBzdGF0ZSkKIHsKICAg
ICBpZiAoIXN0YXRlKSB7Ci0gICAgICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cG9zaXRpb25T
dGF0ZUNoYW5nZWQoeyB9KTsKKyAgICAgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBvc2l0aW9u
U3RhdGVDaGFuZ2VkKHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3BsYXRm
b3JtQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6Ok1lZGlhUG9zaXRpb25TdGF0ZSB7IHN0YXRlLT5kdXJhdGlvbiwgc3RhdGUt
PnBsYXliYWNrUmF0ZSwgc3RhdGUtPnBvc2l0aW9uIH0pOworICAgIG1fcHJpdmF0ZUNvb3JkaW5h
dG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZChNZWRpYVBvc2l0aW9uU3RhdGUgeyBzdGF0ZS0+ZHVy
YXRpb24sIHN0YXRlLT5wbGF5YmFja1JhdGUsIHN0YXRlLT5wb3NpdGlvbiB9KTsKIH0KIAogdm9p
ZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpID09IHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSBpcyBu
b3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZTo6Tm9uZSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
dWludDhfdD4oTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkKSA9PSBzdGF0aWNfY2Fz
dDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlOjpQYXVzZWQpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2Vk
IGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlOjpQYXVzZWQgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpID09IHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZTo6UGxheWluZyBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBhcyBleHBlY3RlZCIpOwotCi0gICAgbV9wbGF0
Zm9ybUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlPihzdGF0
ZSkpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChzdGF0
ZSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2Vk
KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCiB7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZykgPT0g
c3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZU5vdGhpbmcgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIGFzIGV4cGVjdGVkIik7Ci0gICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlTWV0YWRhdGEpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSksICJNZWRp
YVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSBhcyBl
eHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlQ3VycmVudERhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnRE
YXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1
cmVEYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSksICJNZWRpYVNl
c3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgYXMg
ZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlh
U2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlRW5vdWdoRGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0
YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEgYXMgZXhwZWN0ZWQiKTsKKyAgICBtX3ByaXZhdGVDb29y
ZGluYXRvci0+cmVhZHlTdGF0ZUNoYW5nZWQoc3RhdGUpOworfQorCit2b2lkIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpzZWVrU2Vzc2lvblRvVGltZShkb3VibGUgdGltZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9u
SGFuZGxlcihpbnRlcm5hbFNlZWtUbyh0aW1lKSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnBsYXlTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoaW50ZXJuYWxQbGF5KCkp
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZVNlc3Npb24oQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4gY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxl
dGlvbkhhbmRsZXIoaW50ZXJuYWxQYXVzZSgpKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2V0U2Vzc2lvblRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2ssIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25I
YW5kbGVyKGludGVybmFsU2V0VHJhY2sodHJhY2spKTsKK30KKworYm9vbCBNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6aW50ZXJuYWxTZWVrVG8oZG91YmxlIHRpbWUpCit7CisgICAgaWYgKCFtX3Nl
c3Npb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRl
dGFpbHMgZGV0YWlscyB7CisgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNl
ZWt0bywKKyAgICAgICAgLnNlZWtUaW1lID0gdGltZSwKKyAgICB9OworICAgIG1fc2Vzc2lvbi0+
Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6aW50ZXJuYWxQbGF5KCkKK3sKKyAgICBpZiAoIW1f
c2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6
UGxheSwKKyAgICB9OworICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7
CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
aW50ZXJuYWxQYXVzZSgpCit7CisgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAg
IC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlLAorICAgIH07CisgICAgbV9zZXNz
aW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgIHJldHVybiB0cnVlOworfQor
Citib29sIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjppbnRlcm5hbFNldFRyYWNrKGNvbnN0IFN0
cmluZyYgdHJhY2spCit7CisgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgIC5h
Y3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNldHRyYWNrLAorICAgICAgICAudHJhY2tJZGVu
dGlmaWVyID0gdHJhY2ssCisgICAgfTsKKyAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVy
KGRldGFpbHMpOwogCi0gICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5yZWFkeVN0YXRlQ2hhbmdl
ZChzdGF0aWNfY2FzdDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlPihzdGF0ZSkpOworICAgIHJldHVybiB0cnVlOwogfQogCiBXVEZMb2dDaGFu
bmVsJiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaAppbmRleCAyNDdjZWM4ODBiMzUzZjQ2YmNiZDg3MGZmNWRiYzE5MmM5OTk3Yzky
Li5lOTFmNjNlMmI0MDFlMzJkMTA4NDM1OTUxNDQzODBmNjMwOGIzOTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQogCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCisjaW5jbHVkZSAi
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4K
QEAgLTM1LDEyICszNywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKLWNsYXNzIFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I7Ci1jbGFzcyBNZWRpYVNlc3Npb247Ci0KLWNsYXNzIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
LCBwdWJsaWMgTWVkaWFTZXNzaW9uOjpPYnNlcnZlciB7CitjbGFzcyBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcgorICAgIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
CisgICAgLCBwdWJsaWMgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQKKyAgICAsIHB1Ymxp
YyBNZWRpYVNlc3Npb246Ok9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoUmVmPFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IoKTsKIAogICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOwpAQCAtNTAsMTMgKzUyLDI3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWVkaWFTZXNz
aW9uKE1lZGlhU2Vzc2lvbiopOwogCisgICAgdXNpbmcgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JD
bGllbnQ6OndlYWtQdHJGYWN0b3J5OworICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBNZWRpYVNl
c3Npb25Db29yZGluYXRvckNsaWVudDo6V2Vha1ZhbHVlVHlwZTsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlPiYmKTsKKwogICAgIC8vIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2ZXIKICAgICB2b2lk
IHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIGZpbmFs
OwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSkgZmluYWw7CiAgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0
YXRlKSBmaW5hbDsKIAotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7CisgICAgLy8gTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQKKyAgICB2b2lkIHNlZWtTZXNzaW9uVG9UaW1lKGRv
dWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBw
bGF5U2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2
b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPikgZmluYWw7Cisg
ICAgdm9pZCBzZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4pIGZpbmFsOworCisgICAgYm9vbCBpbnRlcm5hbFNlZWtUbyhkb3VibGUpOwor
ICAgIGJvb2wgaW50ZXJuYWxQbGF5KCk7CisgICAgYm9vbCBpbnRlcm5hbFBhdXNlKCk7CisgICAg
Ym9vbCBpbnRlcm5hbFNldFRyYWNrKGNvbnN0IFN0cmluZyYpOwogCiAgICAgY29uc3QgTG9nZ2Vy
JiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlcjsgfQogICAgIGNvbnN0IHZvaWQqIGxv
Z0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KQEAgLTY0LDE0
ICs4MCw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgp
IHsgcmV0dXJuICJNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KIAogICAgIFdlYWtQdHI8TWVk
aWFTZXNzaW9uPiBtX3Nlc3Npb247Ci0gICAgUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I+IG1fcGxhdGZvcm1Db29yZGluYXRvcjsKKyAgICBSZWY8TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlPiBtX3ByaXZhdGVDb29yZGluYXRvcjsKICAgICBSZWY8Y29uc3QgTG9nZ2Vy
PiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Ci0KLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3NlZWtUb1Byb21pc2U7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9wbGF5UHJvbWlz
ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3BhdXNl
UHJvbWlzZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBt
X3NldFRyYWNrUHJvbWlzZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4MDI0ZTBlOTQzZTk4ZWVjOWYyZWE4MmNlZTlmOGQy
ZjcyODgzMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuY3BwCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZTo6c2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2
b2lkKiBsb2dJZGVudGlmaWVyKQoreworICAgIG1fbG9nZ2VyID0gbWFrZVJlZlB0cihsb2dnZXIp
OworICAgIG1fbG9nSWRlbnRpZmllciA9IGxvZ0lkZW50aWZpZXI7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTM3
MmQ5M2M5ZTc5ZGY4YTI4NzUwODAyYWE3NTEyZGM5MWUxNGM3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJFeGNl
cHRpb24uaCIKKyNpbmNsdWRlICJNZWRpYVBvc2l0aW9uU3RhdGUuaCIKKyNpbmNsdWRlICJNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNz
IExvZ2dlcjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVNlc3Npb25D
b29yZGluYXRvckNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb25Db29y
ZGluYXRvckNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHNlZWtTZXNzaW9u
VG9UaW1lKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwbGF5U2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZXNzaW9uVHJhY2soY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4pID0gMDsKK307CisKK2NsYXNz
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4geworcHVibGljOgorICAgIHZpcnR1YWwgfk1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9p
ZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlv
bj4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGF1
c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgPSAwOworCisgICAgdmlydHVhbCB2
b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlKSA9IDA7CisKKyAgICB2b2lkIHNldExvZ2dlcihjb25zdCBXVEY6
OkxvZ2dlciYsIGNvbnN0IHZvaWQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYWtQ
dHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IGNsaWVudCkgeyBtX2NsaWVudCA9IGNs
aWVudDt9CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUoKSA9IGRlZmF1bHQ7CisKKyAgICBjb25zdCBXVEY6OkxvZ2dlciogbG9nZ2VyUHRy
KCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisKKyAgICBXZWFr
UHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBjbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2NsaWVudDsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxjb25zdCBXVEY6OkxvZ2dlcj4g
bV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworICAgIFdlYWtQdHI8
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IG1fY2xpZW50OworfTsKKworfQorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlLmgKaW5kZXggNzA2M2M3OGUzZDc4YmZhZDM4OGRmMzA5NDU0YTljZjdhMzU0ZDJi
MS4uYTU3YmJjMmNhMWQ5NmE5N2RkNTRhZTM4ODhkZGJmZGQzNjVjY2Y2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUuaApAQCAtMzcsNCArMzcsMTcgQEAgZW51bSBjbGFzcyBNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlIDogdWludDhfdCB7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUsCisgICAg
ICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUsCisgICAgICAgIFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCwKKyAgICAgICAgV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZworICAgID47Cit9OworCit9CisK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaApp
bmRleCA2NDUyM2RkNTRhNzFlNjY1NGExN2JiMGM3NzRmNzg4MTYzMzdmNDY1Li5lNTE1ZjE2NGVk
NmM0NjAzZWMyMjY4NTRjMzI0ZDBkMTcxYWY5ZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5o
CkBAIC0zOSw0ICszOSwxOSBAQCBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1
aW50OF90IHsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0
YXRlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU6OkhhdmVNZXRhZGF0YSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZTo6SGF2ZUN1cnJlbnREYXRhLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFk
eVN0YXRlOjpIYXZlRnV0dXJlRGF0YSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEKKyAgICA+OworfTsKKworfQorCiAjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGE3NWEyZjMz
NWRkYTU1NzMyODQzZGFiMDBhNjMxODk4NGI4NDRhNmMuLjhlNjA0YmM1OGQxMzE0Y2JmOTYyZTcx
ZDkzMDgwYmZmMzczYzA0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xMzIsNiArMTMyLDcgQEAgTW9k
dWxlcy9tZWRpYWNhcGFiaWxpdGllcy9OYXZpZ2F0b3JNZWRpYUNhcGFiaWxpdGllcy5jcHAKIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAKK01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJpdmF0ZS5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5j
cHAKIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKIE1vZHVsZXMv
bWVkaWFyZWNvcmRlci9CbG9iRXZlbnQuY3BwCkBAIC0xOTk5LDcgKzIwMDAsNiBAQCBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRl
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL1BhdHRlcm4uY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM2ODVmOTU2YjZlYjAyNjFmNDlkNTIy
NDUxYmNkNjk4ODczZjBkNS4uOTg0ODUzZTU1MzIyYTdmODM0ZTg4MjcyZWViYjI3NzlmOWE5Yjg3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtOTAsNyArOTAsNiBAQAogCQkwNzA3NTZENDE0MjM5QTRGMDA0MTQxNjEgLyogSlNI
VE1MVHJhY2tFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzA3NTZEMjE0MjM5QTRFMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50Lmgg
Ki87IH07CiAJCTA3MDc1NkRFMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2RDgxNDIz
OUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi87IH07CiAJCTA3MDc1NkUwMTQyMzlC
NEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkRBMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1Rl
eHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsKLQkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8qIFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi87IH07CiAJCTA3MDlENzhGMUFFNTU1NTQwMDRF
NDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3MDlENzkyMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
LmNwcCAqLzsgfTsKIAkJMDcwOUQ3OTMxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MDlENzkxMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0
MSw4ICsxNDAsMTcgQEAKIAkJMDc3QUYxNDMxOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3N0FGMTQxMThGNEIxQkIwMDAxRUQ2MSAvKiBTZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc3QjY0MTMxQjk0RjEyRTAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzdCNjQxMTFCOTRGMTJFMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2su
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzdC
NjQxNzFCOTVGNzAzMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0I2NDE1MUI5NUY3MDMw
MDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTcxMjYwRjlGNzYwMDcyRjE5RiAv
KiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcyREJDMDMyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMDc3QkE1NzIyNjBGQTAxNDAwNzJGMTlGIC8qIE5hdmlnYXRvck1lZGlhU2Vzc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0REREVB
MjYyNTM4Q0RBQjAwQTEzMDBDIC8qIE5hdmlnYXRvck1lZGlhU2Vzc2lvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTc1MjYwRkE1RkUw
MDcyRjE5RiAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERERFQTIzMjUzOENEODAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzdC
QTU3NjI2MEZBREY2MDA3MkYxOUYgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEzNDI1MzhDRTYyMDBBMTMw
MEMgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1NzcyNjBGQUVDODAwNzJGMTlGIC8qIE1lZGlhU2Vz
c2lvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0REREVBMkIyNTM4Q0RFMzAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTc4MjYw
RkFFREIwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEzQTI1MzhFOUMyMDBBMTMw
MEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTc5MjYwRkFFRTgwMDcyRjE5RiAvKiBN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRERERUEyOTI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTA3N0JBNTdBMjYwRkFFRjgwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25SZWFkeVN0
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0
NzFGRDI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTdCMjYwRkIx
MDIwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEzNjI1MzhDRTcwMDBBMTMwMEMg
LyogTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTdFMjYwRkVGMzYwMDcyRjE5RiAvKiBNZWRp
YVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0JBNTdDMjYwRkU3MzgwMDcyRjE5RiAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzgyODk0ODI1QzIzRkU1MDBBN0JBMDMgLyogTWVkaWFNZXRhZGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0REREVB
MkQyNTM4Q0UwNDAwQTEzMDBDIC8qIE1lZGlhTWV0YWRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwNzgyODk0QTI1QzM2RkNGMDBBN0JBMDMg
LyogTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRERERUEyMzI1MzhDRDgwMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uLmggKi87IH07
CiAJCTA3ODI4OTRCMjVDMzZGRUQwMEE3QkEwMyAvKiBNZWRpYUltYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEzMjI1MzhDRTM1MDBBMTMw
MEMgLyogTWVkaWFJbWFnZS5oICovOyB9OwogCQkwNzgyODk0QzI1QzM3MDBCMDBBN0JBMDMgLyog
TWVkaWFNZXRhZGF0YUluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERERFQTMwMjUzOENFMUUwMEExMzAwQyAvKiBNZWRpYU1ldGFkYXRhSW5pdC5o
ICovOyB9OwogCQkwNzgzMjI4NTE4MDEzRUQ4MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc4
MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCAqLzsgfTsK
QEAgLTU2OTUsNyArNTcwMyw2IEBACiAJCTA3MDc1NkQ4MTQyMzlCNEIwMDQxNDE2MSAvKiBKU1Rl
eHRUcmFja0N1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFj
a0N1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA3NTZEOTE0MjM5QjRDMDA0
MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3MDc1NkRBMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OEMxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3MDlENzhEMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OTAxQUU1NTU3RTAwNEU0MkY4IC8q
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01ODUwLDYgKzU4NTcsOCBAQAogCQkwNzdCNjQxMTFCOTRGMTJFMDAz
RTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc3QjY0MTQxQjk1RjcwMzAwM0U5QUQ1IC8qIE1lZGlh
UGxheWJhY2tUYXJnZXRNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc3QjY0MTUxQjk1RjcwMzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2Nr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJnZXRN
b2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3N0JBNTdDMjYwRkU3MzgwMDcy
RjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA3N0JBNTdEMjYwRkU3MzkwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4MzIyODIxODAxM0VE
NzAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4NDYz
NDAxNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJhY2tFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1RyYWNrRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTkzNiw3ICs1OTQ1LDYgQEAKIAkJMDdFMTE2QjAxNDg5QzlBMTAwRUM1QUNF
IC8qIEpTVGV4dFRyYWNrQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTVGV4dFRyYWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdFMTE3MDYxNDg5RUJFQjAwRUM1QUNFIC8qIEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFM0RGRDAxQTlFNzg2NTAwNzY0
Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFQbGF5YmFja1RhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwN0U1RjM5MjI1RUFBOTFGMDBBODUzQUQgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFOUUxMkQxOEY1RTI3NjAw
MTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFOUUxMkYxOEY2MkIzNzAwMTFBM0E0
IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0VFNzZFOTFCRTk2REIwMDBGODkx
MzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjY5MzMsOCArMjY5NDEsNiBAQAogCQkJCTU1MDY0MEFEMjQwNzU2
REEwMEFBRTA0NSAvKiBQbGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oICovLAogCQkJCTA1NjJG
OTYwMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi8sCiAJCQkJQ0VFRkNEN0Ix
OURCMzNEQzAwMzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAotCQkJ
CTA3RTVGMzkyMjVFQUE5MUYwMEE4NTNBRCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcCAqLywKLQkJCQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oICovLAogCQkJCTA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAv
KiBQbGF0Zm9ybVRleHRUcmFjay5oICovLAogCQkJCTA3NEU4MkI4MThBNjlGMEUwMDdFRjU0QyAv
KiBQbGF0Zm9ybVRpbWVSYW5nZXMuY3BwICovLAogCQkJCTA3NEU4MkI5MThBNjlGMEUwMDdFRjU0
QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLywKQEAgLTI4Mzk0LDYgKzI4NDAwLDggQEAKIAkJ
CQkwNzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAq
LywKIAkJCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaWRsICovLAogCQkJCTA3MzZCNzMwMjYwOTRBMzcwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25D
b29yZGluYXRvck1peGluLmlkbCAqLywKKwkJCQkwNzdCQTU3RDI2MEZFNzM5MDA3MkYxOUYgLyog
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmNwcCAqLywKKwkJCQkwNzdCQTU3QzI2MEZF
NzM4MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmggKi8sCiAJCQkJ
Q0REREVBMjkyNTM4Q0RDQjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAq
LywKIAkJCQlDRERERUEyODI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5pZGwgKi8sCiAJCQkJMDczNkI3MzIyNjA5NTU1NDAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lv
blBsYXlsaXN0TWl4aW4uaWRsICovLApAQCAtMzM5NjksNiArMzM5NzcsNyBAQAogCQkJCURGOUFG
RDcyMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBMzE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNTA1
MjRGNDFCNzEyRkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3NjI2MEZBREY2MDA3MkYxOUYgLyogTWVk
aWFQb3NpdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkUyQ0FGQzE5RkYwMjA3MDAx
RUVCNEYgLyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkEwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0OTNCNkJG
MUQ3NEI0MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmggaW4gSGVhZGVycyAq
LywKQEAgLTMzOTkyLDEyICszNDAwMSwxOSBAQAogCQkJCTFCMTI0RDhEMUQzODBCNzAwMEVDREZC
MCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQkVBRUFEMTlE
OTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTE3RDI3NUUxRUFDNTc5ODAwQkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0aW9u
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwNzgyODk0QTI1QzM2RkNGMDBBN0JBMDMgLyogTWVkaWFT
ZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3NTI2MEZBNUZFMDA3MkYxOUYgLyog
TWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3NzI2MEZBRUM4MDA3MkYx
OUYgLyogTWVkaWFTZXNzaW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3QjI2
MEZCMTAyMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMDc3QkE1NzgyNjBGQUVEQjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkhh
bmRsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3N0JBNTcxMjYwRjlGNzYwMDcyRjE5RiAvKiBN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc3QkE1N0UyNjBG
RUYzNjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE2RUNBRTUyNUI1OENDNDAwQjM0REE1IC8qIE1lZGlhU2Vzc2lvbkdyb3Vw
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBOTU5M0YyNDEyQkFFMDAwOTEwRUVG
IC8qIE1lZGlhU2Vzc2lvbkhlbHBlcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NDYwQTIy
NDEyOTk0NTAwODE0QkU3IC8qIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxN0Y3QUVGMjEzOUJGNkYwMEZCQTdFQyAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRp
YVNlc3Npb25NYW5hZ2VySU9TLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3OTI2MEZBRUU4
MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMDc3QkE1N0EyNjBGQUVGODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEM0E0OTVGMTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q2NDFFQjMxODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlh
U291cmNlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOEI1QTcxODA0NzRGNzAwMTZF
Njg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLApAQCAtMzQx
MDAsNiArMzQxMTYsNyBAQAogCQkJCTk3MTE0NjA0MTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0
b3JHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkI1MDdBMjQyMzRCRjM0MTAwQkU3
QzYyIC8qIE5hdmlnYXRvcklzTG9nZ2VkSW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTVFQTcyNUQ2
MUFDQUJENTcwMEVBRDE3QiAvKiBOYXZpZ2F0b3JNZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTA3N0JBNTcyMjYwRkEwMTQwMDcyRjE5RiAvKiBOYXZpZ2F0b3JNZWRpYVNlc3Npb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkU1OURGMURGMDEyOEQwMDY2MTJCOSAvKiBOYXZpZ2F0
b3JXZWJEcml2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4Qjc4MjQxMzE5MUYwMEU3OTRE
NiAvKiBOYXZpZ2F0b3JXZWJYUi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEEzMDlDOUYxMjM5NTBC
RTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTM0MzI1LDcgKzM0MzQyLDYgQEAKIAkJCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZDRDdDMTlEQjMzREMwMDM4NzZE
NyAvKiBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
MEUwOTE5MTg3NUVFRkMwMDNBMUQzQyAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Rjk0NDE2MTg2NEQwNDYwMDVE
MzFDQiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNUM0NzY5MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybU1vdXNlRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM1OTg5MDU4MTRFOUMyOTkwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9h
cmQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKaW5kZXggOTE0NTdlYjFhNjFlNDY3M2FjMTkzYjgy
MDNlOTBiOGYzZTYyNzY1MS4uMDI0OTMwY2NiYTAxMWIxM2ViOTQ3MWZmZGFhNTE1MmM3MjE4ZmJj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRp
YVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uR3Jv
dXBJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0Zi9M
b2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTExNzg1MTEzOTlmNDE1Zjc4MWIzMmFhZWU3NmMx
MTNlYjE3ZWJjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCi0KLSNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1T
dHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKLXsKLSAgICBzdGF0aWMgY29u
c3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKLSAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIkhhdmVOb3RoaW5nIiksCi0gICAgICAgIE1BS0VfU1RBVElDX1NUUklO
R19JTVBMKCJIYXZlTWV0YWRhdGEiKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
IkhhdmVDdXJyZW50RGF0YSIpLAotICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2
ZUZ1dHVyZURhdGEiKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVFbm91
Z2hEYXRhIiksCi0gICAgfTsKLSAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+
KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVOb3RoaW5nKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIGlzIG5v
dCAwIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVNZXRhZGF0YSkgPT0gMSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0
YSBpcyBub3QgMSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFk
eVN0YXRlOjpIYXZlQ3VycmVudERhdGEpID09IDIsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlQ3VycmVudERhdGEgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEpID09IDMsICJNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBpcyBub3QgMyBhcyBleHBlY3RlZCIpOwotICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSkgPT0gNCwgIk1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhIGlzIG5vdCA0IGFzIGV4cGVjdGVk
Iik7Ci0gICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpIDwgV1RGX0FSUkFZX0xF
TkdUSCh2YWx1ZXMpKTsKLSAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oc3Rh
dGUpXTsKLX0KLQotU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCi17
Ci0gICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7Ci0g
ICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJOb25lIiksCi0gICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJQYXVzZWQiKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIlBsYXlpbmciKSwKLSAgICB9OwotICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNp
emVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZTo6Tm9uZSksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGlzIG5vdCAw
IGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6
OlBhdXNlZCkgPT0gMSwgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCBpcyBub3Qg
MSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
OjpQbGF5aW5nKSA9PSAyLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBpcyBu
b3QgMiBhcyBleHBlY3RlZCIpOwotICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KHN0YXRl
KSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7Ci0gICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNf
Y2FzdDxzaXplX3Q+KHN0YXRlKV07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNl
c3Npb25Db29yZGluYXRvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTBkYzUx
ZDJhNmY4MGFiYzk3YWE2MDdkOWU5YTUxMDE1MGYzMmVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDEw
MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgotI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKLSNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+Ci0jaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+Ci0jaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4gewotcHVibGljOgotICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoKSA9IGRlZmF1bHQ7Ci0KLSAgICB1c2luZyBTZWVrQ29tcGxldGVkQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+OwotICAgIHZpcnR1
YWwgdm9pZCBzZWVrVG8oZG91YmxlLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJikgPSAwOwotCi0g
ICAgdXNpbmcgUGxheUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxFeGNlcHRpb24+JiYpPjsKLSAgICB2aXJ0dWFsIHZvaWQgcGxheShQbGF5Q29tcGxl
dGVkQ2FsbGJhY2smJikgPSAwOwotCi0gICAgdXNpbmcgUGF1c2VDb21wbGV0ZWRDYWxsYmFjayA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47Ci0gICAgdmly
dHVhbCB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVkQ2FsbGJhY2smJikgPSAwOwotCi0gICAgdXNp
bmcgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8RXhjZXB0aW9uPiYmKT47Ci0gICAgdmlydHVhbCB2b2lkIHNldFRyYWNrKGNvbnN0IFN0
cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7Ci0KLSAgICB2b2lkIHNldExv
Z2dlcihjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKLSAg
ICB7Ci0gICAgICAgIG1fbG9nZ2VyID0gbWFrZVJlZlB0cihsb2dnZXIpOwotICAgICAgICBtX2xv
Z0lkZW50aWZpZXIgPSBsb2dJZGVudGlmaWVyOwotICAgIH0KLQotICAgIHN0cnVjdCBNZWRpYVBv
c2l0aW9uU3RhdGUgewotICAgICAgICBkb3VibGUgZHVyYXRpb24gPSBzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OmluZmluaXR5KCk7Ci0gICAgICAgIGRvdWJsZSBwbGF5YmFja1JhdGUgPSAx
OwotICAgICAgICBkb3VibGUgcG9zaXRpb24gPSAwOwotICAgIH07Ci0KLSAgICBlbnVtIGNsYXNz
IE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1aW50OF90IHsKLSAgICAgICAgSGF2ZU5vdGhpbmcs
Ci0gICAgICAgIEhhdmVNZXRhZGF0YSwKLSAgICAgICAgSGF2ZUN1cnJlbnREYXRhLAotICAgICAg
ICBIYXZlRnV0dXJlRGF0YSwKLSAgICAgICAgSGF2ZUVub3VnaERhdGEsCi0gICAgfTsKLQotICAg
IGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSA6IHVpbnQ4X3QgewotICAgICAg
ICBOb25lLAotICAgICAgICBQYXVzZWQsCi0gICAgICAgIFBsYXlpbmcsCi0gICAgfTsKLQotICAg
IHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9u
U3RhdGU+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vz
c2lvblJlYWR5U3RhdGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5n
ZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgZXhw
bGljaXQgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKLQotICAg
IGNvbnN0IExvZ2dlciogbG9nZ2VyUHRyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7
IH0KLSAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJ
ZGVudGlmaWVyOyB9Ci0gICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgeyByZXR1
cm4gIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9Ci0gICAgV1RGTG9nQ2hhbm5l
bCYgbG9nQ2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIExvZ01lZGlhOyB9Ci0KLXByaXZhdGU6Ci0g
ICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7Ci0gICAgY29uc3Qgdm9pZCogbV9sb2dJ
ZGVudGlmaWVyOwotfTsKLQotU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpOwotU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOwotCi19Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRleCBjMzc1ZmI2MTMy
NTBkNzFkNzExNDU3Njc0OTQzYTVjMDE3ODUyOWZhLi44ODkzZDJmYmNlYzU1Zjc0OTQyNTEzNjE5
MzcyMjE5MGYwMjYwMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC01OSw3ICs1OSw3IEBAIE9wdGlvbmFs
PEV4Y2VwdGlvbj4gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZXN1bHQoKSBjb25zdAog
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxi
YWNrKQordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGlt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNhbGxi
YWNrKQogewogICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7
CiAgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKQEAgLTY3LDcgKzY3LDcg
QEAgdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwg
U2Vla0NvbXBsZXRlZENhbGxiYWNrJiYgY2EKICAgICB9KTsKIH0KIAotdm9pZCBNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2sp
Cit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgQUxXQVlT
X0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKICAgICBtX2NvbnRleHQtPnBvc3RUYXNr
KFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpIG11dGFibGUgewpAQCAtNzUsNyArNzUsNyBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6cGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKICAgICB9
KTsKIH0KIAotdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKFBhdXNlQ29t
cGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpwYXVzZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+
JiYgY2FsbGJhY2spCiB7CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVS
KTsKICAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewpAQCAtODMsNyArODMs
NyBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0
ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCi12b2lkIE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENh
bGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0
VHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNl
cHRpb24+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9H
SURFTlRJRklFUik7CiAgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKQEAg
LTkxLDI0ICs5MSwyOSBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJh
Y2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYQogICAgIH0pOwogfQogCi12
b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0
aW9uYWw8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFQb3NpdGlvblN0YXRl
PikKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdl
ZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+KQogewogICAgIEFMV0FZU19MT0dfSUZfUE9T
U0lCTEUoTE9HSURFTlRJRklFUik7CiAgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVs
ZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInBvc2l0aW9uU3RhdGVDaGFuZ2VkIik7CiB9CiAK
LXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRl
KQordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKE1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCiB7CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJM
RShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CiAgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hl
ZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInJlYWR5U3RhdGVDaGFuZ2VkIik7CiB9CiAK
LXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
IHN0YXRlKQordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVD
aGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiB7CiAgICAgQUxXQVlTX0xP
R19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CiAgICAgbV9zdGF0ZUNoYW5nZUxp
c3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInBsYXliYWNrU3RhdGVD
aGFuZ2VkIik7CiB9CiAKK1dURkxvZ0NoYW5uZWwmIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExvZ01lZGlhOworfQorCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCmluZGV4
IDg3MGJiNGNiMGJlOTZmODVmZDQ1NzBlOGUzOTNiNzIzNmZlOGYyYjMuLjQ4MzU2ZjlhZTEzZTdj
Mzg4NDdmNDk4YjBjMjg1ZTExMzlmNzdiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMjgsMTUgKzI4LDE2IEBA
CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAKICNpbmNsdWRlICJHZW5l
cmljRXZlbnRRdWV1ZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCIKICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFN0
cmluZ0NhbGxiYWNrOwogCi1jbGFzcyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJs
aWMgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciB7CitjbGFzcyBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVm
UHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKQEAgLTQ2LDE1ICs0NywxOCBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKIAotICAgIHZvaWQgc2Vla1RvKGRvdWJs
ZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgcGxheShQbGF5Q29t
cGxldGVkQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBwYXVzZShQYXVzZUNvbXBsZXRlZENh
bGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFj
a0NvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKKyAg
ICB2b2lkIHBsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJp
bmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZp
bmFsOwogCiAgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0
aW9uU3RhdGU+KSBmaW5hbDsKICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lv
blJlYWR5U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CiAKKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05h
bWUoKSBjb25zdCB7IHJldHVybiAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQorICAg
IFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdDsKKwogICAgIE9wdGlvbmFsPEV4Y2Vw
dGlvbj4gcmVzdWx0KCkgY29uc3Q7CiAKICAgICBSZWY8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4g
bV9jb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggZDBjOTIxNzgyYWU1NTE1ZTA5NTE1YmRi
NTFjYzRlMTkwZWU5NjUzMS4uNTFjNWEwNTk2MWI5YzhmYTUwZjc2ZmIxZTgzZGVmNTk5ZDg3ZGZm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xODUsNiArMTg1LDkgQEAgc2V0KFdlYktpdF9NRVNT
QUdFU19JTl9GSUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
CiAKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorCisgICAgVUlQcm9jZXNzL01lZGlh
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkKKwogICAgIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAgICAgVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3Rv
cmUKQEAgLTI0NSw2ICsyNDgsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAg
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlcgogICAg
IFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJCiAKKyAgICBXZWJQcm9jZXNzL01l
ZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcgorCiAgICAgV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIKICAgICBXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYk1ETlNSZWdpc3RlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDVlOGZkM2NiODc5MjA3OWRmMWIxM2NhZDkzNWI3Yjcz
ZDExNDI4NmYuLjBlMGZiODcwZTUxYTQ0NjA2MzE1YTk0YTI0YzU0NjEyOWFiMGViNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwOCw2
ICsxMDgsNyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclVJUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTY0LDYgKzE2NSw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3Rvci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9NZWRpYVNlc3Np
b24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENo
YW5uZWwubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IGVmMjE1YWMzNzk2OThlNDdhODY0OWUyNDFjN2M2OGRkMGI3Nzcz
NjAuLjM0YWMzYjFmYTkzNDc2ZDE1ZTQyNGZiN2IzMDczZmU1MjczOTc4NDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjQwLDYgKzI0
MCwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlY29yZGVyc01lc3NhZ2VzUmVwbGllcwogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
TWVkaWFTZXNzaW9uSGVscGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
TWVkaWFTZXNzaW9uSGVscGVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCBmNTI5NGRlOTVkNTFhMWYxNTYzZGVlYjc5ZjE5MjEyNDAyYzMzMjQzLi45NWJm
NDUxNmE2ZTFkZDFjNGFkNDBhMGZlOTgxNGI3ZTkwNjliMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC02Miw2ICs2Miw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9JY29uRGF0YWJhc2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIFwKKyAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMgXApAQCAtMTcwLDYgKzE3MSw3IEBA
IE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbCBcCiAJVUlQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5IFwKIAlVSVByb2Nlc3MvTWVkaWEvQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSBcCisJVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkgXAogCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIgXApAQCAtMTk3LDYgKzE5OSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJT
ID0gXAogCVdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlciBcCiAJV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yIFwKIAlXZWJQcm9jZXNz
L0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSSBcCisJV2ViUHJvY2Vzcy9NZWRpYVNlc3Np
b24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgXAogCVdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIgXAogCVdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm94eSBcCiAJV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAppbmRleCBkZDRkMmE1MDc2NTc2YmEzZDQ1NjJlY2FjMzMxYjE5
OTkzYzk5NjlmLi5hODZlNzE3ZjcyMDQzM2M2NzMyMWM0ZjVkMTk3MDQyYzE0MDM4MzU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC03MTMsNiArNzEzLDggQEAgUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyTWVzc2FnZVJlY2VpdmVyLmNwcAog
UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIwZGQzM2NkMjMzNWE3OTQzNDNiNzk5YTRlZGExZTQyMDgwNzk2MmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25D
b29yZGluYXRvclByaXZhdGVQcm94eS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5Cisg
ICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
UHJveHk+CisgICAgLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGVQcm94eT4geworcHVibGljOgorICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJpdmF0ZVByb3h5KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhk
b3VibGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YSYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25E
YXRhJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxX
ZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlYWR5
U3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZSkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcml2YXRlUHJveHkoKSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9S
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzI2NzA0
NWM0MzVjNTM3NGZjN2JkMjJiNjcwNjRkZGJiNmJmMzA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eS5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oIgorCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJNZWRpYVNl
c3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0
aW9uRGF0YS5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworUmVmUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94
eSwgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiYmIHByaXZhdGVDb29y
ZGluYXRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5KHdlYlBhZ2VQcm94eSwgV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0b3Ip
KSk7Cit9CisKK1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFJlZjxN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJiBwcml2YXRlQ29vcmRpbmF0b3Ip
CisgICAgOiBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkpCisgICAgLCBtX3ByaXZhdGVDb29y
ZGluYXRvcihXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvcikpCisgICAgLCBtX2xvZ2dlcihtX3dl
YlBhZ2VQcm94eS5sb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcih1bmlxdWVMb2dJZGVu
dGlmaWVyKCkpCit7CisgICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgKnRoaXMpOworfQor
CitSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojp+UmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eSgpCit7CisgICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSk7
Cit9CisKKwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGlu
YXRlU2Vla1RvKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNv
cmU6OkV4Y2VwdGlvbkRhdGEmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGlk
ZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgdGlt
ZSk7CisKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+c2Vla1RvKHRpbWUsIFtpZGVudGlmaWVy
XSAoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Cisg
ICAgICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgImNvbXBsZXRpb24iKTsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICB9KTsKK30KKwordm9pZCBS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRlUGxheShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAg
IEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+cGxh
eShbaWRlbnRpZmllcl0gKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmJiBleGNlcHRpb24p
IG11dGFibGUgeworICAgICAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIsICJjb21wbGV0aW9uIik7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgfSk7
Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0
ZVBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IExPR0lE
RU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyKTsKKworICAgIG1fcHJpdmF0ZUNv
b3JkaW5hdG9yLT5wYXVzZShbaWRlbnRpZmllcl0gKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRh
dGEmJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIs
ICJjb21wbGV0aW9uIik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0
aW9uKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eTo6Ojpjb29yZGluYXRlU2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKKyAgICBB
TFdBWVNfTE9HKGlkZW50aWZpZXIpOworCisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnNldFRy
YWNrKHRyYWNrLCBbaWRlbnRpZmllcl0gKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmJiBl
eGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIsICJjb21w
bGV0aW9uIik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6
cG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRl
PiBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIG1fcHJpdmF0
ZUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZChzdGF0ZSk7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChz
dGF0ZSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6cmVh
ZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5yZWFkeVN0
YXRlQ2hhbmdlZChzdGF0ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjViYzIzMzVlYWY2NmYxOWZjYTViNmZiZDM4MzQx
NTFlMWIyMDU1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaApAQCAtMCwwICsxLDc5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKKworI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVBy
b3h5LmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworc3RydWN0IEV4Y2VwdGlvbkRhdGE7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlUHJveHk+JiYpOworICAgIH5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5KCk7CisKKyAgICB2b2lkIHNlZWtUbyhkb3VibGUpOworICAgIHZvaWQgcGxheSgpOworICAg
IHZvaWQgcGF1c2UoKTsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYpOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoV2Vi
UGFnZVByb3h5JiwgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiYmKTsK
KworICAgIHVzaW5nIENvb3JkaW5hdGVDb21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPjsKKworICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBSZWNlaXZlcnMuCisgICAg
dm9pZCBjb29yZGluYXRlU2Vla1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpOworICAgIHZvaWQgY29vcmRpbmF0ZVBsYXko
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYp
OworICAgIHZvaWQgY29vcmRpbmF0ZVBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKTsKKyAgICB2b2lkIGNvb3JkaW5hdGVTZXRUcmFj
ayhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4
Y2VwdGlvbkRhdGEmKT4mJik7CisgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25h
bDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+KTsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFu
Z2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpOworICAgIHZvaWQgcGxheWJhY2tT
dGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CisKKyAgICBX
ZWJQYWdlUHJveHkmIG1fd2ViUGFnZVByb3h5OworICAgIFJlZjxNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByaXZhdGVQcm94eT4gbV9wcml2YXRlQ29vcmRpbmF0b3I7CisgICAgUmVmPGNvbnN0IExv
Z2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YjYwZDM5ODgxMWI3ZDgyNTJlYmE4ZmU5MGZhYzEzMDZl
NWRiZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9S
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
NDQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjLworCisjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKK21lc3NhZ2VzIC0+IFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291bnRlZCB7CisKKyAgICBDb29yZGluYXRl
U2Vla1RvKGRvdWJsZSB0aW1lKSAtPiAoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4g
ZXJyb3IpIEFzeW5jCisKKyAgICBDb29yZGluYXRlUGxheSgpIC0+IChPcHRpb25hbDxXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMKKworICAgIENvb3JkaW5hdGVQYXVzZSgpIC0+
IChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMKKworICAgIENv
b3JkaW5hdGVTZXRUcmFjayhTdHJpbmcgdHJhY2tJZGVudGlmaWVyKSAtPiAoT3B0aW9uYWw8V2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YT4gZXJyb3IpIEFzeW5jCisKKyAgICBQb3NpdGlvblN0YXRlQ2hh
bmdlZChPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRlKTsKKworICAg
IFJlYWR5U3RhdGVDaGFuZ2VkKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFk
eVN0YXRlIHN0YXRlKTsKKworICAgIFBsYXliYWNrU3RhdGVDaGFuZ2VkKGVudW06dWludDhfdCBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRlKTsKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5OWIzNDYwOTg3MWRk
ZmFjZDk2N2RiOTc2YTY2NGQxNjAzOGUxN2FiLi5kNWU0NDJkODdjODFkODU5Y2ExMjI1NmNjOTcy
ZDQ1ODkyYzBkYzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTI5Niw2ICsyOTYsMTEgQEAKICNpbmNsdWRlICJXZWJEYXRlVGltZVBpY2tlci5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyNpbmNsdWRlICJN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaCIKKyNlbmRpZgorCiAvLyBUaGlzIGNvbnRyb2xz
IHdoYXQgc3RyYXRlZ3kgd2UgdXNlIGZvciBtb3VzZSB3aGVlbCBjb2FsZXNjaW5nLgogI2RlZmlu
ZSBNRVJHRV9XSEVFTF9FVkVOVFMgMQogCkBAIC0xMDM2OCw2ICsxMDM3MywyNCBAQCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBXZWJQYWdlUHJveHk6OmNyZWF0ZU5ldHdvcmtFeHRlbnNp
b25zU2FuZGJveEV4dGVucwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKK3ZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+JiYgcHJpdmF0ZUNv
b3JkaW5hdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYWtQdHI8UmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VS
VCghbV9tZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KTsKKworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSwg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcml2YXRlQ29vcmRpbmF0b3IgPSBXVEZN
b3ZlKHByaXZhdGVDb29yZGluYXRvciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisKKyAgICAgICAgaWYgKCF3
ZWFrVGhpcyB8fCAhc3VjY2VzcykgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHdlYWtUaGlzLT5t
X21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkgPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5OjpjcmVhdGUoKndlYWtUaGlzLCBXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvcikp
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlV2Vha1B0cih3ZWFrVGhpcy0+bV9tZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5LmdldCgpKSk7CisgICAgfSk7Cit9CisjZW5kaWYKKwog
I2lmIFBMQVRGT1JNKENPQ09BKQogdm9pZCBXZWJQYWdlUHJveHk6OmFwcEJvdW5kTmF2aWdhdGlv
bkRhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBBcHBCb3VuZE5hdmlnYXRpb25UZXN0
aW5nRGF0YSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCBhMmNiZThhYTg2YmI3ZWYyZTNmYjg1ZDU4NTg4Y2M1YzNjYjVi
NmQyLi41ZTAzMDBkMjM1NWUwMjM1OGIwZGNkMTQxODg1YTc0MTdkMzY3ODc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzI5LDEwICszMjksMTIgQEAgY2xhc3Mg
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CiBjbGFz
cyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgUGFnZUNsaWVudDsKK2NsYXNzIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5OwogY2xhc3MgUHJvdmlzaW9uYWxQYWdlUHJveHk7
CiBjbGFzcyBSZW1vdGVMYXllclRyZWVIb3N0OwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlU2Nyb2xs
aW5nUGVyZm9ybWFuY2VEYXRhOwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247Citj
bGFzcyBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OwogY2xhc3MgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eTsKIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7CiBjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOwpAQCAtMTg4NCw2ICsxODg2LDEwIEBA
IHB1YmxpYzoKICAgICBib29sIGNhbkhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRpb24oKSBjb25z
dDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAg
dm9pZCBjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlUHJveHk+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vha1B0cjxSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Pik+JiYpOworI2VuZGlmCisKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICB2b2lkIHNldExhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdm9pZCBsYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5k
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwpAQCAtMjkxMyw2ICsyOTE5LDEwIEBA
IHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOwogCisjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgUmVmUHRyPFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTsK
KyNlbmRpZgorCiAjaWYgVVNFKERJUkVDVDJEKQogICAgIENPTVB0cjxJRDNEMTFEZXZpY2UxPiBt
X2RldmljZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggN2VmZjRmMjZlMzM1MTIyYjBmNmViNTljYjgwMTRjMTFiYWRlMGVl
Zi4uZTVjY2QyYjBlZGRiYzU5YmUwMjM2NzBlMjk3MzBjODUwYzI1N2UxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDcsNiArMTA3
LDcgQEAKIAkJMDc0RTc1RkUxREYyMjExOTAwRDMxOEVDIC8qIFVzZXJNZWRpYVByb2Nlc3NNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzRF
NzVGQjFERjFGRDEzMDBEMzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCAqLzsgfTsK
IAkJMDc2RTg4NEUxQTEzQ0FERjAwNUU5MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzZFODg0RDFBMTND
QURGMDA1RTkwRkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCAqLzsgfTsKIAkJMDc3MjgxMUQy
MTIzNEZGNjAwQzhFRjJFIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGNDMxOUFG
N0IyNzAwMkVCQUI1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovOyB9
OworCQkwNzdCQTU2RTI2MEU2RDFDMDA3MkYxOUYgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDczNkI3NTUyNjBEMDNBMDAwRTA2OTk0IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcCAqLzsgfTsKIAkJMDc5MjMxNDgyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzE0MjIzOUNCQ0I1MDA5NTk4RTIgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKIAkJMDc5MjMx
NEIyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3OTIzMTQ1MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTA3OTIzMTRDMjM5Q0JDQjgwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzE0NjIzOUNCQ0I3MDA5NTk4
RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwpAQCAt
MjM3Niw2ICsyMzc3LDEyIEBACiAJCTA3Mjk3RjlEMUMxN0JCRUEyMjNGMDczNSAvKiBEZXZpY2VJ
ZEhhc2hTYWx0U3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZp
Y2VJZEhhc2hTYWx0U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5
N0ZBMDFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0ZBMTFDMTg2QURC
MDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3NTMyNjBEMDM5RjAwRTA2OTk0IC8qIFJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzM2Qjc1NDI2MEQwMzlGMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3NTUyNjBEMDNBMDAwRTA2OTk0IC8qIFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MDczNkI3NUMyNjBENEE0RTAwRTA2OTk0IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzZCNzVEMjYwRDRB
NEYwMEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzZCNzVFMjYwRDRBNTAwMEUwNjk5NCAv
KiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDc0NDcyMDUyNUU1QkQwMjAwNTRCMjMxIC8qIE1lZGlhT3ZlcnJpZGVzRm9yVGVz
dGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0ODc5QjcyMzczQTkwOTAwRjU2NzhFIC8qIEFwcEtp
dFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFwcEtpdFNvZnRMaW5rLmg7IHBhdGggPSBpb3Mv
QXBwS2l0U29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0ODc5Qjgy
MzczQTkwOTAwRjU2NzhFIC8qIEFwcEtpdFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gQXBwS2l0U29mdExpbmsubW07IHBhdGggPSBpb3MvQXBwS2l0U29mdExpbmsubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzg1LDYgKzIzOTIsNyBAQAogCQkwNzRFNzYwMTFE
RjcwNzVEMDBEMzE4RUMgLyogTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkU4ODREMUExM0NBREYwMDVFOTBGQyAv
KiBBUElDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBUElDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzZFODg0RjFBMTNDQkM2MDA1RTkwRkMgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1l
bnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSW5qZWN0ZWRC
dW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDc3QkE1NzAyNjBFOEY2MzAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0
ZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3OTIzMTMwMjM5QjNCMEMw
MDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyog
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM5OCw2ICsyNDA2
LDEyIEBACiAJCTA3OTRCNEFGMjQ0NTJBMkMwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlckNv
Y29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBNUVCQjkxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVI
YW5kbGVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tGcmFt
ZUhhbmRsZVJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QTVFQkJBMUM3
QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLRnJhbWVIYW5kbGVSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDdBNkU1RTMyNjBFNDExNDAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QTZFNUU0MjYwRTQxMTQwMDk1OTQ3OCAvKiBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QTZFNUU1MjYwRTQxMTUwMDk1OTQ3OCAvKiBS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QTZFNUU2MjYwRTQxMTUwMDk1OTQ3OCAvKiBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwN0E2RTVFNzI2MEU0MTE2MDA5NTk0NzggLyogUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTA3QTZFNUU4MjYwRTQxMTYwMDk1OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjNCNDZGMjNBQjJDQjMwMEJB
NUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUGxheWVyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCM0I0NzUy
M0FEODkwNDAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MDI4LDYgKzYwNDIsMTYgQEAKIAkJCXRhYldp
ZHRoID0gODsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJMDczNkI3NTIyNjBEMDM5RjAwRTA2
OTk0IC8qIE1lZGlhU2Vzc2lvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMDczNkI3NTUyNjBEMDNBMDAwRTA2OTk0IC8qIFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJCQkwNzM2Qjc1NDI2MEQwMzlGMDBFMDY5OTQgLyogUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKKwkJCQkwNzM2Qjc1MzI2MEQwMzlGMDBF
MDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gKi8sCisJ
CQkpOworCQkJcGF0aCA9IE1lZGlhU2Vzc2lvbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCTA3OTIzMTJGMjM5QjNCMEMwMDk1OThFMiAvKiBtZWRpYSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05NjA1LDYgKzk2MjksNyBAQAogCQkJ
CUJDMjA0RURGMTFDODNFNzIwMDhGMzM3NSAvKiBJbmplY3RlZEJ1bmRsZSAqLywKIAkJCQk5MUQ5
NzBFMDIzREE2RkIxMDA1N0RCQzMgLyogSW5zcGVjdG9yICovLAogCQkJCTMzRDNBM0JEMTMzOTYw
OTgwMDcwOUJFNCAvKiBNZWRpYUNhY2hlICovLAorCQkJCTA3MzZCNzUyMjYwRDAzOUYwMEUwNjk5
NCAvKiBNZWRpYVNlc3Npb24gKi8sCiAJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1l
ZGlhU3RyZWFtICovLAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICov
LAogCQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAq
LywKQEAgLTEwOTgxLDYgKzExMDA2LDEyIEBACiAJCQkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQkxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlcy5oICovLAogCQkJCTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTA3QTZFNUU0MjYwRTQx
MTQwMDk1OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCisJCQkJMDdBNkU1RTcyNjBFNDExNjAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yTWVzc2FnZXMuaCAqLywKKwkJCQkwN0E2RTVFNjI2MEU0MTE1MDA5NTk0
NzggLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNZXNzYWdlc1JlcGxpZXMuaCAqLywK
KwkJCQkwN0E2RTVFMzI2MEU0MTE0MDA5NTk0NzggLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJMDdBNkU1RTUyNjBFNDExNTAw
OTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oICov
LAorCQkJCTA3QTZFNUU4MjYwRTQxMTYwMDk1OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUREMkE2NjIyNTYxMjJGMTAw
RkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAog
CQkJCTFERDJBNjYwMjU2MTIyRjEwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5TWVz
c2FnZXMuaCAqLywKIAkJCQkxREQyQTY2MTI1NjEyMkYxMDBGRjdCNkYgLyogUmVtb3RlTWVkaWFT
b3VyY2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTEyMjEsOCArMTEyNTIsMTIgQEAK
IAkJCQlDRDQ1NzBERDI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eS5jcHAgKi8sCiAJCQkJQ0Q0NTcwREIyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCAqLywKIAkJCQlDRDQ1NzBEQzI0NDRDQTU4
MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5p
biAqLywKKwkJCQkwNzdCQTU3MDI2MEU4RjYzMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlUHJveHkuaCAqLywKIAkJCQkwNzk0QjRBRTI0NDUyNEIwMDAwMUI5QzQgLyog
TWVkaWFVc2FnZU1hbmFnZXIuY3BwICovLAogCQkJCTA3OTRCNEFDMjQ0NTFCQjkwMDAxQjlDNCAv
KiBNZWRpYVVzYWdlTWFuYWdlci5oICovLAorCQkJCTA3MzZCNzVDMjYwRDRBNEUwMEUwNjk5NCAv
KiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcCAqLywKKwkJCQkwNzM2Qjc1
RTI2MEQ0QTUwMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5o
ICovLAorCQkJCTA3MzZCNzVEMjYwRDRBNEYwMEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSBNZWRpYTsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMzkzNiw2ICsxMzk3MSw3IEBACiAJCQkJ
MDcwMTc4OUUyM0JFOUNGQzAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzFCQzU4RjIzQ0UxRUFBMDA2ODBEN0MgLyogUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc3QkE1NkUyNjBFNkQxQzAw
NzJGMTlGIC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFERDJBNjYzMjU2MTI0NkYwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzg1MTg1OTBDNDYw
MEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDRDgyNTJFMjI1RDQ5MTkxMDA4NjJGRDggLyogUmVtb3RlUmVtb3RlQ29t
bWFuZExpc3RlbmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9u
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjZmNDU0NzBl
ZGU3YWY0NjZmM2M4ZTBkMzE2N2JhMjk1ZTJkMDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAKQEAgLTAsMCArMSwxOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Cisj
aW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2V4dGVybiBXVEZMb2dDaGFubmVsIExvZ01lZGlhOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCitSZWY8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihwYWdlKSk7
Cit9CisKK1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvcihXZWJQYWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UuaWRl
bnRpZmllcigpLCAqdGhpcyk7Cit9CisKK1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7
Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUg
dGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+
JiYpPiYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJ
RklFUiwgdGltZSk7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Q29vcmRpbmF0ZVNlZWtUbyB7IHRpbWUg
fSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlz
KSB7CisgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRp
b24pIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwg
V1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCit7CisgICAgQUxX
QVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpD
b29yZGluYXRlUGxheSB7IH0sIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcykgeworICAgICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBl
eGNlcHRpb24tPmNvZGUsIFdURk1vdmUoZXhjZXB0aW9uLT5tZXNzYWdlKSB9KTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgfSwg
MCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxs
YmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAg
IG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHk6OkNvb3JkaW5hdGVQYXVzZSB7IH0sIFt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgZXhjZXB0aW9u
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykgeworICAgICAgICAgICAgY2FsbGJh
Y2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBjYWxs
YmFjayhFeGNlcHRpb24geyBleGNlcHRpb24tPmNvZGUsIFdURk1vdmUoZXhjZXB0aW9uLT5tZXNz
YWdlKSB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNhbGxi
YWNrKHsgfSk7CisgICAgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnNldFRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2tJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2sp
Cit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX3Bh
Z2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5OjpDb29yZGluYXRlU2V0VHJhY2sgeyB0cmFja0lkZW50aWZpZXIgfSwgW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1
dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAg
ICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShl
eGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8V2ViQ29y
ZTo6TWVkaWFQb3NpdGlvblN0YXRlPiBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJ
QkxFKExPR0lERU5USUZJRVIpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5OjpQb3NpdGlvblN0YXRlQ2hhbmdlZCB7IHN0YXRlIH0s
IDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRl
Q2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIEFM
V0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOworICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZWFkeVN0
YXRlQ2hhbmdlZCB7IHN0YXRlIH0sIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJ
RklFUiwgc3RhdGUpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5OjpQbGF5YmFja1N0YXRlQ2hhbmdlZCB7IHN0YXRlIH0sIDApOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrU2Vzc2lvblRvVGlt
ZShkb3VibGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHRp
bWUpOworICAgIGlmIChhdXRvIGNvb3JkaW5hdG9yQ2xpZW50ID0gY2xpZW50KCkpCisgICAgICAg
IGNvb3JkaW5hdG9yQ2xpZW50LT5zZWVrU2Vzc2lvblRvVGltZSh0aW1lLCBXVEZNb3ZlKChjb21w
bGV0aW9uSGFuZGxlcikpKTsKKyAgICBlbHNlCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheVNlc3Np
b24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIGlmIChhdXRv
IGNvb3JkaW5hdG9yQ2xpZW50ID0gY2xpZW50KCkpCisgICAgICAgIGNvb3JkaW5hdG9yQ2xpZW50
LT5wbGF5U2Vzc2lvbihXVEZNb3ZlKChjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICBlbHNlCisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cGF1c2VTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShM
T0dJREVOVElGSUVSKTsKKyAgICBpZiAoYXV0byBjb29yZGluYXRvckNsaWVudCA9IGNsaWVudCgp
KQorICAgICAgICBjb29yZGluYXRvckNsaWVudC0+cGF1c2VTZXNzaW9uKFdURk1vdmUoKGNvbXBs
ZXRpb25IYW5kbGVyKSkpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRTZXNzaW9u
VHJhY2soY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NT
SUJMRShMT0dJREVOVElGSUVSLCB0cmFja0lkZW50aWZpZXIpOworICAgIGlmIChhdXRvIGNvb3Jk
aW5hdG9yQ2xpZW50ID0gY2xpZW50KCkpCisgICAgICAgIGNvb3JkaW5hdG9yQ2xpZW50LT5zZXRT
ZXNzaW9uVHJhY2sodHJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKChjb21wbGV0aW9uSGFuZGxlcikp
KTsKKyAgICBlbHNlCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKK30KKworV1RG
TG9nQ2hhbm5lbCYgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NoYW5uZWwoKSBj
b25zdAoreworICAgIHJldHVybiBMb2dNZWRpYTsKK30KKworCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDhkN2E3NDU3MjNkNjlhYTUyYzU2YWQ1NWY0NmZi
ZjA3Y2Q1ZTc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01l
ZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0wLDAgKzEsODAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERl
Y29kZXI7CitjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvciBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUgLCBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
IGNyZWF0ZShXZWJQYWdlJik7CisgICAgflJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7
CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Io
V2ViUGFnZSYpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKwor
ICAgIC8vIE1lc3NhZ2VSZWNlaXZlcnMuCisgICAgdm9pZCBzZWVrU2Vzc2lvblRvVGltZShkb3Vi
bGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcGxheVNlc3Np
b24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBwYXVzZVNlc3Np
b24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBzZXRTZXNzaW9u
VHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisK
KyAgICAvLyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUgb3ZlcnJpZGVzLgorICAgIHZv
aWQgc2Vla1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3Jl
OjpFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHBsYXkoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKKyAgICB2
b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0
aW9uPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYpIGZp
bmFsOworCisgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxXZWJDb3JlOjpN
ZWRpYVBvc2l0aW9uU3RhdGU+KSBmaW5hbDsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tT
dGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CisK
KyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
IGNvbnN0OworCisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZhMTg4NmM0MjFjYzBkMjMxYjA2MTBmZDgyOGUwYjk2N2YxYjQ4MjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKK21lc3Nh
Z2VzIC0+IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIE5vdFJlZkNvdW50ZWQgeworCisg
ICAgc2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlIHRpbWUpIC0+IChib29sIHJlc3VsdCkgQXN5bmMK
KworICAgIHBsYXlTZXNzaW9uKCkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYworCisgICAgcGF1c2VT
ZXNzaW9uKCkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYworCisgICAgc2V0U2Vzc2lvblRyYWNrKFN0
cmluZyB0cmFja0lkZW50aWZpZXIpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDg0
ZDA3ODgwMjc5ZGRhOWFiYmRjNzAxZTk1NzcxN2Y3MWQ1NzRhZDkuLmYxZjkzOGViNWJjZjdjOGU1
YmVlNjViZmExNmQxOTc3NTY3NGQ5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNTgsNiArMzU4LDEyIEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaD4KKyNlbmRpZgorCiAjaWYgUExB
VEZPUk0oSU9TKQogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0lPUy5oIgog
I2VuZGlmCkBAIC03MzgwLDYgKzczODYsMjUgQEAgdm9pZCBXZWJQYWdlOjpyZXN0b3JlQXBwSGln
aGxpZ2h0cyhjb25zdCBWZWN0b3I8U2hhcmVkTWVtb3J5OjpJUENIYW5kbGU+JiYgbWVtb3IKIH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCit2b2lkIFdl
YlBhZ2U6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byogZG9jdW1lbnQgPSBt
X21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8
fCAhZG9jdW1lbnQtPmRvbVdpbmRvdygpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIHNlc3Npb24gPSBOYXZp
Z2F0b3JNZWRpYVNlc3Npb246Om1lZGlhU2Vzc2lvbihkb2N1bWVudC0+ZG9tV2luZG93KCktPm5h
dmlnYXRvcigpKTsKKyAgICBhdXRvIGNvb3JkaW5hdG9yID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OmNyZWF0ZSgqdGhpcyk7CisgICAgbV9yZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvciA9IGNvb3JkaW5hdG9yLnB0cigpOworICAgIG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ig
PSBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKGNvb3JkaW5hdG9yLmdldCgpKTsKKyAg
ICBzZXNzaW9uLnNldENvb3JkaW5hdG9yKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuZ2V0KCkp
OworCisgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7Cit9CisjZW5kaWYKKwogI2lmICFQTEFU
Rk9STShDT0NPQSkKIHZvaWQgV2ViUGFnZTo6Y29uc3VtZU5ldHdvcmtFeHRlbnNpb25TYW5kYm94
RXh0ZW5zaW9ucyhjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzNmMmQ5OWQ3YTYx
YTZiMGZiN2YzNDY2ZTY3ODZhNjkyNTBmOWE1NS4uYzU0YTYxOGRiNDZhMTJkZTAxYTU4NjM0NmE2
NmU5MTdmNzRjYTJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMTkwLDYgKzE5MCw3IEBAIGNsYXNzIEludFBvaW50OwogY2xhc3MgS2V5Ym9hcmRF
dmVudDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OwogY2xhc3MgTWVkaWFQbGF5
ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2s7CitjbGFzcyBNZWRpYVNlc3Np
b25Db29yZGluYXRvcjsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBQcmludENvbnRleHQ7CiBjbGFzcyBS
YW5nZTsKQEAgLTI1NSw2ICsyNTYsNyBAQCBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI7CiBjbGFzcyBQREZQbHVnaW47CiBjbGFzcyBQYWdlQmFubmVyOwogY2xhc3Mg
UGx1Z2luVmlldzsKK2NsYXNzIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3Mg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogY2xhc3MgUmVtb3RlV2ViSW5zcGVjdG9yVUk7
CiBjbGFzcyBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk7CkBAIC0xNDEwLDYgKzE0MTIsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUsIFN0cmluZ1ZpZXcgcGF0aCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIHZvaWQgY3JlYXRlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisjZW5kaWYKKwogICAg
IHZvaWQgc2V0TGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZChib29sIHdhc0FwcEJvdW5kKSB7IG1f
bGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCA9IHdhc0FwcEJvdW5kOyB9CiAgICAgdm9pZCBsYXN0
TmF2aWdhdGlvbldhc0FwcEJvdW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
CkBAIC0yMjUxLDYgKzIyNTcsMTEgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX3Zpc2l0ZWRM
aW5rVGFibGVJRDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisgICAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX21lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOworICAgIFJlZlB0cjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4gbV9yZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk+IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCA3MmVkODFiYTEyMmY1ODU1M2EwMzk0NjhmY2MyODMxMTk5ZTA1ZDExLi5jOGU2NDZhZWRl
YmM0YWExMjBhM2FiZTlkYWQ3NjE4MWU0MTlkYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTYzNCw2ICs2MzQs
MTAgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgIExhc3ROYXZpZ2F0aW9uV2FzQXBw
Qm91bmQoKSAtPiAoYm9vbCB3YXNBcHBCb3VuZCkgQXN5bmMKIAorI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQorICAgIENyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkg
LT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCiAgICAgVXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChzdHJ1Y3QgV2ViQ29y
ZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0IHJlc3VsdCwgc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0IGVsZW1lbnQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgbG9jYXRpb24pIC0+IChib29sIHRl
eHRFeGlzdHNBdExvY2F0aW9uKSBBc3luYwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424550</attachid>
            <date>2021-03-29 11:10:26 -0700</date>
            <delta_ts>2021-03-29 11:21:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223854-20210329111020.patch</filename>
            <type>text/plain</type>
            <size>115506</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI2ZDQwZTBjMTA2NjRm
YjgzZDQyOWIwM2E2ODgzNzdjZTM3NjAwYS4uMmM2ZTk1OGEyMWFhZGQ2Y2MwM2NmNzkxN2Y4NjMx
ZjY5MmMzYjEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIxLTAzLTI4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRk
IHJlbW90ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
NTkzNDY1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUG9zaXRpb25TdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUG9zaXRpb25TdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5U2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2VTZXNzaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRTZXNzaW9uVHJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmludGVybmFsU2Vla1Rv
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjppbnRlcm5hbFBs
YXkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmludGVybmFs
UGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmludGVy
bmFsU2V0VHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlOjpzZXRMb2dnZXIpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0
ZTo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJpdmF0ZTo6bG9nZ2VyUHRyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJpdmF0ZTo6bG9nSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU6OmNsaWVudCBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaDoK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IFJlbW92ZWQuCisgICAgICAgICogdGVzdGlu
Zy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFj
a1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OmxvZ0NoYW5uZWwgY29uc3QpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisKIDIwMjEtMDMtMjQgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJp
bWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwMTM1NGQ1MTMxM2Rj
N2EyYTVkNmZlMzJkYTcwYWRkZDRhZWFmNmQ4Li42OTg0MDUxODIyZDg2ZTQzNjEzZTE2MTdhNDU3
NmUwMzVjZGI0ZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTAzLTI4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRk
IHJlbW90ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
NTkzNDY1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHku
aDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5Ojp+UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3Jk
aW5hdGVTZWVrVG8pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5Ojpjb29yZGluYXRlUGxheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5hdGVQYXVzZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6Ojo6Y29vcmRpbmF0ZVNldFRy
YWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eTo6cG9zaXRpb25TdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5OjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OnJlYWR5U3RhdGVDaGFu
Z2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRp
YS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ip
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6flJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNr
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXlTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRTZXNzaW9uVHJhY2spOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCBjb25z
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24v
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW46IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUu
aC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTAzLTI0ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBEaXNwbGF5TGluayBsb2cgY2hh
bm5lbHMgaW4gV2ViQ29yZSBhbmQgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUG9zaXRpb25TdGF0ZS5oCmluZGV4IDE4NDNlNzQ0
NmZmOGM1OTI4OGE4YjI4ZWRiMGYyYjJjMWM4NDhkZmEuLjQ2Yzg5MjMyNjJlODNjNGQ0YWJjZWJl
ODNjZDI4OTFmMzAwZTUxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhUG9zaXRpb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhUG9zaXRpb25TdGF0ZS5oCkBAIC0zMyw4ICszMywzMyBAQCBz
dHJ1Y3QgTWVkaWFQb3NpdGlvblN0YXRlIHsKICAgICBkb3VibGUgZHVyYXRpb24gPSBzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CiAgICAgZG91YmxlIHBsYXliYWNrUmF0
ZSA9IDE7CiAgICAgZG91YmxlIHBvc2l0aW9uID0gMDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiBkZWNvZGUoRGVjb2Rl
ciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgTWVkaWFQb3Np
dGlvblN0YXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IGR1cmF0aW9uIDw8IHBsYXliYWNrUmF0ZSA8PCBwb3NpdGlvbjsKK30KKwordGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gTWVkaWFQ
b3NpdGlvblN0YXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBkb3VibGUgZHVy
YXRpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkdXJhdGlvbikpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBkb3VibGUgcGxheWJhY2tSYXRlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGxheWJhY2tSYXRlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGRvdWJsZSBwb3Np
dGlvbjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIHJldHVybiBNZWRpYVBvc2l0aW9uU3RhdGUgeyBXVEZNb3ZlKGR1cmF0aW9u
KSwgV1RGTW92ZShwbGF5YmFja1JhdGUpLCBXVEZNb3ZlKHBvc2l0aW9uKSB9OworfQorCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IGU4YTljYWVlYWQ0
NjFjYjg5NjA3YzM0YzMxOGJhMjRhM2JkNDAxNTcuLmUwYzViM2EzYWExZWNjYzA4ZWEzMzZlYjc5
M2VmZWFhMWE3Y2RhMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtMzAsNiArMzAsOSBAQAogCiAjaW5jbHVkZSAi
RE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkpTTWVkaWFQ
b3NpdGlvblN0YXRlLmgiCisjaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25BY3Rpb24uaCIKKyNpbmNs
dWRlICJKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiTWVkaWFNZXRhZGF0YS5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbi5oCmluZGV4IDhkMDUwN2NmMDk5MGZkNTVjNTFjN2QxYTk3ZDhiNWQxOWNkOGMz
YWMuLjU1NWFiN2EwMTAyM2RlMjFmMzhlMjI1MWQ4Njg4MWVmZjgwMmM4MjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC0z
MCw5ICszMCw2IEBACiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNp
bmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCi0j
aW5jbHVkZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKLSNpbmNsdWRlICJKU01lZGlhU2Vzc2lv
bkFjdGlvbi5oIgotI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhUG9zaXRpb25TdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlv
bi5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCIKQEAgLTE1NSw2ICsx
NTIsOSBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9u
VG9TdHJpbmcoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CitTdHJpbmcgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoTWVkaWFTZXNzaW9uQWN0aW9uKTsKKwogfQogCiBuYW1lc3BhY2UgV1RG
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaAppbmRleCBhZWI2MjRhYThlMTE3N2ExNjZm
MWIzN2EyNWI1Nzk0ZGU0ZDBhNmRjLi5kZjgwMzYyNGRmODAzY2FmYWI2NzNiNGFlZDQ5ZWYyYTZl
NzJjZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oCkBAIC0yOSw3ICsyOSw2IEBA
CiAKICNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgogI2luY2x1ZGUgIkNhbGxiYWNrUmVz
dWx0LmgiCi0jaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cAppbmRleCAxZGY0ZTkyMTU1ZjFhYzAxNWU2YzUxNzRkNGJlZjY0ODFlNTkzNTY3Li44MTEzZWQy
YTMxNTAwZTJhYjRjYzMzYTk5MTdmZDhlYzg5MTE0YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwCkBAIC0zMiw3ICszMiw4IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCi0j
aW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUgIk1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MiwxOSArNDMsMjAgQEAgc3RhdGljIGNvbnN0
IHZvaWQqIG5leHRDb29yZGluYXRvckxvZ0lkZW50aWZpZXIoKQogICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOwogfQogCi1SZWY8TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoUmVmPFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikKK1Jl
ZjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0
ZShSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiYmIHByaXZhdGVDb29yZGluYXRv
cikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25Db29yZGluYXRvcihX
VEZNb3ZlKHBsYXRmb3JtQ29vcmRpbmF0b3IpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0b3IpKSk7CiB9
CiAKLU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQot
ICAgIDogbV9wbGF0Zm9ybUNvb3JkaW5hdG9yKFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikp
CitNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJiBwcml2YXRlQ29vcmRpbmF0b3IpCisgICAg
OiBtX3ByaXZhdGVDb29yZGluYXRvcihXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvcikpCiAgICAg
LCBtX2xvZ2dlcihtYWtlUmVmKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCiAgICAgLCBtX2xv
Z0lkZW50aWZpZXIobmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpKQogewogICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUik7CiAKLSAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNldExv
Z2dlcihtX2xvZ2dlci5jb3B5UmVmKCksIG1fbG9nSWRlbnRpZmllcik7CisgICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xvZ2dlci5jb3B5UmVmKCksIG1fbG9nSWRlbnRpZmll
cik7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnNldENsaWVudChtYWtlV2Vha1B0cih0aGlz
KSk7CiB9CiAKIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IoKSA9IGRlZmF1bHQ7CkBAIC03MCw3ICs3Miw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNl
ZWtUbyh0aW1lLCBbdGltZSwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVu
dGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
JiBleGNlcHRpb24pIG11dGFibGUgeworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZWVrVG8o
dGltZSwgW3RpbWUsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmll
ciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhj
ZXB0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24p
IHsKICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODIsMTMgKzg0LDkgQEAgdm9pZCBNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJiBwcm8KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAg
IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7Ci0gICAgICAgICAgICAuYWN0aW9u
ID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpTZWVrdG8sCi0gICAgICAgICAgICAuc2Vla1RpbWUgPSB0
aW1lLAotICAgICAgICB9OwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxB
Y3Rpb25IYW5kbGVyKGRldGFpbHMpOwotCiAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHBy
b21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2Vla1RvJyBhY3Rpb24g
aGFuZGxlcj8KKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+aW50ZXJuYWxTZWVrVG8odGltZSk7CisK
ICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgfSk7CiB9CkBAIC0xMDQsNyArMTAyLDcg
QEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wbGF0Zm9y
bUNvb3JkaW5hdG9yLT5wbGF5KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlk
ZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBsYXko
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKICAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtMTE2LDEyICsxMTQsOSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBNZWRpYVNlc3Npb25BY3Rpb25E
ZXRhaWxzIGRldGFpbHMgewotICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlv
bjo6UGxheSwKLSAgICAgICAgfTsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uLT5j
YWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKLQogICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRo
ZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3BsYXknIGFjdGlv
biBoYW5kbGVyPworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5pbnRlcm5hbFBsYXkoKTsKKwogICAg
ICAgICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsKIH0KQEAgLTEzNyw3ICsxMzIsNyBAQCB2
b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wbGF0Zm9ybUNv
b3JkaW5hdG9yLT5wYXVzZShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVu
dGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
JiBleGNlcHRpb24pIG11dGFibGUgeworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wYXVzZShb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFi
bGUgewogICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgewogICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0xNDksMTIgKzE0NCw5IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnBhdXNlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBNZWRpYVNlc3Npb25BY3Rpb25E
ZXRhaWxzIGRldGFpbHMgewotICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlv
bjo6UGF1c2UsCi0gICAgICAgIH07Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbi0+
Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7Ci0KICAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0
aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdwYXVzZScgYWN0
aW9uIGhhbmRsZXI/CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmludGVybmFsUGF1c2UoKTsKKwog
ICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsKIH0KQEAgLTE3MCw3ICsxNjIsNyBA
QCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcmIHRy
YWNrLCBET01Qcm9taXNlRGVmZXJyZWQ8dgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAg
bV9wcml2YXRlQ29vcmRpbmF0b3ItPnNldFRyYWNrKHRyYWNrLCBbdHJhY2ssIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKICAgICAgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMTgyLDEzICsxNzQsOSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpz
ZXRUcmFjayhjb25zdCBTdHJpbmcmIHRyYWNrLCBET01Qcm9taXNlRGVmZXJyZWQ8dgogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscyBkZXRhaWxzIHsKLSAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246
OlNldHRyYWNrLAotICAgICAgICAgICAgLnRyYWNrSWRlbnRpZmllciA9IHRyYWNrLAotICAgICAg
ICB9OwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVy
KGRldGFpbHMpOwotCiAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0
IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2V0VHJhY2snIGFjdGlvbiBoYW5kbGVyPwor
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5pbnRlcm5hbFNldFRyYWNrKHRyYWNrKTsKKwogICAgICAg
ICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsKIH0KQEAgLTIwNSwzMSArMTkzLDk1IEBAIHZv
aWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24q
IHNlc3Npb24pCiB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hh
bmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRlKQogewogICAgIGlmICghc3Rh
dGUpIHsKLSAgICAgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdl
ZCh7IH0pOworICAgICAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+cG9zaXRpb25TdGF0ZUNoYW5n
ZWQoeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcGxhdGZvcm1Db29yZGlu
YXRvci0+cG9zaXRpb25TdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFQb3NpdGlvblN0YXRlIHsgc3RhdGUtPmR1cmF0aW9uLCBzdGF0ZS0+cGxheWJhY2tS
YXRlLCBzdGF0ZS0+cG9zaXRpb24gfSk7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBvc2l0
aW9uU3RhdGVDaGFuZ2VkKE1lZGlhUG9zaXRpb25TdGF0ZSB7IHN0YXRlLT5kdXJhdGlvbiwgc3Rh
dGUtPnBsYXliYWNrUmF0ZSwgc3RhdGUtPnBvc2l0aW9uIH0pOwogfQogCiB2b2lkIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlIHN0YXRlKQogewotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4o
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4o
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZTo6Tm9uZSksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGlzIG5vdCBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25l
IGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGU6OlBhdXNlZCksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQgaXMgbm90IFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6
OlBhdXNlZCBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZykgPT0gc3RhdGljX2Nhc3Q8
dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZTo6UGxheWluZyksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5n
IGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlOjpQbGF5aW5nIGFzIGV4cGVjdGVkIik7Ci0KLSAgICBtX3BsYXRmb3JtQ29vcmRp
bmF0b3ItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHN0YXRpY19jYXN0PFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU+KHN0YXRlKSk7CisgICAg
bV9wcml2YXRlQ29vcmRpbmF0b3ItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHN0YXRlKTsKIH0KIAog
dm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZSBzdGF0ZSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSA9PSBzdGF0aWNfY2Fz
dDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlTm90aGluZyksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90
aGluZyBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0
YSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhKSwgIk1lZGlhU2Vzc2lvblJl
YWR5U3RhdGU6OkhhdmVNZXRhZGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGFzIGV4cGVjdGVkIik7
Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFk
eVN0YXRlOjpIYXZlQ3VycmVudERhdGEpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJy
ZW50RGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEgaXMgbm90
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVDdXJyZW50RGF0YSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEpID09
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhKSwgIk1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU6OkhhdmVGdXR1cmVEYXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBhcyBleHBlY3RlZCIp
OwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91
Z2hEYXRhKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhIGlzIG5vdCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlRW5vdWdoRGF0YSBhcyBleHBlY3RlZCIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5y
ZWFkeVN0YXRlQ2hhbmdlZChzdGF0ZSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OnNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVyKGlu
dGVybmFsU2Vla1RvKHRpbWUpKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
cGxheVNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbFBsYXkoKSk7Cit9CisKK3Zv
aWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihpbnRlcm5hbFBhdXNlKCkpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpz
ZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4gY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoaW50
ZXJuYWxTZXRUcmFjayh0cmFjaykpOworfQorCitib29sIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjppbnRlcm5hbFNlZWtUbyhkb3VibGUgdGltZSkKK3sKKyAgICBpZiAoIW1fc2Vzc2lvbikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRh
aWxzIHsKKyAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAg
ICAgICAuc2Vla1RpbWUgPSB0aW1lLAorICAgIH07CisgICAgbV9zZXNzaW9uLT5jYWxsQWN0aW9u
SGFuZGxlcihkZXRhaWxzKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjppbnRlcm5hbFBsYXkoKQoreworICAgIGlmICghbV9zZXNzaW9uKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGRl
dGFpbHMgeworICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpQbGF5LAorICAg
IH07CisgICAgbV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjppbnRlcm5hbFBh
dXNlKCkKK3sKKyAgICBpZiAoIW1fc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgLmFjdGlvbiA9
IE1lZGlhU2Vzc2lvbkFjdGlvbjo6UGF1c2UsCisgICAgfTsKKyAgICBtX3Nlc3Npb24tPmNhbGxB
Y3Rpb25IYW5kbGVyKGRldGFpbHMpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OmludGVybmFsU2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFj
aykKK3sKKyAgICBpZiAoIW1fc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgLmFjdGlvbiA9IE1l
ZGlhU2Vzc2lvbkFjdGlvbjo6U2V0dHJhY2ssCisgICAgICAgIC50cmFja0lkZW50aWZpZXIgPSB0
cmFjaywKKyAgICB9OworICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7
CiAKLSAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRpY19j
YXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU+KHN0YXRlKSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIFdURkxvZ0NoYW5uZWwmIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5o
CmluZGV4IDI0N2NlYzg4MGIzNTNmNDZiY2JkODcwZmY1ZGJjMTkyYzk5OTdjOTIuLmU5MWY2M2Uy
YjQwMWUzMmQxMDg0MzU5NTE0NDM4MGY2MzA4YjM5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCiAKKyNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgpAQCAtMzUsMTIg
KzM3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IERPTVByb21pc2VEZWZlcnJlZDsKIAotY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjsKLWNsYXNzIE1lZGlhU2Vzc2lvbjsKLQotY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBN
ZWRpYVNlc3Npb246Ok9ic2VydmVyIHsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yCisg
ICAgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4KKyAgICAsIHB1
YmxpYyBNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudAorICAgICwgcHVibGljIE1lZGlhU2Vz
c2lvbjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvcj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRpYVNlc3Np
b25Db29yZGluYXRvcj4gY3JlYXRlKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+
JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5NZWRpYVNlc3Npb25Db29yZGluYXRvcigpOwogCiAg
ICAgdm9pZCBzZWVrVG8oZG91YmxlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC01
MCwxMyArNTIsMjcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNZWRpYVNlc3Npb24oTWVkaWFT
ZXNzaW9uKik7CiAKKyAgICB1c2luZyBNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudDo6d2Vh
a1B0ckZhY3Rvcnk7CisgICAgdXNpbmcgV2Vha1ZhbHVlVHlwZSA9IE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yQ2xpZW50OjpXZWFrVmFsdWVUeXBlOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+
JiYpOworCiAgICAgLy8gTWVkaWFTZXNzaW9uOjpPYnNlcnZlcgogICAgIHZvaWQgcG9zaXRpb25T
dGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgZmluYWw7CiAgICAgdm9p
ZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsK
ICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpIGZpbmFs
OwogCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmKTsKKyAgICAvLyBNZWRpYVNlc3Npb25D
b29yZGluYXRvckNsaWVudAorICAgIHZvaWQgc2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHBsYXlTZXNzaW9u
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgIHZvaWQgcGF1c2VT
ZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+KSBmaW5hbDsKKyAgICB2b2lkIHNl
dFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PikgZmluYWw7CisKKyAgICBib29sIGludGVybmFsU2Vla1RvKGRvdWJsZSk7CisgICAgYm9vbCBp
bnRlcm5hbFBsYXkoKTsKKyAgICBib29sIGludGVybmFsUGF1c2UoKTsKKyAgICBib29sIGludGVy
bmFsU2V0VHJhY2soY29uc3QgU3RyaW5nJik7CiAKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigp
IGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQpAQCAtNjQsMTQgKzgwLDkgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4g
Ik1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQogCiAgICAgV2Vha1B0cjxNZWRpYVNlc3Npb24+
IG1fc2Vzc2lvbjsKLSAgICBSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9w
bGF0Zm9ybUNvb3JkaW5hdG9yOworICAgIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGU+IG1fcHJpdmF0ZUNvb3JkaW5hdG9yOwogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2Vy
OwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKLQotICAgIHN0ZDo6dW5pcXVlX3B0
cjxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fc2Vla1RvUHJvbWlzZTsKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3BsYXlQcm9taXNlOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fcGF1c2VQcm9taXNlOwot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fc2V0VHJhY2tQ
cm9taXNlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDgwMjRlMGU5NDNlOThlZWM5ZjJlYTgyY2VlOWY4ZDJmNzI4ODMwYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByaXZhdGUuaCIKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQor
CisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlOjpzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lk
ZW50aWZpZXIpCit7CisgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKGxvZ2dlcik7CisgICAgbV9s
b2dJZGVudGlmaWVyID0gbG9nSWRlbnRpZmllcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MzcyZDkzYzllNzlk
ZjhhMjg3NTA4MDJhYTc1MTJkYzkxZTE0YzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUu
aApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgor
I2luY2x1ZGUgIk1lZGlhUG9zaXRpb25TdGF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgiCisjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTG9nZ2VyOwor
fQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Q2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xp
ZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGll
bnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2Vla1Nlc3Npb25Ub1RpbWUoZG91
YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHBsYXlTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGF1c2VTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPikgPSAwOworfTsKKworY2xhc3MgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcml2YXRlPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcml2YXRlKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhk
b3VibGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8RXhjZXB0aW9uPiYmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXVzZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9zaXRp
b25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXli
YWNrU3RhdGUpID0gMDsKKworICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IFdURjo6TG9nZ2VyJiwg
Y29uc3Qgdm9pZCopOworICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2Vha1B0cjxNZWRpYVNl
c3Npb25Db29yZGluYXRvckNsaWVudD4gY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50O30KKwor
cHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSgp
ID0gZGVmYXVsdDsKKworICAgIGNvbnN0IFdURjo6TG9nZ2VyKiBsb2dnZXJQdHIoKSBjb25zdCB7
IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKworICAgIFdlYWtQdHI8TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50
OyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPGNvbnN0IFdURjo6TG9nZ2VyPiBtX2xvZ2dlcjsK
KyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxNZWRpYVNlc3Np
b25Db29yZGluYXRvckNsaWVudD4gbV9jbGllbnQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUu
aAppbmRleCA3MDYzYzc4ZTNkNzhiZmFkMzg4ZGYzMDk0NTRhOWNmN2EzNTRkMmIxLi5hNTdiYmMy
Y2ExZDk2YTk3ZGQ1NGFlMzg4OGRkYmZkZDM2NWNjZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZS5oCkBAIC0zNyw0ICszNywxNyBAQCBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXli
YWNrU3RhdGUgOiB1aW50OF90IHsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3Bh
Y2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSwKKyAgICAgICAgV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSwKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nCisgICAgPjsKK307CisKK30KKwogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oCmluZGV4IDY0NTIz
ZGQ1NGE3MWU2NjU0YTE3YmIwYzc3NGY3ODgxNjMzN2Y0NjUuLmU1MTVmMTY0ZWQ2YzQ2MDNlYzIy
Njg1NGMzMjRkMGQxNzFhZjllODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKQEAgLTM5LDQg
KzM5LDE5IEBAIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSA6IHVpbnQ4X3Qgewog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlTm90aGluZywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2
ZU1ldGFkYXRhLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZl
Q3VycmVudERhdGEsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6Okhh
dmVGdXR1cmVEYXRhLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlRW5vdWdoRGF0YQorICAgID47Cit9OworCit9CisKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTc1YTJmMzM1ZGRhNTU3MzI4
NDNkYWIwMGE2MzE4OTg0Yjg0NGE2Yy4uOGU2MDRiYzU4ZDEzMTRjYmY5NjJlNzFkOTMwODBiZmYz
NzNjMDRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEzMiw2ICsxMzIsNyBAQCBNb2R1bGVzL21lZGlh
Y2FwYWJpbGl0aWVzL05hdmlnYXRvck1lZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbi5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cAorTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmNw
cAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmNwcAogTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAogTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL0Jsb2JFdmVudC5jcHAKQEAgLTE5OTksNyArMjAwMCw2IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L1BhdGguY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVy
bi5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVSYW5nZXMuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9SZWdpb24uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBmMzY4NWY5NTZiNmViMDI2MWY0OWQ1MjI0NTFiY2Q2OTg4
NzNmMGQ1Li45ODQ4NTNlNTUzMjJhN2Y4MzRlODgyNzJlZWJiMjc3OWY5YTliODc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05
MCw3ICs5MCw2IEBACiAJCTA3MDc1NkQ0MTQyMzlBNEYwMDQxNDE2MSAvKiBKU0hUTUxUcmFja0Vs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
MDc1NkQyMTQyMzlBNEUwMDQxNDE2MSAvKiBKU0hUTUxUcmFja0VsZW1lbnQuaCAqLzsgfTsKIAkJ
MDcwNzU2REUxNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEODE0MjM5QjRCMDA0MTQx
NjEgLyogSlNUZXh0VHJhY2tDdWUuaCAqLzsgfTsKIAkJMDcwNzU2RTAxNDIzOUI0RTAwNDE0MTYx
IC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcwNzU2REExNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3Vl
TGlzdC5oICovOyB9OwotCQkwNzA4RjJCNjI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaCAqLzsgfTsKIAkJMDcwOUQ3OEYxQUU1NTU1NDAwNEU0MkY4IC8qIFdl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3MDlENzhEMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDcwOUQ3OTIxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOUQ3
OTAxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovOyB9
OwogCQkwNzA5RDc5MzFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOUQ3
OTExQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQxLDggKzE0MCwx
NyBAQAogCQkwNzdBRjE0MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc3QUYxNDExOEY0QjFCQjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzdC
NjQxMzFCOTRGMTJFMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0I2NDExMUI5
NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3N0I2NDE3MUI5NUY3
MDMwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QjY0MTUxQjk1RjcwMzAwM0U5QUQ1IC8q
IE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1NzEyNjBGOUY3NjAwNzJGMTlGIC8qIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
NzdCQTU3MjI2MEZBMDE0MDA3MkYxOUYgLyogTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEyNjI1MzhDREFC
MDBBMTMwMEMgLyogTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1NzUyNjBGQTVGRTAwNzJGMTlGIC8q
IE1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0REREVBMjMyNTM4Q0Q4MDAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTc2MjYwRkFE
RjYwMDcyRjE5RiAvKiBNZWRpYVBvc2l0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERERFQTM0MjUzOENFNjIwMEExMzAwQyAvKiBNZWRp
YVBvc2l0aW9uU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkwNzdCQTU3NzI2MEZBRUM4MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEy
QjI1MzhDREUzMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1NzgyNjBGQUVEQjAwNzJG
MTlGIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERERFQTNBMjUzOEU5QzIwMEExMzAwQyAvKiBNZWRp
YVNlc3Npb25BY3Rpb25IYW5kbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1NzkyNjBGQUVFODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENERERFQTI5MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MDc3QkE1N0EyNjBGQUVGODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NDQ3MUZEMjVFMTgw
MDUwMDU0QjIzMSAvKiBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1N0IyNjBGQjEwMjAwNzJGMTlG
IC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERERFQTM2MjUzOENFNzAwMEExMzAwQyAvKiBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMDc3QkE1N0UyNjBGRUYzNjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDc3QkE1N0MyNjBGRTczODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTA3ODI4OTQ4MjVDMjNGRTUwMEE3QkEwMyAvKiBNZWRpYU1ldGFkYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEyRDI1MzhDRTA0
MDBBMTMwMEMgLyogTWVkaWFNZXRhZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTA3ODI4OTRBMjVDMzZGQ0YwMEE3QkEwMyAvKiBNZWRpYVNl
c3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
RERFQTIzMjUzOENEODAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb24uaCAqLzsgfTsKIAkJMDc4Mjg5
NEIyNUMzNkZFRDAwQTdCQTAzIC8qIE1lZGlhSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERERFQTMyMjUzOENFMzUwMEExMzAwQyAvKiBNZWRp
YUltYWdlLmggKi87IH07CiAJCTA3ODI4OTRDMjVDMzcwMEIwMEE3QkEwMyAvKiBNZWRpYU1ldGFk
YXRhSW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0REREVBMzAyNTM4Q0UxRTAwQTEzMDBDIC8qIE1lZGlhTWV0YWRhdGFJbml0LmggKi87IH07CiAJ
CTA3ODMyMjg1MTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzgzMjI4MzE4MDEz
RUQ4MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oICovOyB9OwpAQCAtNTY5NSw3
ICs1NzAzLDYgQEAKIAkJMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3Vl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDc1NkQ5MTQyMzlCNEMwMDQxNDE2MSAvKiBK
U1RleHRUcmFja0N1ZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNUZXh0VHJhY2tDdWVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDcwNzU2REExNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0N1ZUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzA5RDc4QzFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNl
c3Npb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OEQx
QUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTU4NTAsNiArNTg1Nyw4IEBACiAJCTA3N0I2NDExMUI5NEYxMkUwMDNFOUFENSAvKiBN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzdCNjQxNDFCOTVGNzAzMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1Rh
cmdldE1vY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQ
bGF5YmFja1RhcmdldE1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzdC
NjQxNTFCOTVGNzAzMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc3QkE1N0MyNjBGRTczODAwNzJGMTlGIC8qIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc3
QkE1N0QyNjBGRTczOTAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzgzMjI4MjE4MDEzRUQ3MDA5OTlFMEMg
LyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc4MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzg0NjM0MDE0NUIxNTFB
MDBBNThERjEgLyogSlNUcmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTVHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01OTM2LDcgKzU5NDUsNiBAQAogCQkwN0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyogSlNUZXh0
VHJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNU
ZXh0VHJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UxMTcw
NjE0ODlFQkVCMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVk
aWFQbGF5YmFja1RhcmdldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVBsYXliYWNrVGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3RTVGMzky
MjVFQUE5MUYwMEE4NTNBRCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyog
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5k
TWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yNjkzMyw4ICsyNjk0MSw2IEBACiAJCQkJNTUwNjQwQUQyNDA3NTZEQTAwQUFFMDQ1
IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmggKi8sCiAJCQkJMDU2MkY5NjAxNTczRjg4
RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywKIAkJCQlDRUVGQ0Q3QjE5REIzM0RDMDAz
ODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggKi8sCi0JCQkJMDdFNUYzOTIy
NUVBQTkxRjAwQTg1M0FEIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICov
LAotCQkJCTA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmggKi8sCiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3Jt
VGV4dFRyYWNrLmggKi8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3Jt
VGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRm
b3JtVGltZVJhbmdlcy5oICovLApAQCAtMjgzOTQsNiArMjg0MDAsOCBAQAogCQkJCTA3MkRCQzAz
MjVEQzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovLAogCQkJCTA3
MkRCQkZCMjVEQjM4QkMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8s
CiAJCQkJMDczNkI3MzAyNjA5NEEzNzAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
TWl4aW4uaWRsICovLAorCQkJCTA3N0JBNTdEMjYwRkU3MzkwMDcyRjE5RiAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuY3BwICovLAorCQkJCTA3N0JBNTdDMjYwRkU3MzgwMDcyRjE5
RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCAqLywKIAkJCQlDRERERUEyOTI1
MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJCUNE
RERFQTI4MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbCAq
LywKIAkJCQkwNzM2QjczMjI2MDk1NTU0MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uUGxheWxpc3RN
aXhpbi5pZGwgKi8sCkBAIC0zMzk2OSw2ICszMzk3Nyw3IEBACiAJCQkJREY5QUZENzIxM0ZDMzFE
ODAwMTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEQzhCNUEzMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1MDUyNEY0MUI3MTJG
RjYwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTA3N0JBNTc2MjYwRkFERjYwMDcyRjE5RiAvKiBNZWRpYVBvc2l0aW9u
U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBN
ZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBG
RTUgLyogTWVkaWFRdWVyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ5M0I2QkYxRDc0QjQxMjAw
ODhFNzgwIC8qIE1lZGlhUXVlcnlCbG9ja1dhdGNoZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzM5
OTIsMTIgKzM0MDAxLDE5IEBACiAJCQkJMUIxMjREOEQxRDM4MEI3MDAwRUNERkIwIC8qIE1lZGlh
U2FtcGxlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RCRUFFQUQxOUQ5MkI2QzAwQkVC
QTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MTdEMjc1RTFFQUM1Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCBpbiBIZWFk
ZXJzICovLAotCQkJCTA3ODI4OTRBMjVDMzZGQ0YwMEE3QkEwMyAvKiBNZWRpYVNlc3Npb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTA3N0JBNTc1MjYwRkE1RkUwMDcyRjE5RiAvKiBNZWRpYVNlc3Np
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA3N0JBNTc3MjYwRkFFQzgwMDcyRjE5RiAvKiBNZWRp
YVNlc3Npb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA3N0JBNTdCMjYwRkIxMDIwMDcy
RjE5RiAvKiBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
NzdCQTU3ODI2MEZBRURCMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMDc3QkE1NzEyNjBGOUY3NjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3RTI2MEZFRjM2MDA3MkYx
OUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTZFQ0FFNTI1QjU4Q0M0MDBCMzREQTUgLyogTWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREE5NTkzRjI0MTJCQUUwMDA5MTBFRUYgLyogTWVkaWFT
ZXNzaW9uSGVscGVySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0NjBBMjI0MTI5OTQ1MDA4
MTRCRTcgLyogTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3
RjdBRUYyMTM5QkY2RjAwRkJBN0VDIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3N0JBNTc5MjYwRkFFRTgwMDcyRjE5RiAv
KiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3
QTI2MEZBRUY4MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0QzQTQ5NUYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDY0MUVCMzE4MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBNzE4MDQ3NEY3MDAxNkU2ODUgLyogTWVk
aWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDEwMCw2ICszNDEx
Niw3IEBACiAJCQkJOTcxMTQ2MDQxNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QjUwN0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2
aWdhdG9ySXNMb2dnZWRJbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVBNzI1RDYxQUNBQkQ1NzAw
RUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc3
QkE1NzIyNjBGQTAxNDAwNzJGMTlGIC8qIE5hdmlnYXRvck1lZGlhU2Vzc2lvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTk2RTU5REYxREYwMTI4RDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFFRThCNzgyNDEzMTkxRjAwRTc5NEQ2IC8qIE5hdmln
YXRvcldlYlhSLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQg
LyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzMjUsNyAr
MzQzNDIsNiBAQAogCQkJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2Fs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNEN0MxOURCMzNEQzAwMzg3NkQ3IC8qIFBsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwRTA5MTkxODc1
RUVGQzAwM0ExRDNDIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwNzA4RjJCNjI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0NjAwNUQzMUNCIC8qIFBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3Njkw
OUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzU5ODkwNTgxNEU5QzI5OTAwRThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb24uaAppbmRleCA5MTQ1N2ViMWE2MWU0NjczYWMxOTNiODIwM2U5MGI4ZjNl
NjI3NjUxLi4wMjQ5MzBjY2JhMDExYjEzZWI5NDcxZmZkYWE1MTUyYzcyMThmYmMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJNZWRpYVNlc3Npb25Hcm91cElkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBl
ci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5MTE3ODUxMTM5OWY0MTVmNzgxYjMyYWFlZTc2YzExM2ViMTdlYmNk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgi
Ci0KLSNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLQotI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQotewotICAgIHN0YXRpYyBjb25zdCBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0gewotICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdf
SU1QTCgiSGF2ZU5vdGhpbmciKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhh
dmVNZXRhZGF0YSIpLAotICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUN1cnJl
bnREYXRhIiksCi0gICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlRnV0dXJlRGF0
YSIpLAotICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUVub3VnaERhdGEiKSwK
LSAgICB9OwotICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhp
bmcpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgaXMgbm90IDAgYXMgZXhw
ZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFk
YXRhKSA9PSAxLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlzIG5vdCAx
IGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6Okhh
dmVDdXJyZW50RGF0YSkgPT0gMiwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50
RGF0YSBpcyBub3QgMiBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSkgPT0gMywgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVGdXR1cmVEYXRhIGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2Vy
dChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhKSA9PSA0LCAiTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKLSAgICBB
U1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVl
cykpOwotICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSldOwotfQot
Ci1TdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKLXsKLSAgICBzdGF0
aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKLSAgICAgICAgTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vbmUiKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoIlBhdXNlZCIpLAotICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxheWlu
ZyIpLAotICAgIH07Ci0gICAgc3RhdGljX2Fzc2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpO
b25lKSwgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0
ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkKSA9
PSAxLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkIGlzIG5vdCAxIGFzIGV4cGVj
dGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcp
ID09IDIsICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nIGlzIG5vdCAyIGFzIGV4
cGVjdGVkIik7Ci0gICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpIDwgV1RGX0FS
UkFZX0xFTkdUSCh2YWx1ZXMpKTsKLSAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVf
dD4oc3RhdGUpXTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMGRjNTFkMmE2ZjgwYWJj
OTdhYTYwN2Q5ZTlhNTEwMTUwZjMyZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQotCi0jaW5jbHVkZSAiRXhjZXB0aW9uLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5o
IgotI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
IDogcHVibGljIFJlZkNvdW50ZWQ8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiB7Ci1w
dWJsaWM6Ci0gICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0g
ZGVmYXVsdDsKLQotICAgIHVzaW5nIFNlZWtDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47Ci0gICAgdmlydHVhbCB2b2lkIHNl
ZWtUbyhkb3VibGUsIFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7Ci0KLSAgICB1c2luZyBQ
bGF5Q29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJik+OwotICAgIHZpcnR1YWwgdm9pZCBwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFj
ayYmKSA9IDA7Ci0KLSAgICB1c2luZyBQYXVzZUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsKLSAgICB2aXJ0dWFsIHZvaWQg
cGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7Ci0KLSAgICB1c2luZyBTZXRUcmFj
a0NvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNl
cHRpb24+JiYpPjsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRU
cmFja0NvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKLQotICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0
IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKQotICAgIHsKLSAgICAg
ICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKGxvZ2dlcik7Ci0gICAgICAgIG1fbG9nSWRlbnRpZmll
ciA9IGxvZ0lkZW50aWZpZXI7Ci0gICAgfQotCi0gICAgc3RydWN0IE1lZGlhUG9zaXRpb25TdGF0
ZSB7Ci0gICAgICAgIGRvdWJsZSBkdXJhdGlvbiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6aW5maW5pdHkoKTsKLSAgICAgICAgZG91YmxlIHBsYXliYWNrUmF0ZSA9IDE7Ci0gICAgICAg
IGRvdWJsZSBwb3NpdGlvbiA9IDA7Ci0gICAgfTsKLQotICAgIGVudW0gY2xhc3MgTWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZSA6IHVpbnQ4X3QgewotICAgICAgICBIYXZlTm90aGluZywKLSAgICAgICAg
SGF2ZU1ldGFkYXRhLAotICAgICAgICBIYXZlQ3VycmVudERhdGEsCi0gICAgICAgIEhhdmVGdXR1
cmVEYXRhLAotICAgICAgICBIYXZlRW5vdWdoRGF0YSwKLSAgICB9OwotCi0gICAgZW51bSBjbGFz
cyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIDogdWludDhfdCB7Ci0gICAgICAgIE5vbmUsCi0g
ICAgICAgIFBhdXNlZCwKLSAgICAgICAgUGxheWluZywKLSAgICB9OwotCi0gICAgdmlydHVhbCB2
b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OwotCi0gICAgY29uc3QgTG9n
Z2VyKiBsb2dnZXJQdHIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQotICAgIGNv
bnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7
IH0KLSAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KLSAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFu
bmVsKCkgY29uc3QgeyByZXR1cm4gTG9nTWVkaWE7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8
Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKLSAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7
Ci19OwotCi1TdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSk7Ci1TdHJpbmcgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IGMzNzVmYjYxMzI1MGQ3MWQ3MTE0
NTc2NzQ5NDNhNWMwMTc4NTI5ZmEuLjg4OTNkMmZiY2VjNTVmNzQ5NDI1MTM2MTkzNzIyMTkwZjAy
NjAyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgT3B0aW9uYWw8RXhjZXB0aW9u
PiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlc3VsdCgpIGNvbnN0CiAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNl
ZWtUbyhkb3VibGUgdGltZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lk
IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCiB7CiAg
ICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKICAgICBtX2Nv
bnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewpAQCAtNjcsNyArNjcsNyBAQCB2b2lkIE1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBTZWVrQ29tcGxl
dGVkQ2FsbGJhY2smJiBjYQogICAgIH0pOwogfQogCi12b2lkIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BP
U1NJQkxFKExPR0lERU5USUZJRVIpOwogICAgIG1fY29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0
YWJsZSB7CkBAIC03NSw3ICs3NSw3IEBAIHZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCi12
b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxs
YmFjayYmIGNhbGxiYWNrKQordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNl
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFj
aykKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOwogICAgIG1f
Y29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQg
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNr
JiYgY2FsbGJhY2spCiAgICAgfSk7CiB9CiAKLXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25z
dCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+
JiYgY2FsbGJhY2spCiB7CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVS
KTsKICAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewpAQCAtOTEsMjQgKzkx
LDI5IEBAIHZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBT
dHJpbmcsIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhCiAgICAgfSk7CiB9CiAKLXZvaWQgTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVBvc2l0aW9uU3RhdGU+KQordm9pZCBN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFs
PE1lZGlhUG9zaXRpb25TdGF0ZT4pCiB7CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJ
REVOVElGSUVSKTsKICAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2so
bV9jb250ZXh0LmdldCgpLCAicG9zaXRpb25TdGF0ZUNoYW5nZWQiKTsKIH0KIAotdm9pZCBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCit2b2lkIE1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZSBzdGF0ZSkKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5U
SUZJRVIsIHN0YXRlKTsKICAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJh
Y2sobV9jb250ZXh0LmdldCgpLCAicmVhZHlTdGF0ZUNoYW5nZWQiKTsKIH0KIAotdm9pZCBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCit2
b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJ
QkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsKICAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNj
aGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgpLCAicGxheWJhY2tTdGF0ZUNoYW5nZWQiKTsK
IH0KIAorV1RGTG9nQ2hhbm5lbCYgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFu
bmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKaW5kZXggODcwYmI0Y2Iw
YmU5NmY4NWZkNDU3MGU4ZTM5M2I3MjM2ZmU4ZjJiMy4uNDgzNTZmOWFlMTNlN2MzODg0N2Y0OThi
MGMyODVlMTEzOWY3N2JiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0yOCwxNSArMjgsMTYgQEAKICNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKIAogI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1
ZXVlLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2lu
Y2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU3RyaW5nQ2FsbGJh
Y2s7CiAKLWNsYXNzIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciA6IHB1YmxpYyBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHsKK2NsYXNzIE1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvciA6IHB1YmxpYyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5n
Q2FsbGJhY2s+JiYpOwpAQCAtNDYsMTUgKzQ3LDE4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQ
dHI8U3RyaW5nQ2FsbGJhY2s+JiYpOwogCi0gICAgdm9pZCBzZWVrVG8oZG91YmxlLCBTZWVrQ29t
cGxldGVkQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBwbGF5KFBsYXlDb21wbGV0ZWRDYWxs
YmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVkQ2FsbGJhY2smJikg
ZmluYWw7Ci0gICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29tcGxldGVk
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcGxh
eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFs
OworICAgIHZvaWQgcGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRp
b24+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CiAKICAg
ICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4p
IGZpbmFsOwogICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZSkgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlKSBmaW5hbDsKIAorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0
IHsgcmV0dXJuICJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9CisgICAgV1RGTG9nQ2hh
bm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0OworCiAgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiByZXN1
bHQoKSBjb25zdDsKIAogICAgIFJlZjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX2NvbnRleHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAppbmRleCBkMGM5MjE3ODJhZTU1MTVlMDk1MTViZGI1MWNjNGUxOTBl
ZTk2NTMxLi41MWM1YTA1OTYxYjljOGZhNTBmNzZmYjFlODNkZWY1OTlkODdkZmYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTE4NSw2ICsxODUsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5CisKKyAgICBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eQorCiAgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKICAgICBVSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZQpAQCAtMjQ1
LDYgKzI0OCw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyCiAgICAgV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkKIAorICAgIFdlYlByb2Nlc3MvTWVkaWFTZXNzaW9u
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yCisKICAgICBXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ05ldHdvcmsKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JU
Q0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlcgogICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViTUROU1JlZ2lzdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKaW5kZXggNWU4ZmQzY2I4NzkyMDc5ZGYxYjEzY2FkOTM1YjdiNzNkMTE0Mjg2Zi4u
MGUwZmI4NzBlNTFhNDQ2MDYzMTVhOTRhMjRjNTQ2MTI5YWIwZWI2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTA4LDYgKzEwOCw3IEBA
ICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUlQ
cm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL01lZGlhL1Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0xNjQsNiArMTY1
LDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JJbnRlcnJ1cHREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1l
c3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5tZXNz
YWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKaW5kZXggZWYyMTVhYzM3OTY5OGU0N2E4NjQ5ZTI0MWM3YzY4ZGQwYjc3NzM2MC4uMzRhYzNi
MWZhOTM0NzZkMTVlNDI0ZmI3YjMwNzNmZTUyNzM5Nzg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNDAsNiArMjQwLDEyIEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVj
b3JkZXJzTWVzc2FnZXNSZXBsaWVzCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
ck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5
TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Np
b25IZWxwZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Np
b25IZWxwZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IGY1Mjk0ZGU5NWQ1MWExZjE1NjNkZWViNzlmMTkyMTI0MDJjMzMyNDMuLjk1YmY0NTE2YTZlMWRk
MWM0YWQ0MGEwZmU5ODE0YjdlOTA2OWIyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTYyLDYgKzYyLDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0lj
b25EYXRhYmFzZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0luc3BlY3RvciBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAorICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9NZWRpYVNlc3Npb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0YyBcCkBAIC0xNzAsNiArMTcxLDcgQEAgTUVTU0FHRV9S
RUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sIFwKIAlVSVByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eSBcCiAJVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgXAogCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlciBcCkBAIC0xOTcsNiArMTk5LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyIFwKIAlX
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IgXAogCVdlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJIFwKKwlXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvciBcCiAJV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlciBcCiAJV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5IFwK
IAlXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IGRkNGQyYTUwNzY1NzZiYTNkNDU2MmVjYWMzMzFiMTk5OTNjOTk2OWYu
LmE4NmU3MTdmNzIwNDMzYzY3MzIxYzRmNWQxOTcwNDJjMTQwMzgzNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKQEAgLTcxMyw2ICs3MTMsOCBAQCBSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiBSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRp
YVNlc3Npb25IZWxwZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjBkZDMzY2QyMzM1YTc5NDM0M2I3OTlhNGVkYTFlNDIwODA3OTYyYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJpdmF0ZVByb3h5LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkKKyAgICA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4KKyAg
ICAsIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5
PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
UHJveHkoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2Vla1RvKGRvdWJsZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXVzZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOworCisg
ICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6Ok1l
ZGlhUG9zaXRpb25TdGF0ZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5n
ZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
KSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGVQcm94eSgpID0gZGVmYXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMjY3MDQ1YzQzNWM1Mzc0
ZmM3YmQyMmI2NzA2NGRkYmI2YmYzMDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApA
QCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmgiCisKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWZQdHI8
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eTo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBSZWY8TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+JiYgcHJpdmF0ZUNvb3JkaW5hdG9yKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHkod2ViUGFnZVByb3h5LCBXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvcikpKTsKK30KKwor
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6UmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgUmVmPE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiYmIHByaXZhdGVDb29yZGluYXRvcikKKyAgICA6IG1f
d2ViUGFnZVByb3h5KHdlYlBhZ2VQcm94eSkKKyAgICAsIG1fcHJpdmF0ZUNvb3JkaW5hdG9yKFdU
Rk1vdmUocHJpdmF0ZUNvb3JkaW5hdG9yKSkKKyAgICAsIG1fbG9nZ2VyKG1fd2ViUGFnZVByb3h5
LmxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkK
K3sKKyAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK1JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6On5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5KCkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpKTsKK30KKworCit2
b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5hdGVTZWVrVG8o
ZG91YmxlIHRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9
IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyLCB0aW1lKTsKKworICAg
IG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZWVrVG8odGltZSwgW2lkZW50aWZpZXJdIChjb25zdCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgQUxX
QVlTX0xPRyhpZGVudGlmaWVyLCAiY29tcGxldGlvbiIpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5hdGVQbGF5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xP
RyhpZGVudGlmaWVyKTsKKworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5KFtpZGVudGlm
aWVyXSAoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7
CisgICAgICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgImNvbXBsZXRpb24iKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICB9KTsKK30KKwordm9p
ZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRlUGF1c2UoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsK
KyAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIpOworCisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3It
PnBhdXNlKFtpZGVudGlmaWVyXSAoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7CisgICAgICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgImNvbXBsZXRp
b24iKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAg
ICB9KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojo6OmNv
b3JkaW5hdGVTZXRUcmFjayhjb25zdCBTdHJpbmcmIHRyYWNrLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0co
aWRlbnRpZmllcik7CisKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+c2V0VHJhY2sodHJhY2ss
IFtpZGVudGlmaWVyXSAoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbikg
bXV0YWJsZSB7CisgICAgICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgImNvbXBsZXRpb24iKTsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICB9KTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpwb3NpdGlvblN0
YXRlQ2hhbmdlZChPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRlKQor
eworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0
b3ItPnBvc2l0aW9uU3RhdGVDaGFuZ2VkKHN0YXRlKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5OjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Cisg
ICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHN0YXRlKTsKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpyZWFkeVN0YXRlQ2hh
bmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUik7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2Vk
KHN0YXRlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNWJjMjMzNWVhZjY2ZjE5ZmNhNWI2ZmJkMzgzNDE1MWUxYjIwNTU2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQorCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaCIKKyNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3Qg
RXhjZXB0aW9uRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQ
cm94eTsKKworY2xhc3MgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSA6IHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIFJlZkNvdW50ZWQ8UmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eT4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eT4g
Y3JlYXRlKFdlYlBhZ2VQcm94eSYsIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQ
cm94eT4mJik7CisgICAgflJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoKTsKKwor
ICAgIHZvaWQgc2Vla1RvKGRvdWJsZSk7CisgICAgdm9pZCBwbGF5KCk7CisgICAgdm9pZCBwYXVz
ZSgpOworICAgIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAg
ZXhwbGljaXQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkm
LCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+JiYpOworCisgICAgdXNp
bmcgQ29vcmRpbmF0ZUNvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+OworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIFJlY2VpdmVycy4KKyAgICB2b2lkIGNvb3Jk
aW5hdGVTZWVrVG8oZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGEmKT4mJik7CisgICAgdm9pZCBjb29yZGluYXRlUGxheShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJik7CisgICAgdm9p
ZCBjb29yZGluYXRlUGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhJik+JiYpOworICAgIHZvaWQgY29vcmRpbmF0ZVNldFRyYWNrKGNvbnN0IFN0
cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YSYpPiYmKTsKKyAgICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6
Ok1lZGlhUG9zaXRpb25TdGF0ZT4pOworICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSk7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdl
ZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKTsKKworICAgIFdlYlBhZ2VQcm94
eSYgbV93ZWJQYWdlUHJveHk7CisgICAgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0
ZVByb3h5PiBtX3ByaXZhdGVDb29yZGluYXRvcjsKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xv
Z2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTZiNjBkMzk4ODExYjdkODI1MmViYThmZTkwZmFjMTMwNmU1ZGJlYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0NCBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyMvCisKKyNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKKworICAgIENvb3JkaW5hdGVTZWVrVG8oZG91
YmxlIHRpbWUpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5
bmMKKworICAgIENvb3JkaW5hdGVQbGF5KCkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+IGVycm9yKSBBc3luYworCisgICAgQ29vcmRpbmF0ZVBhdXNlKCkgLT4gKE9wdGlvbmFs
PFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKSBBc3luYworCisgICAgQ29vcmRpbmF0ZVNl
dFRyYWNrKFN0cmluZyB0cmFja0lkZW50aWZpZXIpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpFeGNl
cHRpb25EYXRhPiBlcnJvcikgQXN5bmMKKworICAgIFBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlv
bmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0ZT4gc3RhdGUpOworCisgICAgUmVhZHlTdGF0
ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3Rh
dGUpOworCisgICAgUGxheWJhY2tTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDk5YjM0NjA5ODcxZGRmYWNkOTY3ZGI5
NzZhNjY0ZDE2MDM4ZTE3YWIuLmQ1ZTQ0MmQ4N2M4MWQ4NTljYTEyMjU2Y2M5NzJkNDU4OTJjMGRj
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjk2LDYg
KzI5NiwxMSBAQAogI2luY2x1ZGUgIldlYkRhdGVUaW1lUGlja2VyLmgiCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorI2luY2x1ZGUgIk1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eS5oIgorI2VuZGlmCisKIC8vIFRoaXMgY29udHJvbHMgd2hhdCBzdHJh
dGVneSB3ZSB1c2UgZm9yIG1vdXNlIHdoZWVsIGNvYWxlc2NpbmcuCiAjZGVmaW5lIE1FUkdFX1dI
RUVMX0VWRU5UUyAxCiAKQEAgLTEwMzY4LDYgKzEwMzczLDI0IEBAIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5IFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94
RXh0ZW5zCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQordm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJiBwcml2YXRlQ29vcmRpbmF0b3Is
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vha1B0cjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFtX21lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkpOworCisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJQYWdlOjpDcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpLCBbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHByaXZhdGVDb29yZGluYXRvciA9IFdURk1vdmUocHJpdmF0
ZUNvb3JkaW5hdG9yKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKKworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8
ICFzdWNjZXNzKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgd2Vha1RoaXMtPm1fbWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eSA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6
OmNyZWF0ZSgqd2Vha1RoaXMsIFdURk1vdmUocHJpdmF0ZUNvb3JkaW5hdG9yKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKG1ha2VXZWFrUHRyKHdlYWtUaGlzLT5tX21lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHkuZ2V0KCkpKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiB2b2lkIFdlYlBhZ2VQcm94eTo6YXBwQm91bmROYXZpZ2F0aW9uRGF0YShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEFwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGEyY2JlOGFhODZiYjdlZjJlM2ZiODVkNTg1ODhjYzVjM2NiNWI2ZDIuLjVlMDMw
MGQyMzU1ZTAyMzU4YjBkY2QxNDE4ODVhNzQxN2QzNjc4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMjksMTAgKzMyOSwxMiBAQCBjbGFzcyBOYXRpdmVXZWJL
ZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIGNsYXNzIE5hdGl2ZVdl
YldoZWVsRXZlbnQ7CiBjbGFzcyBQYWdlQ2xpZW50OworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlUHJveHk7CiBjbGFzcyBQcm92aXNpb25hbFBhZ2VQcm94eTsKIGNsYXNzIFJl
bW90ZUxheWVyVHJlZUhvc3Q7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3Jt
YW5jZURhdGE7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKK2NsYXNzIFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OwogY2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXI7CkBAIC0xODg0LDYgKzE4ODYsMTAgQEAgcHVibGljOgog
ICAgIGJvb2wgY2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0OwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICB2b2lkIGNyZWF0
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGVQcm94eT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWFrUHRyPFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHk+KT4mJik7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIHZvaWQgc2V0TGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKICAgICB2b2lkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CkBAIC0yOTEzLDYgKzI5MTksMTAgQEAgcHJpdmF0ZToK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2Vy
PiBtX3NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI7CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBSZWZQdHI8UmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eT4gbV9tZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OworI2VuZGlmCisK
ICNpZiBVU0UoRElSRUNUMkQpCiAgICAgQ09NUHRyPElEM0QxMURldmljZTE+IG1fZGV2aWNlOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA3ZWZmNGYyNmUzMzUxMjJiMGY2ZWI1OWNiODAxNGMxMWJhZGUwZWVmLi5lNWNjZDJi
MGVkZGJjNTliZTAyMzY3MGUyOTczMGM4NTBjMjU3ZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsNyBAQAogCQkw
NzRFNzVGRTFERjIyMTE5MDBEMzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU3NUZCMURGMUZE
MTMwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovOyB9OwogCQkwNzZFODg0
RTFBMTNDQURGMDA1RTkwRkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkU4ODREMUExM0NBREYwMDVFOTBG
QyAvKiBBUElDb250ZXh0TWVudUNsaWVudC5oICovOyB9OwogCQkwNzcyODExRDIxMjM0RkY2MDBD
OEVGMkUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0MzE5QUY3QjI3MDAyRUJB
QjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi87IH07CisJCTA3N0JB
NTZFMjYwRTZEMUMwMDcyRjE5RiAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM2Qjc1NTI2
MEQwM0EwMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovOyB9
OwogCQkwNzkyMzE0ODIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3OTIzMTQyMjM5Q0JDQjUwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQkwNzkyMzE0QjIzOUNCQ0I4
MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMx
NDUyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMDc5MjMxNEMyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3OTIzMTQ2MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CkBAIC0yMzc2LDYgKzIz
NzcsMTIgQEAKIAkJMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRT
dG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUlkSGFzaFNh
bHRTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkEwMUMxODZB
REIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkExMUMxODZBREIwMDNGMDczNSAv
KiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzM2Qjc1MzI2MEQwMzlGMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzZCNzU0MjYw
RDAzOUYwMEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwNzM2Qjc1NTI2MEQwM0EwMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM2Qjc1QzI2
MEQ0QTRFMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3NUQyNjBENEE0RjAwRTA2OTk0
IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3NUUyNjBENEE1MDAwRTA2OTk0IC8qIFJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzQ0NzIwNTI1RTVCRDAyMDA1NEIyMzEgLyogTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzQ4NzlCNzIzNzNBOTA5MDBGNTY3OEUgLyogQXBwS2l0U29mdExpbmsu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQXBwS2l0U29mdExpbmsuaDsgcGF0aCA9IGlvcy9BcHBLaXRTb2Z0
TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ4NzlCODIzNzNBOTA5MDBG
NTY3OEUgLyogQXBwS2l0U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBBcHBLaXRT
b2Z0TGluay5tbTsgcGF0aCA9IGlvcy9BcHBLaXRTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzODUsNiArMjM5Miw3IEBACiAJCTA3NEU3NjAxMURGNzA3NUQwMEQz
MThFQyAvKiBNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RTg4NEQxQTEzQ0FERjAwNUU5MEZDIC8qIEFQSUNvbnRl
eHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUNvbnRl
eHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkU4ODRGMUEx
M0NCQzYwMDVFOTBGQyAvKiBBUElJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElJbmplY3RlZEJ1bmRsZVBhZ2VD
b250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzdCQTU3
MDI2MEU4RjYzMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8q
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzky
MzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3OTIzMTMyMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzk4LDYgKzI0MDYsMTIgQEAKIAkJ
MDc5NEI0QUYyNDQ1MkEyQzAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0E1RUJCOTFDN0JBNDNFMDBCOUNBNjkgLyogV0tGcmFtZUhhbmRsZVJlZi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ZyYW1lSGFuZGxlUmVm
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBNUVCQkExQzdCQTQzRTAwQjlD
QTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tGcmFtZUhhbmRsZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0E2
RTVFMzI2MEU0MTE0MDA5NTk0NzggLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDdBNkU1RTQyNjBFNDExNDAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDdBNkU1RTUyNjBFNDExNTAwOTU5NDc4IC8qIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDdBNkU1RTYyNjBFNDExNTAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3QTZFNUU3MjYwRTQxMTYwMDk1OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdBNkU1
RTgyNjBFNDExNjAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0IxRDA0QjIzRDM4RkNFMDAzOTlBNkUgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCM0I0NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJl
bW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJT
dGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0IzQjQ3NTIzQUQ4OTA0MDBC
QTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMjgsNiArNjA0MiwxNiBAQAogCQkJdGFiV2lkdGggPSA4Owog
CQkJdXNlc1RhYnMgPSAwOwogCQl9OworCQkwNzM2Qjc1MjI2MEQwMzlGMDBFMDY5OTQgLyogTWVk
aWFTZXNzaW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJ
CQkwNzM2Qjc1NTI2MEQwM0EwMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwICovLAorCQkJCTA3MzZCNzU0MjYwRDAzOUYwMEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oICovLAorCQkJCTA3MzZCNzUzMjYwRDAzOUYwMEUwNjk5NCAvKiBS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlw
YXRoID0gTWVkaWFTZXNzaW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
MDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTk2MDUsNiArOTYyOSw3IEBACiAJCQkJQkMyMDRFREYx
MUM4M0U3MjAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlICovLAogCQkJCTkxRDk3MEUwMjNEQTZG
QjEwMDU3REJDMyAvKiBJbnNwZWN0b3IgKi8sCiAJCQkJMzNEM0EzQkQxMzM5NjA5ODAwNzA5QkU0
IC8qIE1lZGlhQ2FjaGUgKi8sCisJCQkJMDczNkI3NTIyNjBEMDM5RjAwRTA2OTk0IC8qIE1lZGlh
U2Vzc2lvbiAqLywKIAkJCQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0g
Ki8sCiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEw
OTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLApAQCAtMTA5
ODEsNiArMTEwMDYsMTIgQEAKIAkJCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFENEQ3MzZD
MjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgg
Ki8sCiAJCQkJMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJMDdBNkU1RTQyNjBFNDExNDAwOTU5NDc4
IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
KwkJCQkwN0E2RTVFNzI2MEU0MTE2MDA5NTk0NzggLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JNZXNzYWdlcy5oICovLAorCQkJCTA3QTZFNUU2MjYwRTQxMTUwMDk1OTQ3OCAvKiBSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTA3QTZF
NUUzMjYwRTQxMTQwMDk1OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkwN0E2RTVFNTI2MEU0MTE1MDA5NTk0NzggLyog
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMDdB
NkU1RTgyNjBFNDExNjAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkxREQyQTY2MjI1NjEyMkYxMDBGRjdCNkYgLyog
UmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUREMkE2
NjAyNTYxMjJGMTAwRkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlcy5oICov
LAogCQkJCTFERDJBNjYxMjU2MTIyRjEwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMTIyMSw4ICsxMTI1MiwxMiBAQAogCQkJCUNENDU3
MEREMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
LmNwcCAqLywKIAkJCQlDRDQ1NzBEQjI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eS5oICovLAogCQkJCUNENDU3MERDMjQ0NENBNTgwMEEzRENFQiAv
KiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJ
CTA3N0JBNTcwMjYwRThGNjMwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGVQcm94eS5oICovLAogCQkJCTA3OTRCNEFFMjQ0NTI0QjAwMDAxQjlDNCAvKiBNZWRpYVVzYWdl
TWFuYWdlci5jcHAgKi8sCiAJCQkJMDc5NEI0QUMyNDQ1MUJCOTAwMDFCOUM0IC8qIE1lZGlhVXNh
Z2VNYW5hZ2VyLmggKi8sCisJCQkJMDczNkI3NUMyNjBENEE0RTAwRTA2OTk0IC8qIFJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwICovLAorCQkJCTA3MzZCNzVFMjYwRDRBNTAw
MEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmggKi8sCisJCQkJ
MDczNkI3NUQyNjBENEE0RjAwRTA2OTk0IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IE1lZGlhOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEzOTM2LDYgKzEzOTcxLDcgQEAKIAkJCQkwNzAxNzg5RTIz
QkU5Q0ZDMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3MUJDNThGMjNDRTFFQUEwMDY4MEQ3QyAvKiBSZW1vdGVNZWRpYVBs
YXllclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFENEQ3Mzcw
MjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzdCQTU2RTI2MEU2RDFDMDA3MkYxOUYgLyog
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMURE
MkE2NjMyNTYxMjQ2RjAwRkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDMTMzODUxODU5MEM0NjAwRjNFQzA1IC8q
IFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEODI1MkUyMjVENDkxOTEwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVu
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmNmY0NTQ3MGVkZTdhZjQ2NmYz
YzhlMGQzMTY3YmEyOTVlMmQwOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApA
QCAtMCwwICsxLDE5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3
dGYvTG9nZ2VySGVscGVyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK1JlZjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKHBhZ2UpKTsKK30KKworUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5pZGVudGlmaWVyKCks
ICp0aGlzKTsKK30KKworUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6On5SZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKK30KKwordm9p
ZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYgY2Fs
bGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1l
KTsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5OjpDb29yZGluYXRlU2Vla1RvIHsgdGltZSB9LCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0
byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAg
ICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4
Y2VwdGlvbi0+bWVzc2FnZSkgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBjYWxsYmFjayh7IH0pOworICAgIH0sIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lG
X1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OkNvb3JkaW5hdGVQ
bGF5IHsgfSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXdl
YWtUaGlzKSB7CisgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChl
eGNlcHRpb24pIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+
Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAgICB9LCAwKTsKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmIGNhbGxiYWNrKQorewor
ICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9wYWdlLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eTo6Q29vcmRpbmF0ZVBhdXNlIHsgfSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyks
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUg
eworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKEV4Y2Vw
dGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY2FsbGJhY2soeyB9KTsK
KyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0
VHJhY2soY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBB
TFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fcGFnZS5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6
OkNvb3JkaW5hdGVTZXRUcmFjayB7IHRyYWNrSWRlbnRpZmllciB9LCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNh
bGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAg
Y2FsbGJhY2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+
bWVzc2FnZSkgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBj
YWxsYmFjayh7IH0pOworICAgIH0sIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBv
c2l0aW9uU3RhdGU+IHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURF
TlRJRklFUik7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHk6OlBvc2l0aW9uU3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSwgMCk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19J
Rl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlYWR5U3RhdGVDaGFuZ2Vk
IHsgc3RhdGUgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUg
c3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0
ZSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHk6OlBsYXliYWNrU3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSwgMCk7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSB0
aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7CisgICAg
aWYgKGF1dG8gY29vcmRpbmF0b3JDbGllbnQgPSBjbGllbnQoKSkKKyAgICAgICAgY29vcmRpbmF0
b3JDbGllbnQtPnNlZWtTZXNzaW9uVG9UaW1lKHRpbWUsIFdURk1vdmUoKGNvbXBsZXRpb25IYW5k
bGVyKSkpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5U2Vzc2lvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFMV0FZ
U19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgaWYgKGF1dG8gY29vcmRpbmF0
b3JDbGllbnQgPSBjbGllbnQoKSkKKyAgICAgICAgY29vcmRpbmF0b3JDbGllbnQtPnBsYXlTZXNz
aW9uKFdURk1vdmUoKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGVsc2UKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpwYXVzZVNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJ
RVIpOworICAgIGlmIChhdXRvIGNvb3JkaW5hdG9yQ2xpZW50ID0gY2xpZW50KCkpCisgICAgICAg
IGNvb3JkaW5hdG9yQ2xpZW50LT5wYXVzZVNlc3Npb24oV1RGTW92ZSgoY29tcGxldGlvbkhhbmRs
ZXIpKSk7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFNlc3Npb25UcmFjayhjb25z
dCBTdHJpbmcmIHRyYWNrSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lE
RU5USUZJRVIsIHRyYWNrSWRlbnRpZmllcik7CisgICAgaWYgKGF1dG8gY29vcmRpbmF0b3JDbGll
bnQgPSBjbGllbnQoKSkKKyAgICAgICAgY29vcmRpbmF0b3JDbGllbnQtPnNldFNlc3Npb25UcmFj
ayh0cmFja0lkZW50aWZpZXIsIFdURk1vdmUoKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGVs
c2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCitXVEZMb2dDaGFubmVs
JiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIExvZ01lZGlhOworfQorCisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg0OGQ3YTc0NTcyM2Q2OWFhNTJjNTZhZDU1ZjQ2ZmJmMDdjZDVlNzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9u
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK2Ns
YXNzIE1lc3NhZ2VSZWNlaXZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlBhZ2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSAsIHB1YmxpYyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFdl
YlBhZ2UmKTsKKyAgICB+UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKKworcHJpdmF0
ZToKKyAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihXZWJQYWdlJik7
CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVz
c2FnZVJlY2VpdmVycy4KKyAgICB2b2lkIHNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBwbGF5U2Vzc2lvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNldFNlc3Npb25UcmFjayhjb25z
dCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKworICAgIC8vIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSBvdmVycmlkZXMuCisgICAgdm9pZCBzZWVrVG8o
ZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlv
bj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcGF1c2Uo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYm
KSBmaW5hbDsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CisKKyAg
ICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRp
b25TdGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdl
ZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKKworICAgIGNvbnN0
IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvciI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Q7CisK
KyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Np
b24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmExODg2YzQyMWNjMGQyMzFiMDYxMGZkODI4ZTBiOTY3ZjFiNDgyNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgTm90UmVmQ291bnRlZCB7CisKKyAgICBzZWVrU2Vz
c2lvblRvVGltZShkb3VibGUgdGltZSkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYworCisgICAgcGxh
eVNlc3Npb24oKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCisKKyAgICBwYXVzZVNlc3Npb24oKSAt
PiAoYm9vbCByZXN1bHQpIEFzeW5jCisKKyAgICBzZXRTZXNzaW9uVHJhY2soU3RyaW5nIHRyYWNr
SWRlbnRpZmllcikgLT4gKGJvb2wgcmVzdWx0KSBBc3luYworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODRkMDc4ODAyNzlk
ZGE5YWJiZGM3MDFlOTU3NzE3ZjcxZDU3NGFkOS4uZjFmOTM4ZWI1YmNmN2M4ZTViZWU2NWJmYTE2
ZDE5Nzc1Njc0ZDllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTM1OCw2ICszNTgsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRXh0
cmFjdGlvblJlc3VsdC5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1Mp
CiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzSU9TLmgiCiAjZW5kaWYKQEAg
LTczODAsNiArNzM4NiwyNSBAQCB2b2lkIFdlYlBhZ2U6OnJlc3RvcmVBcHBIaWdobGlnaHRzKGNv
bnN0IFZlY3RvcjxTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZT4mJiBtZW1vcgogfQogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKK3ZvaWQgV2ViUGFnZTo6Y3Jl
YXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiBkb2N1bWVudCA9IG1fbWFpbkZyYW1l
LT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVu
dC0+ZG9tV2luZG93KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgc2Vzc2lvbiA9IE5hdmlnYXRvck1lZGlh
U2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGRvY3VtZW50LT5kb21XaW5kb3coKS0+bmF2aWdhdG9yKCkp
OworICAgIGF1dG8gY29vcmRpbmF0b3IgPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
Y3JlYXRlKCp0aGlzKTsKKyAgICBtX3JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gY29v
cmRpbmF0b3IucHRyKCk7CisgICAgbV9tZWRpYVNlc3Npb25Db29yZGluYXRvciA9IE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoY29vcmRpbmF0b3IuZ2V0KCkpOworICAgIHNlc3Npb24u
c2V0Q29vcmRpbmF0b3IobV9tZWRpYVNlc3Npb25Db29yZGluYXRvci5nZXQoKSk7CisKKyAgICBj
b21wbGV0aW9uSGFuZGxlcih0cnVlKTsKK30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKENPQ09B
KQogdm9pZCBXZWJQYWdlOjpjb25zdW1lTmV0d29ya0V4dGVuc2lvblNhbmRib3hFeHRlbnNpb25z
KGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JikKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3M2YyZDk5ZDdhNjFhNmIwZmI3ZjM0
NjZlNjc4NmE2OTI1MGY5YTU1Li5jNTRhNjE4ZGI0NmExMmRlMDFhNTg2MzQ2YTY2ZTkxN2Y3NGNh
MmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0x
OTAsNiArMTkwLDcgQEAgY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBLZXlib2FyZEV2ZW50OwogY2xh
c3MgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ7CiBjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJ
bnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOwogY2xhc3MgUGFnZTsKIGNsYXNzIFByaW50Q29udGV4dDsKIGNsYXNzIFJhbmdlOwpAQCAt
MjU1LDYgKzI1Niw3IEBAIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjsKIGNsYXNzIFBERlBsdWdpbjsKIGNsYXNzIFBhZ2VCYW5uZXI7CiBjbGFzcyBQbHVnaW5WaWV3
OworY2xhc3MgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CiBjbGFzcyBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk7CiBjbGFzcyBSZW1vdGVXZWJJbnNwZWN0b3JVSTsKIGNsYXNzIFRl
eHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eTsKQEAgLTE0MTAsNiArMTQxMiwxMCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzaG91bGRVc2VQREZQbHVnaW4oY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwg
U3RyaW5nVmlldyBwYXRoKSBjb25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T05fQ09PUkRJTkFUT1IpCisgICAgdm9pZCBjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzZXRM
YXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKGJvb2wgd2FzQXBwQm91bmQpIHsgbV9sYXN0TmF2aWdh
dGlvbldhc0FwcEJvdW5kID0gd2FzQXBwQm91bmQ7IH0KICAgICB2b2lkIGxhc3ROYXZpZ2F0aW9u
V2FzQXBwQm91bmQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKQEAgLTIyNTEs
NiArMjI1NywxMSBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fdmlzaXRlZExpbmtUYWJsZUlE
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fbWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I7CisgICAgUmVmUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX3Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworI2VuZGlmCisKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eT4g
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDcyZWQ4
MWJhMTIyZjU4NTUzYTAzOTQ2OGZjYzI4MzExOTllMDVkMTEuLmM4ZTY0NmFlZGViYzRhYTEyMGEz
YWJlOWRhZDc2MTgxZTQxOWRhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNjM0LDYgKzYzNCwxMCBAQCBHZW5l
cmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kVHlwZQogCiAgICAgTGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCgpIC0+
IChib29sIHdhc0FwcEJvdW5kKSBBc3luYwogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCisgICAgQ3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSAtPiAoYm9vbCBz
dWNjZXNzKSBBc3luYworI2VuZGlmCisKICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKICAg
ICBVcGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KHN0cnVjdCBXZWJDb3JlOjpJbWFnZUV4
dHJhY3Rpb25SZXN1bHQgcmVzdWx0LCBzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxl
bWVudCwgV2ViQ29yZTo6RmxvYXRQb2ludCBsb2NhdGlvbikgLT4gKGJvb2wgdGV4dEV4aXN0c0F0
TG9jYXRpb24pIEFzeW5jCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424553</attachid>
            <date>2021-03-29 11:21:13 -0700</date>
            <delta_ts>2021-03-29 15:55:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223854-20210329112106.patch</filename>
            <type>text/plain</type>
            <size>115776</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI2ZDQwZTBjMTA2NjRm
YjgzZDQyOWIwM2E2ODgzNzdjZTM3NjAwYS4uMjRlYjgyOWQxOWUwY2U5ZGIyMzQyNGM2MzRmZGMx
YmRmNWI2M2E5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIxLTAzLTI4ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWRk
IHJlbW90ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
NTkzNDY1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgUmVu
YW1lIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgdG8gTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlIGFuZCBtYWtlCisgICAgICAgIGl0IHBvc3NpYmxlIGZvciB0aGUgTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IgaW1wbGVtZW50YXRpb24gdG8gYmUgbG9jYXRlZCBpbiBhbm90aGVy
CisgICAgICAgIHByb2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVBvc2l0aW9uU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0ZTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0ZTo6ZGVj
b2RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1Rv
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVh
ZHlTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OnNlZWtTZXNzaW9uVG9UaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5U2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6cGF1c2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpzZXRTZXNzaW9uVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OmludGVybmFsU2Vla1RvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjppbnRlcm5hbFBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmludGVybmFsUGF1c2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmludGVybmFsU2V0VHJhY2spOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJpdmF0ZTo6c2V0TG9nZ2VyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaDogIENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
OjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlOjpsb2dnZXJQdHIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcml2YXRlOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZTo6Y2xpZW50IGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0aW5n
L01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNr
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6bG9nQ2xhc3NOYW1lIGNvbnN0KToKKwogMjAyMS0wMy0yNCAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBFeHBlcmlt
ZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAxMzU0ZDUxMzEzZGM3
YTJhNWQ2ZmUzMmRhNzBhZGRkNGFlYWY2ZDguLmYwMjhjNjlmMjhlYmE4YTBiYzM2ZWYwNTkzMDFk
ZTM2MTU0NDhmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMjEtMDMtMjggIEVyaWMg
Q2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBZGQg
cmVtb3RlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1
OTM0NjUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICBEZWZp
bmUgdGhlIGludGVyZmFjZSBmb3IgYSByZW1vdGUgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2
YXRlIGFuZCBpbXBsZW1lbnQKKyAgICAgICAgbWVzc2FnZSBzZW5kZXJzIGFuZCByZWNlaXZlcnMg
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgYW5kIAorICAgICAgICBSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlh
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eTo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6On5SZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0ZVNlZWtUbyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5hdGVQbGF5KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0ZVBh
dXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eTo6Ojpjb29yZGluYXRlU2V0VHJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5Ojpwb3NpdGlvblN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OnBsYXliYWNrU3RhdGVD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eTo6cmVhZHlTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL01l
ZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
cik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+UmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJh
Y2tTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2Vla1Nlc3Npb25Ub1RpbWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cGxheVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2VTZXNzaW9uKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFNlc3Npb25UcmFjayk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNv
bnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lv
bi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDIxLTAzLTI0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBEaXNwbGF5TGluayBsb2cgY2hhbm5lbHMgaW4gV2ViQ29y
ZSBhbmQgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhUG9zaXRpb25TdGF0ZS5oCmluZGV4IDE4NDNlNzQ0NmZmOGM1OTI4OGE4YjI4
ZWRiMGYyYjJjMWM4NDhkZmEuLjQ2Yzg5MjMyNjJlODNjNGQ0YWJjZWJlODNjZDI4OTFmMzAwZTUx
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
UG9zaXRpb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhUG9zaXRpb25TdGF0ZS5oCkBAIC0zMyw4ICszMywzMyBAQCBzdHJ1Y3QgTWVkaWFQb3Np
dGlvblN0YXRlIHsKICAgICBkb3VibGUgZHVyYXRpb24gPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRv
dWJsZT46OmluZmluaXR5KCk7CiAgICAgZG91YmxlIHBsYXliYWNrUmF0ZSA9IDE7CiAgICAgZG91
YmxlIHBvc2l0aW9uID0gMDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgTWVkaWFQb3NpdGlvblN0YXRlOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGR1cmF0aW9uIDw8
IHBsYXliYWNrUmF0ZSA8PCBwb3NpdGlvbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
aW5saW5lIE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gTWVkaWFQb3NpdGlvblN0YXRlOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBkb3VibGUgZHVyYXRpb247CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShkdXJhdGlvbikpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBk
b3VibGUgcGxheWJhY2tSYXRlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGxheWJhY2tSYXRl
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGRvdWJsZSBwb3NpdGlvbjsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJl
dHVybiBNZWRpYVBvc2l0aW9uU3RhdGUgeyBXVEZNb3ZlKGR1cmF0aW9uKSwgV1RGTW92ZShwbGF5
YmFja1JhdGUpLCBXVEZNb3ZlKHBvc2l0aW9uKSB9OworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IGU4YTljYWVlYWQ0NjFjYjg5NjA3YzM0YzMx
OGJhMjRhM2JkNDAxNTcuLmUwYzViM2EzYWExZWNjYzA4ZWEzMzZlYjc5M2VmZWFhMWE3Y2RhMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmNwcApAQCAtMzAsNiArMzAsOSBAQAogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkpTTWVkaWFQb3NpdGlvblN0YXRlLmgi
CisjaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25BY3Rpb24uaCIKKyNpbmNsdWRlICJKU01lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVk
aWFNZXRhZGF0YS5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCmlu
ZGV4IDhkMDUwN2NmMDk5MGZkNTVjNTFjN2QxYTk3ZDhiNWQxOWNkOGMzYWMuLjU1NWFiN2EwMTAy
M2RlMjFmMzhlMjI1MWQ4Njg4MWVmZjgwMmM4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC0zMCw5ICszMCw2IEBACiAj
aW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJFdmVudFRh
cmdldC5oIgogI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCi0jaW5jbHVkZSAiSlNNZWRp
YVBvc2l0aW9uU3RhdGUuaCIKLSNpbmNsdWRlICJKU01lZGlhU2Vzc2lvbkFjdGlvbi5oIgotI2lu
Y2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUG9z
aXRpb25TdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUg
Ik1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCIKQEAgLTE1NSw2ICsxNTIsOSBAQCBwcml2YXRl
OgogI2VuZGlmCiB9OwogCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZSk7CitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
TWVkaWFTZXNzaW9uQWN0aW9uKTsKKwogfQogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhh
bmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXIuaAppbmRleCBhZWI2MjRhYThlMTE3N2ExNjZmMWIzN2EyNWI1Nzk0ZGU0
ZDBhNmRjLi5kZjgwMzYyNGRmODAzY2FmYWI2NzNiNGFlZDQ5ZWYyYTZlNzJjZWU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJB
Y3RpdmVET01DYWxsYmFjay5oIgogI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCi0jaW5jbHVk
ZSAiSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9u
QWN0aW9uRGV0YWlscy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRleCAxZGY0ZTky
MTU1ZjFhYzAxNWU2YzUxNzRkNGJlZjY0ODFlNTkzNTY3Li44MTEzZWQyYTMxNTAwZTJhYjRjYzMz
YTk5MTdmZDhlYzg5MTE0YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0z
Miw3ICszMiw4IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCi0jaW5jbHVkZSAiUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00MiwxOSArNDMsMjAgQEAgc3RhdGljIGNvbnN0IHZvaWQqIG5leHRDb29y
ZGluYXRvckxvZ0lkZW50aWZpZXIoKQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0
IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOwogfQogCi1SZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikKK1JlZjxNZWRpYVNlc3Npb25D
b29yZGluYXRvcj4gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShSZWY8TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlPiYmIHByaXZhdGVDb29yZGluYXRvcikKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25Db29yZGluYXRvcihXVEZNb3ZlKHBsYXRmb3Jt
Q29vcmRpbmF0b3IpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0b3IpKSk7CiB9CiAKLU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNl
c3Npb25Db29yZGluYXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQotICAgIDogbV9wbGF0Zm9y
bUNvb3JkaW5hdG9yKFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikpCitNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZT4mJiBwcml2YXRlQ29vcmRpbmF0b3IpCisgICAgOiBtX3ByaXZhdGVDb29y
ZGluYXRvcihXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvcikpCiAgICAgLCBtX2xvZ2dlcihtYWtl
UmVmKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4
dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CiAKLSAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xvZ2dlci5j
b3B5UmVmKCksIG1fbG9nSWRlbnRpZmllcik7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnNl
dExvZ2dlcihtX2xvZ2dlci5jb3B5UmVmKCksIG1fbG9nSWRlbnRpZmllcik7CisgICAgbV9wcml2
YXRlQ29vcmRpbmF0b3ItPnNldENsaWVudChtYWtlV2Vha1B0cih0aGlzKSk7CiB9CiAKIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjp+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7
CkBAIC03MCw3ICs3Miw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhk
b3VibGUgdGltZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNlZWtUbyh0aW1lLCBbdGlt
ZSwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11
dGFibGUgeworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZWVrVG8odGltZSwgW3RpbWUsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKICAgICAgICAgICAg
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtODIsMTMgKzg0LDkgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm8K
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIE1lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHMgZGV0YWlscyB7Ci0gICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9u
QWN0aW9uOjpTZWVrdG8sCi0gICAgICAgICAgICAuc2Vla1RpbWUgPSB0aW1lLAotICAgICAgICB9
OwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRl
dGFpbHMpOwotCiAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlm
IHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2Vla1RvJyBhY3Rpb24gaGFuZGxlcj8KKyAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+aW50ZXJuYWxTZWVrVG8odGltZSk7CisKICAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKCk7CiAgICAgfSk7CiB9CkBAIC0xMDQsNyArMTAyLDcgQEAgdm9pZCBNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNl
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5w
bGF5KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikg
bXV0YWJsZSB7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBsYXkoW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKICAgICAgICAgICAgIHByb21pc2UucmVq
ZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMTE2LDEyICsxMTQsOSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5
KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMg
ewotICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6UGxheSwKLSAgICAg
ICAgfTsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxl
cihkZXRhaWxzKTsKLQogICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVj
dCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3BsYXknIGFjdGlvbiBoYW5kbGVyPworICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5pbnRlcm5hbFBsYXkoKTsKKwogICAgICAgICBwcm9taXNlLnJl
c29sdmUoKTsKICAgICB9KTsKIH0KQEAgLTEzNyw3ICsxMzIsNyBAQCB2b2lkIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wYXVz
ZShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11
dGFibGUgeworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wYXVzZShbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBp
ZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgewogICAgICAgICAgICAgcHJvbWlzZS5yZWpl
Y3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAgICAgICAgICAgICByZXR1cm47
CkBAIC0xNDksMTIgKzE0NCw5IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNl
KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMg
ewotICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6UGF1c2UsCi0gICAg
ICAgIH07Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRs
ZXIoZGV0YWlscyk7Ci0KICAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWpl
Y3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdwYXVzZScgYWN0aW9uIGhhbmRsZXI/Cisg
ICAgICAgIHByb3RlY3RlZFRoaXMtPmludGVybmFsUGF1c2UoKTsKKwogICAgICAgICBwcm9taXNl
LnJlc29sdmUoKTsKICAgICB9KTsKIH0KQEAgLTE3MCw3ICsxNjIsNyBAQCB2b2lkIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcmIHRyYWNrLCBET01Qcm9taXNl
RGVmZXJyZWQ8dgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wbGF0Zm9ybUNvb3Jk
aW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9u
YWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgbV9wcml2YXRlQ29vcmRp
bmF0b3ItPnNldFRyYWNrKHRyYWNrLCBbdHJhY2ssIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRy
KCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25h
bDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFwcm90ZWN0
ZWRUaGlzLT5tX3Nlc3Npb24pIHsKICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTgyLDEz
ICsxNzQsOSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBT
dHJpbmcmIHRyYWNrLCBET01Qcm9taXNlRGVmZXJyZWQ8dgogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsK
LSAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNldHRyYWNrLAotICAg
ICAgICAgICAgLnRyYWNrSWRlbnRpZmllciA9IHRyYWNrLAotICAgICAgICB9OwotICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOwotCiAg
ICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0
IGEgcmVnaXN0ZXJlZCAnc2V0VHJhY2snIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5pbnRlcm5hbFNldFRyYWNrKHRyYWNrKTsKKwogICAgICAgICBwcm9taXNlLnJlc29s
dmUoKTsKICAgICB9KTsKIH0KQEAgLTIwNSwzMSArMTkzLDk1IEBAIHZvaWQgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24qIHNlc3Npb24pCiB2b2lk
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxN
ZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRlKQogewogICAgIGlmICghc3RhdGUpIHsKLSAgICAgICAg
bV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZCh7IH0pOworICAgICAg
ICBtX3ByaXZhdGVDb29yZGluYXRvci0+cG9zaXRpb25TdGF0ZUNoYW5nZWQoeyB9KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cG9zaXRpb25T
dGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFQb3NpdGlv
blN0YXRlIHsgc3RhdGUtPmR1cmF0aW9uLCBzdGF0ZS0+cGxheWJhY2tSYXRlLCBzdGF0ZS0+cG9z
aXRpb24gfSk7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVDaGFuZ2Vk
KE1lZGlhUG9zaXRpb25TdGF0ZSB7IHN0YXRlLT5kdXJhdGlvbiwgc3RhdGUtPnBsYXliYWNrUmF0
ZSwgc3RhdGUtPnBvc2l0aW9uIH0pOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRlKQog
ewotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZTo6Tm9uZSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSksICJNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGFzIGV4cGVjdGVkIik7
Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlOjpQYXVzZWQpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCksICJN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCBhcyBleHBl
Y3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZykgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxh
eWluZyksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nIGlzIG5vdCBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5
aW5nIGFzIGV4cGVjdGVkIik7Ci0KLSAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBsYXliYWNr
U3RhdGVDaGFuZ2VkKHN0YXRpY19jYXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU+KHN0YXRlKSk7CisgICAgbV9wcml2YXRlQ29vcmRp
bmF0b3ItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHN0YXRlKTsKIH0KIAogdm9pZCBNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBz
dGF0ZSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vz
c2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZl
Tm90aGluZyksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyBpcyBub3QgUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2
ZU5vdGhpbmcgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSkgPT0gc3RhdGljX2Nh
c3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVN
ZXRhZGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3Vy
cmVudERhdGEpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSksICJNZWRp
YVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0
YSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4o
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEpID09IHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU6OkhhdmVGdXR1cmVEYXRhKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1
cmVEYXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBhcyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVu
b3VnaERhdGEpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhKSwgIk1lZGlh
U2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSBh
cyBleHBlY3RlZCIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5yZWFkeVN0YXRlQ2hhbmdl
ZChzdGF0ZSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9u
VG9UaW1lKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVyKGludGVybmFsU2Vla1RvKHRp
bWUpKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheVNlc3Npb24oQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBj
b21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbFBsYXkoKSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbFBhdXNl
KCkpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRTZXNzaW9uVHJhY2so
Y29uc3QgU3RyaW5nJiB0cmFjaywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4gY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoaW50ZXJuYWxTZXRUcmFjayh0
cmFjaykpOworfQorCitib29sIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjppbnRlcm5hbFNlZWtU
byhkb3VibGUgdGltZSkKK3sKKyAgICBpZiAoIW1fc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAg
LmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICAuc2Vla1RpbWUg
PSB0aW1lLAorICAgIH07CisgICAgbV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxz
KTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjppbnRlcm5hbFBsYXkoKQoreworICAgIGlmICghbV9zZXNzaW9uKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAg
ICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpQbGF5LAorICAgIH07CisgICAgbV9zZXNz
aW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgIHJldHVybiB0cnVlOworfQor
Citib29sIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjppbnRlcm5hbFBhdXNlKCkKK3sKKyAgICBp
ZiAoIW1fc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTWVkaWFTZXNzaW9u
QWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFj
dGlvbjo6UGF1c2UsCisgICAgfTsKKyAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRl
dGFpbHMpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OmludGVybmFsU2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaykKK3sKKyAgICBpZiAo
IW1fc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTWVkaWFTZXNzaW9uQWN0
aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlv
bjo6U2V0dHJhY2ssCisgICAgICAgIC50cmFja0lkZW50aWZpZXIgPSB0cmFjaywKKyAgICB9Owor
ICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CiAKLSAgICBtX3BsYXRm
b3JtQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRpY19jYXN0PFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU+KHN0YXRlKSk7Cisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIFdURkxvZ0NoYW5uZWwmIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpsb2dDaGFubmVsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCmluZGV4IDI0N2NlYzg4
MGIzNTNmNDZiY2JkODcwZmY1ZGJjMTkyYzk5OTdjOTIuLmU5MWY2M2UyYjQwMWUzMmQxMDg0MzU5
NTE0NDM4MGY2MzA4YjM5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMjcsNiAr
MjcsOCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAKKyNpbmNs
dWRlICJNZWRpYVNlc3Npb24uaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgpAQCAtMzUsMTIgKzM3LDEyIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZl
cnJlZDsKIAotY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjsKLWNsYXNzIE1l
ZGlhU2Vzc2lvbjsKLQotY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUmVm
Q291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBNZWRpYVNlc3Npb246Ok9i
c2VydmVyIHsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yCisgICAgOiBwdWJsaWMgUmVm
Q291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4KKyAgICAsIHB1YmxpYyBNZWRpYVNlc3Np
b25Db29yZGluYXRvckNsaWVudAorICAgICwgcHVibGljIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2ZXIg
ewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I+IGNyZWF0ZShSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4g
Y3JlYXRlKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+JiYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIH5NZWRpYVNlc3Npb25Db29yZGluYXRvcigpOwogCiAgICAgdm9pZCBzZWVrVG8o
ZG91YmxlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC01MCwxMyArNTIsMjcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRNZWRpYVNlc3Npb24oTWVkaWFTZXNzaW9uKik7CiAKKyAg
ICB1c2luZyBNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudDo6d2Vha1B0ckZhY3Rvcnk7Cisg
ICAgdXNpbmcgV2Vha1ZhbHVlVHlwZSA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50OjpX
ZWFrVmFsdWVUeXBlOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+JiYpOworCiAgICAgLy8g
TWVkaWFTZXNzaW9uOjpPYnNlcnZlcgogICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0
aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRl
Q2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKICAgICB2b2lkIHJlYWR5
U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpIGZpbmFsOwogCi1wcml2YXRlOgot
ICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yPiYmKTsKKyAgICAvLyBNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVu
dAorICAgIHZvaWQgc2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHBsYXlTZXNzaW9uKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgIHZvaWQgcGF1c2VTZXNzaW9uKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+KSBmaW5hbDsKKyAgICB2b2lkIHNldFNlc3Npb25UcmFjayhj
b25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPikgZmluYWw7CisKKyAg
ICBib29sIGludGVybmFsU2Vla1RvKGRvdWJsZSk7CisgICAgYm9vbCBpbnRlcm5hbFBsYXkoKTsK
KyAgICBib29sIGludGVybmFsUGF1c2UoKTsKKyAgICBib29sIGludGVybmFsU2V0VHJhY2soY29u
c3QgU3RyaW5nJik7CiAKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsgcmV0dXJu
IG1fbG9nZ2VyOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fbG9nSWRlbnRpZmllcjsgfQpAQCAtNjQsMTQgKzgwLDkgQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yIjsgfQogCiAgICAgV2Vha1B0cjxNZWRpYVNlc3Npb24+IG1fc2Vzc2lvbjsKLSAg
ICBSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9wbGF0Zm9ybUNvb3JkaW5h
dG9yOworICAgIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+IG1fcHJpdmF0ZUNv
b3JkaW5hdG9yOwogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZv
aWQqIG1fbG9nSWRlbnRpZmllcjsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4+IG1fc2Vla1RvUHJvbWlzZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+PiBtX3BsYXlQcm9taXNlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fcGF1c2VQcm9taXNlOwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fc2V0VHJhY2tQcm9taXNlOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDgwMjRlMGU5NDNlOThlZWM5ZjJlYTgyY2VlOWY4ZDJmNzI4ODMwYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCIK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSA8d3Rm
L0xvZ2dlci5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlOjpzZXRMb2dn
ZXIoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCit7Cisg
ICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKGxvZ2dlcik7CisgICAgbV9sb2dJZGVudGlmaWVyID0g
bG9nSWRlbnRpZmllcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MzcyZDkzYzllNzlkZjhhMjg3NTA4MDJhYTc1
MTJkYzkxZTE0YzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaApAQCAtMCwwICsxLDg0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIk1lZGlh
UG9zaXRpb25TdGF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCIK
KyNpbmNsdWRlICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTG9nZ2VyOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50IDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50PiB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQoKSA9IGRlZmF1bHQ7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBsYXlTZXNzaW9u
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cGF1c2VTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPikgPSAwOworfTsKKworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3VibGUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYm
KT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXVzZShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJh
Y2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRp
b24+JiYpPiYmKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQo
T3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFk
eVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpID0gMDsK
KworICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IFdURjo6TG9nZ2VyJiwgY29uc3Qgdm9pZCopOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2Vha1B0cjxNZWRpYVNlc3Npb25Db29yZGluYXRv
ckNsaWVudD4gY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50O30KKworcHJvdGVjdGVkOgorICAg
IGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSgpID0gZGVmYXVsdDsKKwor
ICAgIGNvbnN0IFdURjo6TG9nZ2VyKiBsb2dnZXJQdHIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dl
ci5nZXQoKTsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2xvZ0lkZW50aWZpZXI7IH0KKworICAgIFdlYWtQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JDbGllbnQ+IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CisKK3ByaXZhdGU6
CisgICAgUmVmUHRyPGNvbnN0IFdURjo6TG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lk
KiBtX2xvZ0lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxNZWRpYVNlc3Npb25Db29yZGluYXRvckNs
aWVudD4gbV9jbGllbnQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaAppbmRleCA3MDYzYzc4
ZTNkNzhiZmFkMzg4ZGYzMDk0NTRhOWNmN2EzNTRkMmIxLi5hNTdiYmMyY2ExZDk2YTk3ZGQ1NGFl
Mzg4OGRkYmZkZDM2NWNjZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oCkBAIC0z
Nyw0ICszNywxNyBAQCBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgOiB1aW50
OF90IHsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZTo6Tm9uZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZTo6UGF1c2VkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlOjpQbGF5aW5nCisgICAgPjsKK307CisKK30KKwogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oCmluZGV4IDY0NTIzZGQ1NGE3MWU2NjU0YTE3
YmIwYzc3NGY3ODgxNjMzN2Y0NjUuLmU1MTVmMTY0ZWQ2YzQ2MDNlYzIyNjg1NGMzMjRkMGQxNzFh
ZjllODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvblJlYWR5U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKQEAgLTM5LDQgKzM5LDE5IEBAIGVudW0g
Y2xhc3MgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSA6IHVpbnQ4X3QgewogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlLAor
ICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZywKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEsCisg
ICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhLAor
ICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YQor
ICAgID47Cit9OworCit9CisKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggYTc1YTJmMzM1ZGRhNTU3MzI4NDNkYWIwMGE2MzE4OTg0
Yjg0NGE2Yy4uOGU2MDRiYzU4ZDEzMTRjYmY5NjJlNzFkOTMwODBiZmYzNzNjMDRmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTEzMiw2ICsxMzIsNyBAQCBNb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL05h
dmlnYXRvck1lZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YS5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAorTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmNwcAogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmNwcAogTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0LmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5j
cHAKQEAgLTE5OTksNyArMjAwMCw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKLXBsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybVRpbWVSYW5nZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24u
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBmMzY4NWY5NTZiNmViMDI2MWY0OWQ1MjI0NTFiY2Q2OTg4NzNmMGQ1Li45ODQ4NTNl
NTUzMjJhN2Y4MzRlODgyNzJlZWJiMjc3OWY5YTliODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MCw3ICs5MCw2IEBACiAJ
CTA3MDc1NkQ0MTQyMzlBNEYwMDQxNDE2MSAvKiBKU0hUTUxUcmFja0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkQyMTQyMzlBNEUw
MDQxNDE2MSAvKiBKU0hUTUxUcmFja0VsZW1lbnQuaCAqLzsgfTsKIAkJMDcwNzU2REUxNDIzOUI0
RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEODE0MjM5QjRCMDA0MTQxNjEgLyogSlNUZXh0VHJh
Y2tDdWUuaCAqLzsgfTsKIAkJMDcwNzU2RTAxNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNr
Q3VlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDcwNzU2REExNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oICovOyB9Owot
CQkwNzA4RjJCNjI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcw
OEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aCAqLzsgfTsKIAkJMDcwOUQ3OEYxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
MDlENzhEMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcwOUQ3OTIxQUU1
NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOUQ3OTAxQUU1NTU3RTAwNEU0
MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovOyB9OwogCQkwNzA5RDc5MzFB
RTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOUQ3OTExQUU1NTU3RTAwNEU0
MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQxLDggKzE0MCwxNyBAQAogCQkwNzdBRjE0
MzE4RjRCMUJCMDAwMUVENjEgLyogU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZU1hYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QUYxNDExOEY0QjFC
QjAwMDFFRDYxIC8qIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzdCNjQxMzFCOTRGMTJFMDAz
RTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0I2NDExMUI5NEYxMkUwMDNFOUFENSAv
KiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3N0I2NDE3MUI5NUY3MDMwMDNFOUFENSAvKiBN
ZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDc3QjY0MTUxQjk1RjcwMzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tU
YXJnZXRNb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMDc3QkE1NzEyNjBGOUY3NjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzJEQkMw
MzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzdCQTU3MjI2MEZBMDE0
MDA3MkYxOUYgLyogTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEyNjI1MzhDREFCMDBBMTMwMEMgLyogTmF2
aWdhdG9yTWVkaWFTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMDc3QkE1NzUyNjBGQTVGRTAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0REREVBMjMy
NTM4Q0Q4MDAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3N0JBNTc2MjYwRkFERjYwMDcyRjE5RiAvKiBN
ZWRpYVBvc2l0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERERFQTM0MjUzOENFNjIwMEExMzAwQyAvKiBNZWRpYVBvc2l0aW9uU3RhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzdC
QTU3NzI2MEZBRUM4MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEyQjI1MzhDREUzMDBBMTMw
MEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1NzgyNjBGQUVEQjAwNzJGMTlGIC8qIE1lZGlhU2Vz
c2lvbkFjdGlvbkhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERERFQTNBMjUzOEU5QzIwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25I
YW5kbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMDc3QkE1NzkyNjBGQUVFODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERERFQTI5
MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1N0EyNjBGQUVG
ODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NDQ3MUZEMjVFMTgwMDUwMDU0QjIzMSAvKiBN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMDc3QkE1N0IyNjBGQjEwMjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENERERFQTM2MjUzOENFNzAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25EZXRh
aWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MDc3QkE1N0UyNjBGRUYzNjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QkE1
N0MyNjBGRTczODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3ODI4OTQ4
MjVDMjNGRTUwMEE3QkEwMyAvKiBNZWRpYU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERERUEyRDI1MzhDRTA0MDBBMTMwMEMgLyogTWVk
aWFNZXRhZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTA3ODI4OTRBMjVDMzZGQ0YwMEE3QkEwMyAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERERFQTIzMjUzOENEODAw
MEExMzAwQyAvKiBNZWRpYVNlc3Npb24uaCAqLzsgfTsKIAkJMDc4Mjg5NEIyNUMzNkZFRDAwQTdC
QTAzIC8qIE1lZGlhSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERERFQTMyMjUzOENFMzUwMEExMzAwQyAvKiBNZWRpYUltYWdlLmggKi87IH07
CiAJCTA3ODI4OTRDMjVDMzcwMEIwMEE3QkEwMyAvKiBNZWRpYU1ldGFkYXRhSW5pdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0REREVBMzAyNTM4Q0Ux
RTAwQTEzMDBDIC8qIE1lZGlhTWV0YWRhdGFJbml0LmggKi87IH07CiAJCTA3ODMyMjg1MTgwMTNF
RDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzgzMjI4MzE4MDEzRUQ4MDA5OTlFMEMgLyog
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oICovOyB9OwpAQCAtNTY5NSw3ICs1NzAzLDYgQEAKIAkJ
MDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3MDc1NkQ5MTQyMzlCNEMwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tD
dWVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2REExNDIzOUI0
RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1RleHRUcmFja0N1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5
RDc4QzFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OEQxQUU1NTU1NDAwNEU0MkY4
IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1h
Yy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Np
b25NYW5hZ2VyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4NTAsNiAr
NTg1Nyw4IEBACiAJCTA3N0I2NDExMUI5NEYxMkUwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyTW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzdCNjQxNDFCOTVGNzAzMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldE1vY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldE1v
Y2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzdCNjQxNTFCOTVGNzAzMDAz
RTlBRDUgLyogTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDc3QkE1N0MyNjBGRTczODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc3QkE1N0QyNjBGRTczOTAw
NzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzgzMjI4MjE4MDEzRUQ3MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4
MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzg0NjM0MDE0NUIxNTFBMDBBNThERjEgLyogSlNU
cmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHJh
Y2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTM2LDcgKzU5NDUs
NiBAQAogCQkwN0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UxMTcwNjE0ODlFQkVCMDBFQzVB
Q0UgLyogSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1Rhcmdl
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXliYWNrVGFyZ2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3RTVGMzkyMjVFQUE5MUYwMEE4NTNB
RCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
YmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
YmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjkzMyw4
ICsyNjk0MSw2IEBACiAJCQkJNTUwNjQwQUQyNDA3NTZEQTAwQUFFMDQ1IC8qIFBsYXRmb3JtSW1h
Z2VCdWZmZXJCYWNrZW5kLmggKi8sCiAJCQkJMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBs
YXRmb3JtTGF5ZXIuaCAqLywKIAkJCQlDRUVGQ0Q3QjE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZv
cm1NZWRpYVJlc291cmNlTG9hZGVyLmggKi8sCi0JCQkJMDdFNUYzOTIyNUVBQTkxRjAwQTg1M0FE
IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAotCQkJCTA3MDhGMkI0
MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8s
CiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmggKi8s
CiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5jcHAg
Ki8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5o
ICovLApAQCAtMjgzOTQsNiArMjg0MDAsOCBAQAogCQkJCTA3MkRCQzAzMjVEQzZCRDMwMEExMzUw
RSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovLAogCQkJCTA3MkRCQkZCMjVEQjM4QkMw
MEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8sCiAJCQkJMDczNkI3MzAy
NjA5NEEzNzAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsICovLAor
CQkJCTA3N0JBNTdEMjYwRkU3MzkwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGUuY3BwICovLAorCQkJCTA3N0JBNTdDMjYwRkU3MzgwMDcyRjE5RiAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuaCAqLywKIAkJCQlDRERERUEyOTI1MzhDRENCMDBBMTMwMEMg
LyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJCUNERERFQTI4MjUzOENEQ0Iw
MEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbCAqLywKIAkJCQkwNzM2Qjcz
MjI2MDk1NTU0MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgKi8sCkBA
IC0zMzk2OSw2ICszMzk3Nyw3IEBACiAJCQkJREY5QUZENzIxM0ZDMzFEODAwMTVGRUI3IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QzhCNUEzMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1MDUyNEY0MUI3MTJGRjYwMDY5NkFBOSAvKiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA3N0JBNTc2MjYwRkFERjYwMDcyRjE5RiAvKiBNZWRpYVBvc2l0aW9uU3RhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVy
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ5M0I2QkYxRDc0QjQxMjAwODhFNzgwIC8qIE1lZGlh
UXVlcnlCbG9ja1dhdGNoZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzM5OTIsMTIgKzM0MDAxLDE5
IEBACiAJCQkJMUIxMjREOEQxRDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RCRUFFQUQxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2Vs
ZWN0aW9uR3JvdXBBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTdEMjc1RTFFQUM1Nzk4
MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTA3
ODI4OTRBMjVDMzZGQ0YwMEE3QkEwMyAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCTA3N0JBNTc1MjYwRkE1RkUwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTA3N0JBNTc3MjYwRkFFQzgwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25BY3Rpb24u
aCBpbiBIZWFkZXJzICovLAorCQkJCTA3N0JBNTdCMjYwRkIxMDIwMDcyRjE5RiAvKiBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3ODI2MEZBRURC
MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMDc3QkE1NzEyNjBGOUY3NjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3RTI2MEZFRjM2MDA3MkYxOUYgLyogTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFQ0FFNTI1QjU4
Q0M0MDBCMzREQTUgLyogTWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDREE5NTkzRjI0MTJCQUUwMDA5MTBFRUYgLyogTWVkaWFTZXNzaW9uSGVscGVySU9T
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0NjBBMjI0MTI5OTQ1MDA4MTRCRTcgLyogTWVkaWFT
ZXNzaW9uSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3RjdBRUYyMTM5QkY2RjAw
RkJBN0VDIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTA3N0JBNTc5MjYwRkFFRTgwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzdCQTU3QTI2MEZBRUY4MDA3MkYx
OUYgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzQTQ5
NUYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RDY0MUVCMzE4MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREM4QjVBNzE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDEwMCw2ICszNDExNiw3IEBACiAJCQkJOTcx
MTQ2MDQxNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2QjUwN0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9ySXNMb2dnZWRJ
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVBNzI1RDYxQUNBQkQ1NzAwRUFEMTdCIC8qIE5hdmln
YXRvck1lZGlhRGV2aWNlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc3QkE1NzIyNjBGQTAxNDAw
NzJGMTlGIC8qIE5hdmlnYXRvck1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2
RTU5REYxREYwMTI4RDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTFFRThCNzgyNDEzMTkxRjAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVs
SW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzMjUsNyArMzQzNDIsNiBAQAogCQkJ
CUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0VFRkNEN0MxOURCMzNEQzAwMzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJj
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwRTA5MTkxODc1RUVGQzAwM0ExRDNDIC8q
IFBsYXRmb3JtTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkwNzA4RjJCNjI1RERF
NDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0NjAwNUQzMUNCIC8qIFBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3NjkwOUFDNEQ0MzAwQTZBQUI0
IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU5ODkwNTgxNEU5
QzI5OTAwRThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24u
aAppbmRleCA5MTQ1N2ViMWE2MWU0NjczYWMxOTNiODIwM2U5MGI4ZjNlNjI3NjUxLi4wMjQ5MzBj
Y2JhMDExYjEzZWI5NDcxZmZkYWE1MTUyYzcyMThmYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbmNsdWRlICJNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJNZWRpYVNlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRl
IDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5MTE3ODUxMTM5OWY0MTVmNzgxYjMyYWFlZTc2YzExM2ViMTdlYmNkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCi0KLSNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLQotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFk
eVN0YXRlIHN0YXRlKQotewotICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IHZhbHVlc1tdID0gewotICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZU5vdGhp
bmciKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVNZXRhZGF0YSIpLAot
ICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUN1cnJlbnREYXRhIiksCi0gICAg
ICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlRnV0dXJlRGF0YSIpLAotICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUVub3VnaERhdGEiKSwKLSAgICB9OwotICAgIHN0
YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcpLCAiTWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKLSAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhKSA9PSAxLCAiTWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7
Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkg
PT0gMiwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSBpcyBub3QgMiBh
cyBleHBlY3RlZCIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZl
RnV0dXJlRGF0YSkgPT0gMywgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRh
IGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU6OkhhdmVFbm91Z2hEYXRhKSA9PSA0LCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2
ZUVub3VnaERhdGEgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKLSAgICBBU1NFUlQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihzdGF0ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOwotICAgIHJldHVy
biB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSldOwotfQotCi1TdHJpbmcgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKLXsKLSAgICBzdGF0aWMgY29uc3QgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoIk5vbmUiKSwKLSAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlBhdXNlZCIp
LAotICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxheWluZyIpLAotICAgIH07Ci0g
ICAgc3RhdGljX2Fzc2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lKSwgIk1lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGU6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKLSAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkKSA9PSAxLCAiTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7Ci0gICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpID09IDIsICJNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7Ci0gICAg
QVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1
ZXMpKTsKLSAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpXTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJ
T05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMGRjNTFkMmE2ZjgwYWJjOTdhYTYwN2Q5ZTlhNTEw
MTUwZjMyZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQotCi0j
aW5jbHVkZSAiRXhjZXB0aW9uLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgPHd0
Zi9Mb2dnZXIuaD4KLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYvVW5p
cXVlUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFJlZkNv
dW50ZWQ8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiB7Ci1wdWJsaWM6Ci0gICAgdmly
dHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKLQotICAg
IHVzaW5nIFNlZWtDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8RXhjZXB0aW9uPiYmKT47Ci0gICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3VibGUsIFNl
ZWtDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7Ci0KLSAgICB1c2luZyBQbGF5Q29tcGxldGVkQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+Owot
ICAgIHZpcnR1YWwgdm9pZCBwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7Ci0KLSAg
ICB1c2luZyBQYXVzZUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxFeGNlcHRpb24+JiYpPjsKLSAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoUGF1c2VDb21w
bGV0ZWRDYWxsYmFjayYmKSA9IDA7Ci0KLSAgICB1c2luZyBTZXRUcmFja0NvbXBsZXRlZENhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENh
bGxiYWNrJiYpID0gMDsKLQotICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYgbG9nZ2Vy
LCBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKQotICAgIHsKLSAgICAgICAgbV9sb2dnZXIgPSBt
YWtlUmVmUHRyKGxvZ2dlcik7Ci0gICAgICAgIG1fbG9nSWRlbnRpZmllciA9IGxvZ0lkZW50aWZp
ZXI7Ci0gICAgfQotCi0gICAgc3RydWN0IE1lZGlhUG9zaXRpb25TdGF0ZSB7Ci0gICAgICAgIGRv
dWJsZSBkdXJhdGlvbiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsK
LSAgICAgICAgZG91YmxlIHBsYXliYWNrUmF0ZSA9IDE7Ci0gICAgICAgIGRvdWJsZSBwb3NpdGlv
biA9IDA7Ci0gICAgfTsKLQotICAgIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSA6
IHVpbnQ4X3QgewotICAgICAgICBIYXZlTm90aGluZywKLSAgICAgICAgSGF2ZU1ldGFkYXRhLAot
ICAgICAgICBIYXZlQ3VycmVudERhdGEsCi0gICAgICAgIEhhdmVGdXR1cmVEYXRhLAotICAgICAg
ICBIYXZlRW5vdWdoRGF0YSwKLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlIDogdWludDhfdCB7Ci0gICAgICAgIE5vbmUsCi0gICAgICAgIFBhdXNlZCwK
LSAgICAgICAgUGxheWluZywKLSAgICB9OwotCi0gICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uU3Rh
dGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OwotCi0gICAgY29uc3QgTG9nZ2VyKiBsb2dnZXJQdHIo
KSBjb25zdCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQotICAgIGNvbnN0IHZvaWQqIGxvZ0lk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KLSAgICBjb25zdCBj
aGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvciI7IH0KLSAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgeyBy
ZXR1cm4gTG9nTWVkaWE7IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBt
X2xvZ2dlcjsKLSAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Ci19OwotCi1TdHJpbmcg
Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSk7Ci1TdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSk7Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwCmluZGV4IGMzNzVmYjYxMzI1MGQ3MWQ3MTE0NTc2NzQ5NDNhNWMwMTc4
NTI5ZmEuLjg4OTNkMmZiY2VjNTVmNzQ5NDI1MTM2MTkzNzIyMTkwZjAyNjAyZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgT3B0aW9uYWw8RXhjZXB0aW9uPiBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnJlc3VsdCgpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IH0KIAotdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGlt
ZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgQUxXQVlTX0xPR19J
Rl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKICAgICBtX2NvbnRleHQtPnBvc3RUYXNr
KFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpIG11dGFibGUgewpAQCAtNjcsNyArNjcsNyBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJiBj
YQogICAgIH0pOwogfQogCi12b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShQ
bGF5Q29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5U
SUZJRVIpOwogICAgIG1fY29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CkBAIC03NSw3
ICs3NSw3IEBAIHZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KFBsYXlDb21w
bGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCi12b2lkIE1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNr
KQordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBBTFdB
WVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOwogICAgIG1fY29udGV4dC0+cG9zdFRh
c2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JikgbXV0YWJsZSB7CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCiAg
ICAgfSk7CiB9CiAKLXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhj
b25zdCBTdHJpbmcsIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQg
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCiB7
CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKICAgICBtX2NvbnRl
eHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewpAQCAtOTEsMjQgKzkxLDI5IEBAIHZvaWQgTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNr
Q29tcGxldGVkQ2FsbGJhCiAgICAgfSk7CiB9CiAKLXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxQbGF0Zm9ybU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpNZWRpYVBvc2l0aW9uU3RhdGU+KQordm9pZCBNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25T
dGF0ZT4pCiB7CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKICAg
ICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgp
LCAicG9zaXRpb25TdGF0ZUNoYW5nZWQiKTsKIH0KIAotdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCit2b2lkIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0
ZSkKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsK
ICAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0Lmdl
dCgpLCAicmVhZHlTdGF0ZUNoYW5nZWQiKTsKIH0KIAotdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCit2b2lkIE1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSBzdGF0ZSkKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJ
RVIsIHN0YXRlKTsKICAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2so
bV9jb250ZXh0LmdldCgpLCAicGxheWJhY2tTdGF0ZUNoYW5nZWQiKTsKIH0KIAorV1RGTG9nQ2hh
bm5lbCYgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKaW5kZXggODcwYmI0Y2IwYmU5NmY4NWZkNDU3MGU4
ZTM5M2I3MjM2ZmU4ZjJiMy4uNDgzNTZmOWFlMTNlN2MzODg0N2Y0OThiMGMyODVlMTEzOWY3N2Ji
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvci5oCkBAIC0yOCwxNSArMjgsMTYgQEAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKIAogI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCi0jaW5jbHVk
ZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUgIk1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU3RyaW5nQ2FsbGJhY2s7CiAKLWNsYXNzIE1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvciA6IHB1YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yIHsKK2NsYXNzIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciA6IHB1YmxpYyBN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYpOwpA
QCAtNDYsMTUgKzQ3LDE4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJh
Y2s+JiYpOwogCi0gICAgdm9pZCBzZWVrVG8oZG91YmxlLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2sm
JikgZmluYWw7Ci0gICAgdm9pZCBwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsK
LSAgICB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9p
ZCBzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2smJikgZmlu
YWw7CisgICAgdm9pZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcGxheShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcGF1
c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSBmaW5h
bDsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CiAKICAgICB2b2lkIHBvc2l0aW9u
U3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIGZpbmFsOwogICAgIHZv
aWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgZmluYWw7CiAgICAg
dm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5h
bDsKIAorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5l
bCgpIGNvbnN0OworCiAgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiByZXN1bHQoKSBjb25zdDsKIAog
ICAgIFJlZjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX2NvbnRleHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAppbmRleCBkMGM5MjE3ODJhZTU1MTVlMDk1MTViZGI1MWNjNGUxOTBlZTk2NTMxLi41MWM1YTA1
OTYxYjljOGZhNTBmNzZmYjFlODNkZWY1OTlkODdkZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAg
LTE4NSw2ICsxODUsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5CisKKyAgICBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eQorCiAgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIKICAgICBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZQpAQCAtMjQ1LDYgKzI0OCw4IEBAIHNl
dChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyCiAgICAgV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUkKIAorICAgIFdlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yCisKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q05ldHdvcmsKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlcgogICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXgg
NWU4ZmQzY2I4NzkyMDc5ZGYxYjEzY2FkOTM1YjdiNzNkMTE0Mjg2Zi4uMGUwZmI4NzBlNTFhNDQ2
MDYzMTVhOTRhMjRjNTQ2MTI5YWIwZWI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTA4LDYgKzEwOCw3IEBAICQoUFJPSkVDVF9ESVIp
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNz
YWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0xNjQsNiArMTY1LDcgQEAgJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNw
YXRjaGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZWYyMTVh
YzM3OTY5OGU0N2E4NjQ5ZTI0MWM3YzY4ZGQwYjc3NzM2MC4uMzRhYzNiMWZhOTM0NzZkMTVlNDI0
ZmI3YjMwNzNmZTUyNzM5Nzg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNDAsNiArMjQwLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXNS
ZXBsaWVzCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2VzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5TWVzc2FnZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJNZXNzYWdl
c1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGY1Mjk0ZGU5NWQ1MWEx
ZjE1NjNkZWViNzlmMTkyMTI0MDJjMzMyNDMuLjk1YmY0NTE2YTZlMWRkMWM0YWQ0MGEwZmU5ODE0
YjdlOTA2OWIyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTYyLDYgKzYyLDcg
QEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0luc3BlY3RvciBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL01lZGlhQ2FjaGUgXAorICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVNlc3Np
b24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0YyBcCkBAIC0xNzAsNiArMTcxLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJ
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sIFwKIAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
UHJveHkgXAogCVVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5IFwKKwlVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eSBcCiAJVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIgXAogCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlciBcCiAJV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBcCkBAIC0x
OTcsNiArMTk5LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyIFwKIAlXZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3IgXAogCVdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3Bl
Y3RvclVJIFwKKwlXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvciBcCiAJV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlciBcCiAJV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5IFwKIAlXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGRkNGQyYTUwNzY1NzZiYTNkNDU2MmVjYWMzMzFiMTk5OTNjOTk2OWYuLmE4NmU3MTdmNzIwNDMz
YzY3MzIxYzRmNWQxOTcwNDJjMTQwMzgzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTcx
Myw2ICs3MTMsOCBAQCBSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVNl
c3Npb25IZWxwZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBkZDMzY2QyMzM1YTc5
NDM0M2I3OTlhNGVkYTFlNDIwODA3OTYyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgK
QEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4KKyAgICAsIHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkoKSA9IGRlZmF1
bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2Vla1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGEmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXVzZShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOworCisgICAgdmlydHVhbCB2b2lk
IHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0
ZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRl
Q2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSA9IDA7CisKK3Byb3Rl
Y3RlZDoKKyAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eSgp
ID0gZGVmYXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMjY3MDQ1YzQzNWM1Mzc0ZmM3YmQyMmI2NzA2NGRk
YmI2YmYzMDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApAQCAtMCwwICsxLDEyNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKKworI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVBy
b3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CisjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWZQdHI8UmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6
Y3JlYXRlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlUHJveHk+JiYgcHJpdmF0ZUNvb3JkaW5hdG9yKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkod2ViUGFnZVBy
b3h5LCBXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvcikpKTsKK30KKworUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eTo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eShX
ZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZVByb3h5PiYmIHByaXZhdGVDb29yZGluYXRvcikKKyAgICA6IG1fd2ViUGFnZVByb3h5KHdl
YlBhZ2VQcm94eSkKKyAgICAsIG1fcHJpdmF0ZUNvb3JkaW5hdG9yKFdURk1vdmUocHJpdmF0ZUNv
b3JkaW5hdG9yKSkKKyAgICAsIG1fbG9nZ2VyKG1fd2ViUGFnZVByb3h5LmxvZ2dlcigpKQorICAg
ICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKK3sKKyAgICBtX3dlYlBh
Z2VQcm94eS5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFn
ZVByb3h5LndlYlBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHk6On5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KCkKK3sKKyAg
ICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpKTsKK30KKworCit2b2lkIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5hdGVTZWVrVG8oZG91YmxlIHRpbWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7
CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyLCB0aW1lKTsKKworICAgIG1fcHJpdmF0ZUNvb3Jk
aW5hdG9yLT5zZWVrVG8odGltZSwgW2lkZW50aWZpZXJdIChjb25zdCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgQUxXQVlTX0xPRyhpZGVudGlm
aWVyLCAiY29tcGxldGlvbiIpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGV4
Y2VwdGlvbikpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHk6OmNvb3JkaW5hdGVQbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8g
aWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyKTsK
KworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5KFtpZGVudGlmaWVyXSAoY29uc3QgV2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIEFMV0FZ
U19MT0coaWRlbnRpZmllciwgImNvbXBsZXRpb24iKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRlUGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKKyAgICBBTFdBWVNfTE9H
KGlkZW50aWZpZXIpOworCisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBhdXNlKFtpZGVudGlm
aWVyXSAoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7
CisgICAgICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgImNvbXBsZXRpb24iKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICB9KTsKK30KKwordm9p
ZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojo6OmNvb3JkaW5hdGVTZXRUcmFj
ayhjb25zdCBTdHJpbmcmIHRyYWNrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNv
cmU6OkV4Y2VwdGlvbkRhdGEmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGlk
ZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisK
KyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+c2V0VHJhY2sodHJhY2ssIFtpZGVudGlmaWVyXSAo
Y29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAg
ICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgImNvbXBsZXRpb24iKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRp
b25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRlKQoreworICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUik7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3Rh
dGVDaGFuZ2VkKHN0YXRlKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5OjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0
YXRlKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgbV9wcml2YXRlQ29v
cmRpbmF0b3ItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHN0YXRlKTsKK30KKwordm9pZCBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Np
b25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Cisg
ICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRlKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNWJjMjMzNWVhZjY2ZjE5ZmNhNWI2ZmJkMzgzNDE1MWUxYjIwNTU2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eS5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAi
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaCIKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3Mg
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciwgcHVibGljIFJlZkNvdW50ZWQ8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eT4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eT4gY3JlYXRlKFdlYlBhZ2VQ
cm94eSYsIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJik7CisgICAg
flJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoKTsKKworICAgIHZvaWQgc2Vla1Rv
KGRvdWJsZSk7CisgICAgdm9pZCBwbGF5KCk7CisgICAgdm9pZCBwYXVzZSgpOworICAgIHZvaWQg
c2V0VHJhY2soY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+JiYpOworCisgICAgdXNpbmcgQ29vcmRpbmF0ZUNv
bXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhJik+OworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVy
cmlkZTsKKworICAgIC8vIFJlY2VpdmVycy4KKyAgICB2b2lkIGNvb3JkaW5hdGVTZWVrVG8oZG91
YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEm
KT4mJik7CisgICAgdm9pZCBjb29yZGluYXRlUGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJik7CisgICAgdm9pZCBjb29yZGluYXRlUGF1
c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+
JiYpOworICAgIHZvaWQgY29vcmRpbmF0ZVNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKTsKKyAgICB2
b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25T
dGF0ZT4pOworICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZSk7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlKTsKKworICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJv
eHk7CisgICAgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiBtX3ByaXZh
dGVDb29yZGluYXRvcjsKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25z
dCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZi
NjBkMzk4ODExYjdkODI1MmViYThmZTkwZmFjMTMwNmU1ZGJlYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyMvCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUikKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSBO
b3RSZWZDb3VudGVkIHsKKworICAgIENvb3JkaW5hdGVTZWVrVG8oZG91YmxlIHRpbWUpIC0+IChP
cHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMKKworICAgIENvb3Jk
aW5hdGVQbGF5KCkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKSBB
c3luYworCisgICAgQ29vcmRpbmF0ZVBhdXNlKCkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2Vw
dGlvbkRhdGE+IGVycm9yKSBBc3luYworCisgICAgQ29vcmRpbmF0ZVNldFRyYWNrKFN0cmluZyB0
cmFja0lkZW50aWZpZXIpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJv
cikgQXN5bmMKKworICAgIFBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6Ok1l
ZGlhUG9zaXRpb25TdGF0ZT4gc3RhdGUpOworCisgICAgUmVhZHlTdGF0ZUNoYW5nZWQoZW51bTp1
aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpOworCisgICAgUGxh
eWJhY2tTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXli
YWNrU3RhdGUgc3RhdGUpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDk5YjM0NjA5ODcxZGRmYWNkOTY3ZGI5NzZhNjY0ZDE2MDM4ZTE3
YWIuLmQ1ZTQ0MmQ4N2M4MWQ4NTljYTEyMjU2Y2M5NzJkNDU4OTJjMGRjODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjk2LDYgKzI5NiwxMSBAQAogI2lu
Y2x1ZGUgIldlYkRhdGVUaW1lUGlja2VyLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eS5oIgorI2VuZGlmCisKIC8vIFRoaXMgY29udHJvbHMgd2hhdCBzdHJhdGVneSB3ZSB1c2UgZm9y
IG1vdXNlIHdoZWVsIGNvYWxlc2NpbmcuCiAjZGVmaW5lIE1FUkdFX1dIRUVMX0VWRU5UUyAxCiAK
QEAgLTEwMzY4LDYgKzEwMzczLDI0IEBAIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFdl
YlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5zCiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQordm9pZCBXZWJQYWdl
UHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByaXZhdGVQcm94eT4mJiBwcml2YXRlQ29vcmRpbmF0b3IsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2Vha1B0cjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Pik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFtX21lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkpOworCisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpD
cmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIHByaXZhdGVDb29yZGluYXRvciA9IFdURk1vdmUocHJpdmF0ZUNvb3JkaW5hdG9yKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBzdWNj
ZXNzKSBtdXRhYmxlIHsKKworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFzdWNjZXNzKSB7Cisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgd2Vha1RoaXMtPm1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eSA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZSgqd2Vha1Ro
aXMsIFdURk1vdmUocHJpdmF0ZUNvb3JkaW5hdG9yKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKG1ha2VXZWFrUHRyKHdlYWtUaGlzLT5tX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHku
Z2V0KCkpKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiB2b2lk
IFdlYlBhZ2VQcm94eTo6YXBwQm91bmROYXZpZ2F0aW9uRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IEFwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGEyY2Jl
OGFhODZiYjdlZjJlM2ZiODVkNTg1ODhjYzVjM2NiNWI2ZDIuLjVlMDMwMGQyMzU1ZTAyMzU4YjBk
Y2QxNDE4ODVhNzQxN2QzNjc4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0zMjksMTAgKzMyOSwxMiBAQCBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50Owog
Y2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7CiBj
bGFzcyBQYWdlQ2xpZW50OworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJv
eHk7CiBjbGFzcyBQcm92aXNpb25hbFBhZ2VQcm94eTsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZUhv
c3Q7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGE7CiBjbGFz
cyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKK2NsYXNzIFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHk7CiBjbGFzcyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Owog
Y2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bk1hbmFnZXI7CkBAIC0xODg0LDYgKzE4ODYsMTAgQEAgcHVibGljOgogICAgIGJvb2wgY2FuSGFu
ZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWFrUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHk+KT4mJik7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgc2V0
TGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAg
ICB2b2lkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CkBAIC0yOTEzLDYgKzI5MTksMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyPiBtX3NwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXI7CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKyAgICBSZWZQdHI8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eT4g
bV9tZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OworI2VuZGlmCisKICNpZiBVU0UoRElSRUNU
MkQpCiAgICAgQ09NUHRyPElEM0QxMURldmljZTE+IG1fZGV2aWNlOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZWZmNGYy
NmUzMzUxMjJiMGY2ZWI1OWNiODAxNGMxMWJhZGUwZWVmLi5lNWNjZDJiMGVkZGJjNTliZTAyMzY3
MGUyOTczMGM4NTBjMjU3ZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNyw2ICsxMDcsNyBAQAogCQkwNzRFNzVGRTFERjIyMTE5
MDBEMzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU3NUZCMURGMUZEMTMwMEQzMThFQyAvKiBV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovOyB9OwogCQkwNzZFODg0RTFBMTNDQURGMDA1RTkw
RkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkU4ODREMUExM0NBREYwMDVFOTBGQyAvKiBBUElDb250ZXh0
TWVudUNsaWVudC5oICovOyB9OwogCQkwNzcyODExRDIxMjM0RkY2MDBDOEVGMkUgLyogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0MzE5QUY3QjI3MDAyRUJBQjUgLyogVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi87IH07CisJCTA3N0JBNTZFMjYwRTZEMUMwMDcy
RjE5RiAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM2Qjc1NTI2MEQwM0EwMDBFMDY5OTQg
LyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovOyB9OwogCQkwNzkyMzE0ODIz
OUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1Jl
cGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
OTIzMTQyMjM5Q0JDQjUwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1l
c3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMxNDUyMzlDQkNCNzAwOTU5
OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKIAkJMDc5MjMxNEMyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3OTIzMTQ2MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CkBAIC0yMzc2LDYgKzIzNzcsMTIgQEAKIAkJMDcy
OTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkEwMUMxODZBREIwMDNGMDczNSAvKiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3Mjk3RkExMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBl
cm1pc3Npb25DaGVjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25DaGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM2
Qjc1MzI2MEQwMzlGMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzZCNzU0MjYwRDAzOUYwMEUwNjk5NCAv
KiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzM2Qjc1NTI2MEQwM0EwMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM2Qjc1QzI2MEQ0QTRFMDBFMDY5OTQg
LyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3NUQyNjBENEE0RjAwRTA2OTk0IC8qIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDczNkI3NUUyNjBENEE1MDAwRTA2OTk0IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0NzIwNTI1RTVCRDAy
MDA1NEIyMzEgLyogTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzQ4NzlCNzIzNzNBOTA5MDBGNTY3OEUgLyogQXBwS2l0U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQXBwS2l0U29mdExpbmsuaDsgcGF0aCA9IGlvcy9BcHBLaXRTb2Z0TGluay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ4NzlCODIzNzNBOTA5MDBGNTY3OEUgLyogQXBwS2l0
U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBBcHBLaXRTb2Z0TGluay5tbTsgcGF0
aCA9IGlvcy9BcHBLaXRTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIzODUsNiArMjM5Miw3IEBACiAJCTA3NEU3NjAxMURGNzA3NUQwMEQzMThFQyAvKiBNZWRpYURl
dmljZVNhbmRib3hFeHRlbnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc2RTg4NEQxQTEzQ0FERjAwNUU5MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUNvbnRleHRNZW51Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkU4ODRGMUExM0NCQzYwMDVFOTBGQyAv
KiBBUElJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBUElJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzdCQTU3MDI2MEU4RjYzMDA3MkYx
OUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzEzMTIzOUIzQjBDMDA5
NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3OTIzMTMyMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMzk4LDYgKzI0MDYsMTIgQEAKIAkJMDc5NEI0QUYyNDQ1MkEy
QzAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFVc2FnZU1hbmFnZXJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0E1
RUJCOTFDN0JBNDNFMDBCOUNBNjkgLyogV0tGcmFtZUhhbmRsZVJlZi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ZyYW1lSGFuZGxlUmVmLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBNUVCQkExQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVI
YW5kbGVSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGcmFtZUhhbmRs
ZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0E2RTVFMzI2MEU0MTE0MDA5
NTk0NzggLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdB
NkU1RTQyNjBFNDExNDAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDdBNkU1RTUyNjBFNDExNTAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdB
NkU1RTYyNjBFNDExNTAwOTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QTZF
NUU3MjYwRTQxMTYwMDk1OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3Nh
Z2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdBNkU1RTgyNjBFNDExNjAwOTU5
NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlc1JlcGxpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0IxRDA0QjIzRDM4
RkNFMDAzOTlBNkUgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdCM0I0NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVy
U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwN0IzQjQ3NTIzQUQ4OTA0MDBCQTVCMTIgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTYwMjgsNiArNjA0MiwxNiBAQAogCQkJdGFiV2lkdGggPSA4OwogCQkJdXNlc1RhYnMgPSAw
OwogCQl9OworCQkwNzM2Qjc1MjI2MEQwMzlGMDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkwNzM2Qjc1NTI2MEQw
M0EwMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJ
CTA3MzZCNzU0MjYwRDAzOUYwMEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oICovLAorCQkJCTA3MzZCNzUzMjYwRDAzOUYwMEUwNjk5NCAvKiBSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gTWVkaWFTZXNz
aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMDc5MjMxMkYyMzlCM0Iw
QzAwOTU5OEUyIC8qIG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTk2MDUsNiArOTYyOSw3IEBACiAJCQkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1
IC8qIEluamVjdGVkQnVuZGxlICovLAogCQkJCTkxRDk3MEUwMjNEQTZGQjEwMDU3REJDMyAvKiBJ
bnNwZWN0b3IgKi8sCiAJCQkJMzNEM0EzQkQxMzM5NjA5ODAwNzA5QkU0IC8qIE1lZGlhQ2FjaGUg
Ki8sCisJCQkJMDczNkI3NTIyNjBEMDM5RjAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvbiAqLywKIAkJ
CQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8sCiAJCQkJNTEwNUIw
RDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEwOTk5NzQxNDZDOEFBODAw
MjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLApAQCAtMTA5ODEsNiArMTEwMDYsMTIg
QEAKIAkJCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFENEQ3MzZDMjNBOURGNjAwMDcxN0Ey
NSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJMUQ0RDcz
NzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNS
ZXBsaWVzLmggKi8sCisJCQkJMDdBNkU1RTQyNjBFNDExNDAwOTU5NDc4IC8qIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkwN0E2RTVFNzI2
MEU0MTE2MDA5NTk0NzggLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNZXNzYWdlcy5o
ICovLAorCQkJCTA3QTZFNUU2MjYwRTQxMTUwMDk1OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTA3QTZFNUUzMjYwRTQxMTQwMDk1
OTQ3OCAvKiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKKwkJCQkwN0E2RTVFNTI2MEU0MTE1MDA5NTk0NzggLyogUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMDdBNkU1RTgyNjBFNDExNjAw
OTU5NDc4IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaCAqLywKIAkJCQkxREQyQTY2MjI1NjEyMkYxMDBGRjdCNkYgLyogUmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUREMkE2NjAyNTYxMjJGMTAwRkY3
QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFERDJBNjYx
MjU2MTIyRjEwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5TWVzc2FnZXNSZXBsaWVz
LmggKi8sCkBAIC0xMTIyMSw4ICsxMTI1MiwxMiBAQAogCQkJCUNENDU3MEREMjQ0NENBNTgwMEEz
RENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcCAqLywKIAkJCQlD
RDQ1NzBEQjI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eS5oICovLAogCQkJCUNENDU3MERDMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTA3N0JBNTcwMjYwRThG
NjMwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oICovLAog
CQkJCTA3OTRCNEFFMjQ0NTI0QjAwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlci5jcHAgKi8s
CiAJCQkJMDc5NEI0QUMyNDQ1MUJCOTAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyLmggKi8s
CisJCQkJMDczNkI3NUMyNjBENEE0RTAwRTA2OTk0IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHkuY3BwICovLAorCQkJCTA3MzZCNzVFMjYwRDRBNTAwMEUwNjk5NCAvKiBSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmggKi8sCisJCQkJMDczNkI3NUQyNjBENEE0
RjAwRTA2OTk0IC8qIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMu
aW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IE1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTEzOTM2LDYgKzEzOTcxLDcgQEAKIAkJCQkwNzAxNzg5RTIzQkU5Q0ZDMDA1RjBGQUEg
LyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3MUJDNThGMjNDRTFFQUEwMDY4MEQ3QyAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0Ey
NSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwNzdCQTU2RTI2MEU2RDFDMDA3MkYxOUYgLyogUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUREMkE2NjMyNTYxMjQ2RjAw
RkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUFDMTMzODUxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJl
Z2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEODI1MkUyMjVE
NDkxOTEwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmNmY0NTQ3MGVkZTdhZjQ2NmYzYzhlMGQzMTY3YmEyOTVl
MmQwOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFT
ZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDE5OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVy
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworZXh0
ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVkaWE7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1
c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlZjxSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKHBhZ2UpKTsKK30KKworUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFdlYlBhZ2UmIHBhZ2Up
CisgICAgOiBtX3BhZ2UocGFnZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKK30KKwor
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6On5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCit7CisgICAg
QUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKKyAgICBtX3BhZ2Uu
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5OjpDb29yZGluYXRlU2Vla1RvIHsgdGltZSB9LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4Y2VwdGlvbikg
bXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNr
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgY2FsbGJh
Y2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2Fn
ZSkgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjYWxsYmFj
ayh7IH0pOworICAgIH0sIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0
aW9uPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lE
RU5USUZJRVIpOworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OkNvb3JkaW5hdGVQbGF5IHsgfSwgW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1
dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAg
ICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShl
eGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0df
SUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Q29vcmRpbmF0
ZVBhdXNlIHsgfSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAo
IXdlYWtUaGlzKSB7CisgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlv
bi0+Y29kZSwgV1RGTW92ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAgICB9LCAwKTsKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3Ry
aW5nJiB0cmFja0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2Vi
Q29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BP
U1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OkNvb3JkaW5hdGVTZXRU
cmFjayB7IHRyYWNrSWRlbnRpZmllciB9LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7
CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgY2FsbGJhY2soRXhjZXB0
aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjYWxsYmFjayh7IH0pOwor
ICAgIH0sIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3Np
dGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+IHN0
YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAg
bV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6
OlBvc2l0aW9uU3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvblJlYWR5U3RhdGUgc3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJ
REVOVElGSUVSLCBzdGF0ZSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlYWR5U3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSwgMCk7
Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVD
aGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCit7CisgICAg
QUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisgICAgbV9wYWdl
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlBsYXli
YWNrU3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFMV0FZU19M
T0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7CisgICAgaWYgKGF1dG8gY29vcmRp
bmF0b3JDbGllbnQgPSBjbGllbnQoKSkKKyAgICAgICAgY29vcmRpbmF0b3JDbGllbnQtPnNlZWtT
ZXNzaW9uVG9UaW1lKHRpbWUsIFdURk1vdmUoKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGVs
c2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5U2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lC
TEUoTE9HSURFTlRJRklFUik7CisgICAgaWYgKGF1dG8gY29vcmRpbmF0b3JDbGllbnQgPSBjbGll
bnQoKSkKKyAgICAgICAgY29vcmRpbmF0b3JDbGllbnQtPnBsYXlTZXNzaW9uKFdURk1vdmUoKGNv
bXBsZXRpb25IYW5kbGVyKSkpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZVNl
c3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIGlmIChh
dXRvIGNvb3JkaW5hdG9yQ2xpZW50ID0gY2xpZW50KCkpCisgICAgICAgIGNvb3JkaW5hdG9yQ2xp
ZW50LT5wYXVzZVNlc3Npb24oV1RGTW92ZSgoY29tcGxldGlvbkhhbmRsZXIpKSk7CisgICAgZWxz
ZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmIHRyYWNr
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHRyYWNr
SWRlbnRpZmllcik7CisgICAgaWYgKGF1dG8gY29vcmRpbmF0b3JDbGllbnQgPSBjbGllbnQoKSkK
KyAgICAgICAgY29vcmRpbmF0b3JDbGllbnQtPnNldFNlc3Npb25UcmFjayh0cmFja0lkZW50aWZp
ZXIsIFdURk1vdmUoKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGVsc2UKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCitXVEZMb2dDaGFubmVsJiBSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExvZ01l
ZGlhOworfQorCisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9S
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg0OGQ3YTc0NTcyM2Q2OWFhNTJjNTZhZDU1ZjQ2ZmJmMDdjZDVlNzkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIElQ
QyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VSZWNl
aXZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNz
IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSAsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFdlYlBhZ2UmKTsKKyAgICB+
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNp
dCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihXZWJQYWdlJik7CisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZVJlY2VpdmVycy4K
KyAgICB2b2lkIHNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CisgICAgdm9pZCBwbGF5U2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKKyAgICB2b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKKyAgICB2b2lkIHNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKworICAgIC8vIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZSBvdmVycmlkZXMuCisgICAgdm9pZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYpIGZpbmFs
OworICAgIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6
OkV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcGF1c2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKKyAgICB2
b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CisKKyAgICB2b2lkIHBvc2l0aW9u
U3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0ZT4pIGZpbmFs
OworICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZSkgZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKKworICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNz
TmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0K
KyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Q7CisKKyAgICBXZWJQYWdlJiBt
X3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmExODg2YzQyMWNjMGQy
MzFiMDYxMGZkODI4ZTBiOTY3ZjFiNDgyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IgTm90UmVmQ291bnRlZCB7CisKKyAgICBzZWVrU2Vzc2lvblRvVGltZShkb3Vi
bGUgdGltZSkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYworCisgICAgcGxheVNlc3Npb24oKSAtPiAo
Ym9vbCByZXN1bHQpIEFzeW5jCisKKyAgICBwYXVzZVNlc3Npb24oKSAtPiAoYm9vbCByZXN1bHQp
IEFzeW5jCisKKyAgICBzZXRTZXNzaW9uVHJhY2soU3RyaW5nIHRyYWNrSWRlbnRpZmllcikgLT4g
KGJvb2wgcmVzdWx0KSBBc3luYworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODRkMDc4ODAyNzlkZGE5YWJiZGM3MDFlOTU3
NzE3ZjcxZDU3NGFkOS4uZjFmOTM4ZWI1YmNmN2M4ZTViZWU2NWJmYTE2ZDE5Nzc1Njc0ZDllNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM1
OCw2ICszNTgsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRXh0cmFjdGlvblJlc3VsdC5o
PgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05hdmlnYXRvck1l
ZGlhU2Vzc2lvbi5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSAiV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzSU9TLmgiCiAjZW5kaWYKQEAgLTczODAsNiArNzM4Niwy
NSBAQCB2b2lkIFdlYlBhZ2U6OnJlc3RvcmVBcHBIaWdobGlnaHRzKGNvbnN0IFZlY3RvcjxTaGFy
ZWRNZW1vcnk6OklQQ0hhbmRsZT4mJiBtZW1vcgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKK3ZvaWQgV2ViUGFnZTo6Y3JlYXRlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBhdXRvKiBkb2N1bWVudCA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+
ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZG9tV2luZG93KCkp
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byYgc2Vzc2lvbiA9IE5hdmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFT
ZXNzaW9uKGRvY3VtZW50LT5kb21XaW5kb3coKS0+bmF2aWdhdG9yKCkpOworICAgIGF1dG8gY29v
cmRpbmF0b3IgPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKCp0aGlzKTsK
KyAgICBtX3JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gY29vcmRpbmF0b3IucHRyKCk7
CisgICAgbV9tZWRpYVNlc3Npb25Db29yZGluYXRvciA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpjcmVhdGUoY29vcmRpbmF0b3IuZ2V0KCkpOworICAgIHNlc3Npb24uc2V0Q29vcmRpbmF0b3Io
bV9tZWRpYVNlc3Npb25Db29yZGluYXRvci5nZXQoKSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKK30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBXZWJQYWdl
Ojpjb25zdW1lTmV0d29ya0V4dGVuc2lvblNhbmRib3hFeHRlbnNpb25zKGNvbnN0IFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5JikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCA3M2YyZDk5ZDdhNjFhNmIwZmI3ZjM0NjZlNjc4NmE2OTI1MGY5
YTU1Li5jNTRhNjE4ZGI0NmExMmRlMDFhNTg2MzQ2YTY2ZTkxN2Y3NGNhMmRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xOTAsNiArMTkwLDcgQEAg
Y2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBLZXlib2FyZEV2ZW50OwogY2xhc3MgTWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ7CiBjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1Bs
dWdpbnNDYWxsYmFjazsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgUGFn
ZTsKIGNsYXNzIFByaW50Q29udGV4dDsKIGNsYXNzIFJhbmdlOwpAQCAtMjU1LDYgKzI1Niw3IEBA
IGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIFBERlBs
dWdpbjsKIGNsYXNzIFBhZ2VCYW5uZXI7CiBjbGFzcyBQbHVnaW5WaWV3OworY2xhc3MgUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CiBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk7CiBjbGFzcyBSZW1vdGVXZWJJbnNwZWN0b3JVSTsKIGNsYXNzIFRleHRDaGVja2luZ0NvbnRy
b2xsZXJQcm94eTsKQEAgLTE0MTAsNiArMTQxMiwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91
bGRVc2VQREZQbHVnaW4oY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgU3RyaW5nVmlldyBwYXRo
KSBjb25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisgICAgdm9pZCBjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzZXRMYXN0TmF2aWdhdGlvbldh
c0FwcEJvdW5kKGJvb2wgd2FzQXBwQm91bmQpIHsgbV9sYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5k
ID0gd2FzQXBwQm91bmQ7IH0KICAgICB2b2lkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKQEAgLTIyNTEsNiArMjI1NywxMSBAQCBw
cml2YXRlOgogICAgIHVpbnQ2NF90IG1fdmlzaXRlZExpbmtUYWJsZUlEOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBSZWZQdHI8V2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CisgICAg
UmVmUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX3JlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOworI2VuZGlmCisKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eT4gbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDcyZWQ4MWJhMTIyZjU4NTUzYTAz
OTQ2OGZjYzI4MzExOTllMDVkMTEuLmM4ZTY0NmFlZGViYzRhYTEyMGEzYWJlOWRhZDc2MTgxZTQx
OWRhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtNjM0LDYgKzYzNCwxMCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
VHlwZQogCiAgICAgTGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCgpIC0+IChib29sIHdhc0FwcEJv
dW5kKSBBc3luYwogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAg
Q3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwor
I2VuZGlmCisKICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKICAgICBVcGRhdGVXaXRoSW1h
Z2VFeHRyYWN0aW9uUmVzdWx0KHN0cnVjdCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQg
cmVzdWx0LCBzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxlbWVudCwgV2ViQ29yZTo6
RmxvYXRQb2ludCBsb2NhdGlvbikgLT4gKGJvb2wgdGV4dEV4aXN0c0F0TG9jYXRpb24pIEFzeW5j
CiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="444308"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>